diff options
Diffstat (limited to 'aoc/__main__.py')
| -rw-r--r-- | aoc/__main__.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/aoc/__main__.py b/aoc/__main__.py new file mode 100644 index 0000000..da0496e --- /dev/null +++ b/aoc/__main__.py | |||
| @@ -0,0 +1,29 @@ | |||
| 1 | import argparse | ||
| 2 | import os | ||
| 3 | import sys | ||
| 4 | import importlib | ||
| 5 | |||
| 6 | def day(assignment_part: str) -> str: | ||
| 7 | return { | ||
| 8 | '1': 'One', | ||
| 9 | '2': 'Two', | ||
| 10 | }[assignment_part] | ||
| 11 | |||
| 12 | parser = argparse.ArgumentParser(description='Advent of Code') | ||
| 13 | |||
| 14 | parser.add_argument('day', type=str, help='Assignment day') | ||
| 15 | parser.add_argument( | ||
| 16 | '-p', '--part', type=day, nargs='?', default='1', | ||
| 17 | help='Assingment part. Defaults to one.' | ||
| 18 | ) | ||
| 19 | parser.add_argument('--example', default=False, action='store_true') | ||
| 20 | |||
| 21 | |||
| 22 | if __name__ == '__main__': | ||
| 23 | args = parser.parse_args() | ||
| 24 | assignment_day = importlib.import_module(args.day) | ||
| 25 | |||
| 26 | Assignment = getattr(assignment_day, f'Assignment{args.part}') | ||
| 27 | assignment = Assignment(path=os.path.dirname(assignment_day.__file__)) | ||
| 28 | |||
| 29 | print(assignment.run(input=assignment.read_input())) | ||
