diff options
Diffstat (limited to 'check_checkers.py')
-rwxr-xr-x | check_checkers.py | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/check_checkers.py b/check_checkers.py index 4b78509..769adba 100755 --- a/check_checkers.py +++ b/check_checkers.py @@ -9,6 +9,7 @@ from subprocess import PIPE, Popen, check_output import tempfile import time from typing import Dict, List, NamedTuple, TextIO, Tuple, TypedDict +from pathlib import Path import mypy.api from pygments import highlight @@ -169,7 +170,7 @@ def run_checkers(checkers: List[Checker], puzzle: str, typeshed_path: str): def run( checkers: List[Checker], - puzzles: List[str], + puzzles: List[Path], default_typeshed: str, out: TextIO, cache: Dict[str, Puzzle], @@ -230,20 +231,16 @@ def run( code = f.read() puzzle_hash = hashlib.sha256(code).hexdigest() - if puzzle in cache and puzzle_hash == cache[puzzle]['puzzle_hash']: - checker_results = cache[puzzle]['checker_results'] + if str(puzzle) in cache and puzzle_hash == cache[str(puzzle)]['puzzle_hash']: + checker_results = cache[str(puzzle)]['checker_results'] else: - checker_results = run_checkers(checkers, puzzle, default_typeshed) - cache[puzzle] = { + checker_results = run_checkers(checkers, str(puzzle), default_typeshed) + cache[str(puzzle)] = { 'puzzle_hash': puzzle_hash, 'checker_results': checker_results, } - anchor = ( - html.escape(puzzle.rsplit('/', maxsplit=1)[1]) - .replace('.py', '') - .replace('_', '-') - ) + anchor = html.escape(puzzle.name).replace('.py', '').replace('_', '-') out.write('<tr><td id="{0}"><a href="#{0}">{0}</a>'.format(anchor)) code = code.decode('utf-8') out.write(highlight(code, python_lexer, html_formatter)) @@ -312,7 +309,7 @@ if __name__ == '__main__': with open('dist/checkers.html', 'w') as f: run( [Mypy(), MypyStrict(), Pytype(), Pyright(), PyrightStrict()], - ['puzzles/' + f for f in sorted(os.listdir('puzzles'))], + list(sorted(Path('puzzles/').iterdir())), typeshed, f, cache, |