This script is no good.

This commit is contained in:
2026-03-09 06:59:33 -04:00
parent 8f9f87aa8a
commit f895e2ae8b

View File

@@ -1,73 +0,0 @@
#!/usr/bin/env python3
"""
Trim unnecessary #include lines from a C++ header file.
Usage: python3 tools/trim-handler.py <file>
For each #include line, temporarily removes it and runs clangd diagnostics.
If no errors result, the include is marked unnecessary. At the end, rewrites
the file with all unnecessary includes removed.
"""
import sys
import subprocess
import os
def read_lines(path):
with open(path, 'r') as f:
return f.readlines()
def write_lines(path, lines):
with open(path, 'w') as f:
f.writelines(lines)
def has_errors(path):
result = subprocess.run(
['python3', 'tools/clangd-query.py', 'diagnostics', path],
capture_output=True, text=True
)
output = result.stdout.strip()
return output != "No problems found."
def main():
if len(sys.argv) != 2:
print("Usage: python3 tools/trim-handler.py <file>")
sys.exit(1)
path = os.path.abspath(sys.argv[1])
original_lines = read_lines(path)
# First, verify the file starts with no errors.
if has_errors(path):
print(f"ERROR: {path} already has diagnostics errors. Fix those first.")
sys.exit(1)
unnecessary = set()
for i, line in enumerate(original_lines):
if not line.strip().startswith('#include'):
continue
# Skip the .generated.h include — always required by UHT.
if '.generated.h' in line:
continue
# Rewrite the file without this line.
test_lines = original_lines[:i] + original_lines[i+1:]
write_lines(path, test_lines)
if has_errors(path):
print(f" KEEP: {line.strip()}")
else:
print(f" DROP: {line.strip()}")
unnecessary.add(i)
# Restore the original file before testing the next include.
write_lines(path, original_lines)
# Final rewrite with unnecessary includes removed.
final_lines = [line for i, line in enumerate(original_lines) if i not in unnecessary]
write_lines(path, final_lines)
print(f"\nRemoved {len(unnecessary)} unnecessary include(s) from {path}")
if __name__ == '__main__':
main()