aoc2020/main.py
2020-12-02 10:26:00 +01:00

40 lines
1.3 KiB
Python
Executable File

#!/usr/bin/env python3
import argparse
import aoclib
import importlib
import os
argument_parser = argparse.ArgumentParser()
argument_parser.add_argument("-d", "--day", help="specify day to process; leave empty for ALL days", type=int)
argument_parser.add_argument("-t", "--test", help="run test cases", action="store_true", default=False)
argument_parser.add_argument("-p", "--part", help="run only part x", choices=[1, 2], type=int)
flags = argument_parser.parse_args()
import_day = ""
if flags.day:
import_day = "%02d" % flags.day
imported = []
for _, _, files in os.walk(aoclib.BASE_PATH):
for f in files:
if f.startswith('day' + import_day) and f.endswith('.py'):
lib_name = f[:-3]
globals()[lib_name] = importlib.import_module(lib_name)
imported.append(lib_name)
break
for lib in sorted(imported):
day = int(lib[-2:])
if flags.part:
aoclib.printSolution(
day=day,
part=flags.part,
solution=getattr(globals()[lib], "part%d" % flags.part)(test_mode=flags.test),
test=flags.test
)
else:
aoclib.printSolution(day, 1, globals()[lib].part1(test_mode=flags.test), test=flags.test)
aoclib.printSolution(day, 2, globals()[lib].part2(test_mode=flags.test), test=flags.test)