#! /usr/bin/env python import re import sys from pathlib import Path from termcolor import cprint todo_re = re.compile(r"#\s*TODO:?\s*") accounted_for_todo = re.compile(r"#\s*TODO:?\s*\((#\d+)\)") def check_file(path: Path) -> bool: print(f"Checking {path.absolute()}...") # noqa: T001 file = path.open() valid = True for i, line in enumerate(file, start=1): if todo_re.search(line) and not accounted_for_todo.search(line): cprint(f"{i}: {line}", "red", end="", attrs=["bold"]) valid = False file.close() return valid valid = True for path in Path("sublime").glob("**/*.py"): valid &= check_file(path) print() # noqa: T001 sys.exit(0 if valid else 1)