Add logic to run prod and test from main.py
This commit is contained in:
1 parent
39c9426f71
commit
f58ee13336
1 file changed
+32
-4
@@ -1,11 +1,27 @@
|
|||||||
import argparse
|
import argparse
|
||||||
|
import importlib
|
||||||
|
import pathlib
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
import util.reader as reader
|
||||||
|
|
||||||
FIRST_EVENT = 2015
|
FIRST_EVENT = 2015
|
||||||
LAST_EVENT = 2015
|
LAST_EVENT = 2015
|
||||||
|
|
||||||
def main(day: int, event: int, test: bool = False) -> str:
|
def main(day: int, event: int, part: int, output_format: str, test: bool = False) -> str:
|
||||||
print("Called main...")
|
if test:
|
||||||
return f"Day {day} of event {event} processing [Test: {test}]"
|
pytest_args = [f"tests/{event}/test_day{day}.py"]
|
||||||
|
exit_code = pytest.main(pytest_args)
|
||||||
|
return f"Pytest exited with code {exit_code}"
|
||||||
|
else:
|
||||||
|
solution = importlib.import_module(f"solution.ev{event}")
|
||||||
|
data_path = pathlib.Path(f"input/{event}/Day{day}")
|
||||||
|
data = reader.parse_datafile(data_file=data_path, output_format=output_format)
|
||||||
|
func_name = f"{day}"
|
||||||
|
if func_name in solution.function_map:
|
||||||
|
return solution.function_map[func_name](data=data, part=part)
|
||||||
|
else:
|
||||||
|
return f"Function {func_name} not found"
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
@@ -26,6 +42,18 @@ if __name__ == "__main__":
|
|||||||
type=int,
|
type=int,
|
||||||
choices=range(FIRST_EVENT, LAST_EVENT + 1)
|
choices=range(FIRST_EVENT, LAST_EVENT + 1)
|
||||||
)
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"-f",
|
||||||
|
"--format",
|
||||||
|
type=str,
|
||||||
|
choices=['string', 'list', 'int_list'],
|
||||||
|
default='string',
|
||||||
|
required=False,
|
||||||
|
)
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
print(main(day=args.day, event=args.event, test=args.test))
|
if not args.test:
|
||||||
|
print(f"Part 1: {main(day=args.day, event=args.event, part=1, output_format=args.format, test=args.test)}")
|
||||||
|
print(f"Part 2: {main(day=args.day, event=args.event, part=2, output_format=args.format, test=args.test)}")
|
||||||
|
else:
|
||||||
|
print(f"{main(day=args.day, event=args.event, part=0, output_format=args.format, test=args.test)}")
|
||||||
Reference in new issue
Block a user