|
12 | 12 | from aocd.exceptions import PuzzleLockedError |
13 | 13 | from aocd.models import Puzzle |
14 | 14 |
|
| 15 | +from aoc.base import BaseChallenge |
15 | 16 | from aoc.input_providers import SingleFileInputProvider, SmartFileInputProvider |
16 | 17 |
|
17 | 18 | app = typer.Typer(no_args_is_help=True) |
@@ -229,13 +230,25 @@ def submit( |
229 | 230 | help="Which part of the solution to submit. " |
230 | 231 | "You can use numbers 1/2 or letters a/b." |
231 | 232 | ), |
| 233 | + data_directory: Annotated[ |
| 234 | + Path, |
| 235 | + typer.Option( |
| 236 | + help="Path to a directory with data. Will be used if you won't provide" |
| 237 | + " --file/-f option" |
| 238 | + ), |
| 239 | + ] = Path("data"), |
232 | 240 | ): |
233 | 241 | validated_part = _full_validate(part) |
234 | 242 | module = import_challenge_module(year, day) |
| 243 | + challenge: BaseChallenge = module.Challenge( |
| 244 | + SmartFileInputProvider( |
| 245 | + year=year, day=day, data_dir=data_directory, use_test_data=False |
| 246 | + ) |
| 247 | + ) |
235 | 248 | if validated_part == "a": |
236 | | - solution = module.Challenge(use_test_data=False).part_1() |
| 249 | + solution = challenge.part_1(challenge.get_input_lines(part=1)) |
237 | 250 | else: |
238 | | - solution = module.Challenge(use_test_data=False).part_2() |
| 251 | + solution = challenge.part_2(challenge.get_input_lines(part=2)) |
239 | 252 | aocd.submit(solution, day=day, year=year, part=validated_part) |
240 | 253 |
|
241 | 254 |
|
|
0 commit comments