Files
manual_slop/fix_indent_v3.py
T

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.")