summaryrefslogtreecommitdiffstats
path: root/aoc/__main__.py
diff options
context:
space:
mode:
authorGravatar Tom van der Lee <tom@ScaryTerry.local>2020-12-15 13:14:58 +0100
committerGravatar Tom van der Lee <tom@ScaryTerry.local>2020-12-15 13:14:58 +0100
commit37aa8eec0498d7e8491084711132f16db9129a39 (patch)
treebfcf5bd4a5fe3d6a364db2ea2b65d60112d879a8 /aoc/__main__.py
parent9d38cb75c2e23a173adc7e390777c50361c31436 (diff)
download2021-37aa8eec0498d7e8491084711132f16db9129a39.tar.gz
2021-37aa8eec0498d7e8491084711132f16db9129a39.tar.bz2
2021-37aa8eec0498d7e8491084711132f16db9129a39.zip
Added day 9
Diffstat (limited to 'aoc/__main__.py')
-rw-r--r--aoc/__main__.py17
1 files changed, 15 insertions, 2 deletions
diff --git a/aoc/__main__.py b/aoc/__main__.py
index 8c6a21e..efb215d 100644
--- a/aoc/__main__.py
+++ b/aoc/__main__.py
@@ -2,6 +2,8 @@ import argparse
2import os 2import os
3import sys 3import sys
4import importlib 4import importlib
5from typing import Tuple, List
6
5 7
6def day(assignment_part: str) -> str: 8def day(assignment_part: str) -> str:
7 return { 9 return {
@@ -9,6 +11,9 @@ def day(assignment_part: str) -> str:
9 '2': 'Two', 11 '2': 'Two',
10 }[assignment_part] 12 }[assignment_part]
11 13
14def kwargs(kwarg: str) -> List:
15 return kwarg.split('=')
16
12parser = argparse.ArgumentParser(description='Advent of Code') 17parser = argparse.ArgumentParser(description='Advent of Code')
13 18
14parser.add_argument('day', type=str, help='Assignment day') 19parser.add_argument('day', type=str, help='Assignment day')
@@ -17,6 +22,7 @@ parser.add_argument(
17 help='Assingment part. Defaults to one.' 22 help='Assingment part. Defaults to one.'
18) 23)
19parser.add_argument('--example', default=False, action='store_true') 24parser.add_argument('--example', default=False, action='store_true')
25parser.add_argument('kwargs', type=kwargs, nargs='*')
20 26
21 27
22if __name__ == '__main__': 28if __name__ == '__main__':
@@ -24,6 +30,13 @@ if __name__ == '__main__':
24 assignment_day = importlib.import_module(args.day) 30 assignment_day = importlib.import_module(args.day)
25 31
26 Assignment = getattr(assignment_day, f'Assignment{args.part}') 32 Assignment = getattr(assignment_day, f'Assignment{args.part}')
27 assignment = Assignment(path=os.path.dirname(assignment_day.__file__)) 33 assignment = Assignment(
34 path=os.path.dirname(assignment_day.__file__),
35 **dict(args.kwargs)
36 )
28 37
29 print(assignment.run(input=assignment.read_input(example=args.example))) 38 print(
39 assignment.run(
40 input=assignment.read_input(example=args.example),
41 )
42 )