23 lines
761 B
Python
23 lines
761 B
Python
|
|
from pathlib import Path
|
||
|
|
p = Path('Store/registry.py')
|
||
|
|
lines = p.read_text(encoding='utf-8').splitlines()
|
||
|
|
stack = [0]
|
||
|
|
for i, line in enumerate(lines, start=1):
|
||
|
|
if not line.strip():
|
||
|
|
continue
|
||
|
|
leading = len(line) - len(line.lstrip(' '))
|
||
|
|
if leading > stack[-1]:
|
||
|
|
# increased indent -> push
|
||
|
|
stack.append(leading)
|
||
|
|
else:
|
||
|
|
# dedent: must match an existing level
|
||
|
|
if leading != stack[-1]:
|
||
|
|
if leading in stack:
|
||
|
|
# pop until match
|
||
|
|
while stack and stack[-1] != leading:
|
||
|
|
stack.pop()
|
||
|
|
else:
|
||
|
|
print(f"Line {i}: inconsistent indent {leading}, stack levels {stack}")
|
||
|
|
print(repr(line))
|
||
|
|
break
|
||
|
|
print('Done')
|