39 lines
968 B
Python
39 lines
968 B
Python
|
|
import sys
|
|
|
|
def fix_indentation(file_path):
|
|
with open(file_path, 'r', encoding='utf-8') as f:
|
|
lines = f.readlines()
|
|
|
|
fixed_lines = []
|
|
indent_map = {0: 0}
|
|
|
|
for i, line in enumerate(lines):
|
|
stripped = line.lstrip()
|
|
if not stripped:
|
|
fixed_lines.append('\n')
|
|
continue
|
|
|
|
old_indent = len(line) - len(stripped)
|
|
|
|
# Remove larger indents from map if we dedent below them
|
|
for k in list(indent_map.keys()):
|
|
if k > old_indent:
|
|
del indent_map[k]
|
|
|
|
if old_indent not in indent_map:
|
|
# Find the closest smaller indent
|
|
known = sorted([k for k in indent_map.keys() if k < old_indent])
|
|
parent_new = indent_map[max(known)]
|
|
indent_map[old_indent] = parent_new + 1
|
|
|
|
new_indent = indent_map[old_indent]
|
|
fixed_lines.append(' ' * new_indent + stripped)
|
|
|
|
with open(file_path, 'w', encoding='utf-8') as f:
|
|
f.writelines(fixed_lines)
|
|
|
|
if __name__ == '__main__':
|
|
fix_indentation('src/app_controller.py')
|
|
print("Indentation fixed v3.")
|