diff --git a/.gitignore b/.gitignore index baa31a543..71958d693 100644 --- a/.gitignore +++ b/.gitignore @@ -58,3 +58,4 @@ mini-swe-agent/ # Nix .direnv/ result +.aider* diff --git a/scripts/syntax_guard.py b/scripts/syntax_guard.py index 7c41dc9b4..47cc4feef 100755 --- a/scripts/syntax_guard.py +++ b/scripts/syntax_guard.py @@ -3,18 +3,36 @@ import py_compile import sys from pathlib import Path +from colorama import Fore, Style, init + +init(autoreset=True) errors = [] +total_files = 0 +large_files = [] + for p in Path(".").rglob("*.py"): if ".venv" in p.parts or "__pycache__" in p.parts: continue + + total_files += 1 + if p.stat().st_size > 10 * 1024 * 1024: # 10MB + large_files.append(p) + try: py_compile.compile(str(p), doraise=True) except py_compile.PyCompileError as e: errors.append(f"{p}: {e}") - print(f"SYNTAX ERROR: {p}: {e}", file=sys.stderr) + print(f"{Fore.RED}SYNTAX ERROR: {p}{Style.RESET_ALL}: {e}", file=sys.stderr) + sys.exit(1) # Exit early on first error if errors: print(f"\n{len(errors)} file(s) with syntax errors", file=sys.stderr) sys.exit(1) -print("All Python files compile successfully") + +if large_files: + print(f"{Fore.YELLOW}Large files (>10MB) detected:{Style.RESET_ALL}") + for f in large_files: + print(f" - {f}") + +print("✅ All Python files compile successfully")