diff options
Diffstat (limited to 'aoc/__main__.py')
| -rw-r--r-- | aoc/__main__.py | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/aoc/__main__.py b/aoc/__main__.py index f5f08d3..596abee 100644 --- a/aoc/__main__.py +++ b/aoc/__main__.py | |||
| @@ -1,3 +1,4 @@ | |||
| 1 | # -*- coding: utf-8 -*- | ||
| 1 | import enum | 2 | import enum |
| 2 | import typing | 3 | import typing |
| 3 | import importlib | 4 | import importlib |
| @@ -25,15 +26,17 @@ def kwargs(kwarg: str) -> List: | |||
| 25 | 26 | ||
| 26 | 27 | ||
| 27 | @app.command() | 28 | @app.command() |
| 28 | def run(day: str, | 29 | def run( |
| 29 | part: str = typer.Option("One", '--part', help="Assignment part. Defaults to 'One'.", show_choices=True), | 30 | day: str, |
| 30 | example: bool = typer.Option(False, '--example', help="Use an example input file"), | 31 | part: str = typer.Option( |
| 31 | kwargs: List[str] = typer.Argument(None) | 32 | "1", "--part", help="Assignment part. Defaults to 'One'.", show_choices=True |
| 32 | ): | 33 | ), |
| 33 | 34 | example: bool = typer.Option(False, "--example", help="Use an example input file"), | |
| 35 | kwargs: List[str] = typer.Argument(None), | ||
| 36 | ): | ||
| 34 | assignment_day = importlib.import_module(day) | 37 | assignment_day = importlib.import_module(day) |
| 35 | 38 | ||
| 36 | Assignment = getattr(assignment_day, f"Assignment{part}") | 39 | Assignment = getattr(assignment_day, f"Assignment{AssignmentPart(part).name}") |
| 37 | assignment = Assignment( | 40 | assignment = Assignment( |
| 38 | path=os.path.dirname(assignment_day.__file__), **dict(kwargs) | 41 | path=os.path.dirname(assignment_day.__file__), **dict(kwargs) |
| 39 | ) | 42 | ) |
| @@ -46,7 +49,10 @@ def run(day: str, | |||
| 46 | ) | 49 | ) |
| 47 | end = perf_counter() | 50 | end = perf_counter() |
| 48 | delta = end - start | 51 | delta = end - start |
| 49 | typer.secho(f'\n{(delta if delta > 1 else delta * 1000):.3f}{"s" if delta > 1 else "ms"}', fg="green") | 52 | typer.secho( |
| 53 | f'\n{(delta if delta > 1 else delta * 1000):.3f}{"s" if delta > 1 else "ms"}', | ||
| 54 | fg="green", | ||
| 55 | ) | ||
| 50 | 56 | ||
| 51 | 57 | ||
| 52 | @app.command() | 58 | @app.command() |
