38 lines
790 B
Python
38 lines
790 B
Python
import argparse
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
from . import y2015, y2016, y2017, y2018, y2020, y2021, y2022, y2024
|
|
|
|
DAYS = {
|
|
**y2015.DAYS,
|
|
**y2016.DAYS,
|
|
**y2017.DAYS,
|
|
**y2018.DAYS,
|
|
**y2020.DAYS,
|
|
**y2021.DAYS,
|
|
**y2022.DAYS,
|
|
**y2024.DAYS,
|
|
}
|
|
|
|
|
|
def eprint(*args, **kwargs):
|
|
print(*args, **kwargs, file=sys.stderr)
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument("files", type=Path, nargs="+")
|
|
args = parser.parse_args()
|
|
|
|
for file in args.files:
|
|
day = DAYS.get(file.stem[:7])
|
|
if day is None:
|
|
eprint(f"### Can't solve {file}")
|
|
continue
|
|
|
|
eprint(f"### Solving {file}")
|
|
with open(file) as f:
|
|
inputstr = f.read()
|
|
day(inputstr)
|
|
eprint()
|