diff --git a/day01.py b/day01.py index da7de60..7bd619d 100644 --- a/day01.py +++ b/day01.py @@ -34,5 +34,5 @@ class Day(AOCDay): if __name__ == '__main__': - day = Day(1) + day = Day(2021, 1) day.run(verbose=True) diff --git a/day02.py b/day02.py index f1ce5b6..a96785d 100644 --- a/day02.py +++ b/day02.py @@ -42,5 +42,5 @@ class Day(AOCDay): if __name__ == '__main__': - day = Day(2) + day = Day(2021, 2) day.run(verbose=True) diff --git a/day03.py b/day03.py index e693fb0..c9df4ab 100644 --- a/day03.py +++ b/day03.py @@ -49,5 +49,5 @@ class Day(AOCDay): if __name__ == '__main__': - day = Day(3) + day = Day(2021, 3) day.run(verbose=True) diff --git a/day04.py b/day04.py index a21bca0..e74894e 100644 --- a/day04.py +++ b/day04.py @@ -86,5 +86,5 @@ class Day(AOCDay): if __name__ == '__main__': - day = Day(4) + day = Day(2021, 4) day.run(verbose=True) diff --git a/day05.py b/day05.py index fd5b1b4..adc9211 100644 --- a/day05.py +++ b/day05.py @@ -48,5 +48,5 @@ class Day(AOCDay): if __name__ == '__main__': - day = Day(5) + day = Day(2021, 5) day.run(verbose=True) diff --git a/day06.py b/day06.py index 8041aa2..767b0ef 100644 --- a/day06.py +++ b/day06.py @@ -40,5 +40,5 @@ class Day(AOCDay): if __name__ == '__main__': - day = Day(6) + day = Day(2021, 6) day.run(verbose=True) diff --git a/day07.py b/day07.py index 3edd270..a2bc0f2 100644 --- a/day07.py +++ b/day07.py @@ -49,5 +49,5 @@ class Day(AOCDay): if __name__ == '__main__': - day = Day(7) + day = Day(2021, 7) day.run(verbose=True) diff --git a/day08.py b/day08.py index 9e10bdc..6db4014 100644 --- a/day08.py +++ b/day08.py @@ -69,5 +69,5 @@ class Day(AOCDay): if __name__ == '__main__': - day = Day(8) + day = Day(2021, 8) day.run(verbose=True) diff --git a/day09.py b/day09.py index a423a1e..00747fa 100644 --- a/day09.py +++ b/day09.py @@ -59,5 +59,5 @@ class Day(AOCDay): if __name__ == '__main__': - day = Day(9) + day = Day(2021, 9) day.run(verbose=True) diff --git a/day10.py b/day10.py index fd7b7f1..fbbca66 100644 --- a/day10.py +++ b/day10.py @@ -61,5 +61,5 @@ class Day(AOCDay): if __name__ == '__main__': - day = Day(10) + day = Day(2021, 10) day.run(verbose=True) diff --git a/day11.py b/day11.py index 8fb38ee..b895b91 100644 --- a/day11.py +++ b/day11.py @@ -59,5 +59,5 @@ class Day(AOCDay): if __name__ == '__main__': - day = Day(11) + day = Day(2021, 11) day.run(verbose=True) diff --git a/day12.py b/day12.py index 59f0d85..b1766c0 100644 --- a/day12.py +++ b/day12.py @@ -61,5 +61,5 @@ class Day(AOCDay): if __name__ == '__main__': - day = Day(12) + day = Day(2021, 12) day.run(verbose=True) diff --git a/day13.py b/day13.py index 0bbc626..fd3cbdc 100644 --- a/day13.py +++ b/day13.py @@ -64,5 +64,5 @@ class Day(AOCDay): if __name__ == '__main__': - day = Day(13) + day = Day(2021, 13) day.run(verbose=True) diff --git a/day14.py b/day14.py index 1f1b87d..a1a5cae 100644 --- a/day14.py +++ b/day14.py @@ -54,5 +54,5 @@ class Day(AOCDay): if __name__ == '__main__': - day = Day(14) + day = Day(2021, 14) day.run(verbose=True) diff --git a/day15.py b/day15.py index c35f609..0a024bc 100644 --- a/day15.py +++ b/day15.py @@ -48,5 +48,5 @@ class Day(AOCDay): if __name__ == '__main__': - day = Day(15) + day = Day(2021, 15) day.run(verbose=True) diff --git a/day16.py b/day16.py index 6bdc430..523b518 100644 --- a/day16.py +++ b/day16.py @@ -95,5 +95,5 @@ class Day(AOCDay): if __name__ == '__main__': - day = Day(16) + day = Day(2021, 16) day.run(verbose=True) diff --git a/day17.py b/day17.py index 2ebc52a..c8a212c 100644 --- a/day17.py +++ b/day17.py @@ -55,5 +55,5 @@ class Day(AOCDay): if __name__ == '__main__': - day = Day(17) + day = Day(2021, 17) day.run(verbose=True) diff --git a/day18.py b/day18.py index 521f5b5..78ec400 100644 --- a/day18.py +++ b/day18.py @@ -241,5 +241,5 @@ class Day(AOCDay): if __name__ == '__main__': - day = Day(18) + day = Day(2021, 18) day.run(verbose=True) diff --git a/day19.py b/day19.py index 48194fc..90b197d 100644 --- a/day19.py +++ b/day19.py @@ -95,5 +95,5 @@ class Day(AOCDay): if __name__ == '__main__': - day = Day(19) + day = Day(2021, 19) day.run(verbose=True) diff --git a/day20.py b/day20.py index 84bd41a..d1b6e4b 100644 --- a/day20.py +++ b/day20.py @@ -61,5 +61,5 @@ class Day(AOCDay): if __name__ == '__main__': - day = Day(20) + day = Day(2021, 20) day.run(verbose=True) diff --git a/day21.py b/day21.py index 8943e3c..20db8c6 100644 --- a/day21.py +++ b/day21.py @@ -64,5 +64,5 @@ class Day(AOCDay): if __name__ == '__main__': - day = Day(21) + day = Day(2021, 21) day.run(verbose=True) diff --git a/day22.py b/day22.py index 9173dda..bb8828d 100644 --- a/day22.py +++ b/day22.py @@ -113,5 +113,5 @@ class Day(AOCDay): if __name__ == '__main__': - day = Day(22) + day = Day(2021, 22) day.run(verbose=True) diff --git a/day23.py b/day23.py index df243cc..dc4699c 100644 --- a/day23.py +++ b/day23.py @@ -127,5 +127,5 @@ class Day(AOCDay): if __name__ == '__main__': - day = Day(23) + day = Day(2021, 23) day.run(verbose=True) diff --git a/day24.py b/day24.py index 13a9f46..c67b80d 100644 --- a/day24.py +++ b/day24.py @@ -78,5 +78,5 @@ class Day(AOCDay): if __name__ == '__main__': - day = Day(24) + day = Day(2021, 24) day.run(verbose=True) diff --git a/day25.py b/day25.py index d5bf0bd..e9a5b95 100644 --- a/day25.py +++ b/day25.py @@ -65,5 +65,5 @@ class Day(AOCDay): if __name__ == '__main__': - day = Day(25) + day = Day(2021, 25) day.run(verbose=True) diff --git a/main.py b/main.py index bf52838..c598879 100755 --- a/main.py +++ b/main.py @@ -5,6 +5,7 @@ import argparse import importlib import os +YEAR = 2021 TIMEIT_NUMBER = 50 argument_parser = argparse.ArgumentParser() @@ -36,5 +37,5 @@ for _, _, files in os.walk(tools.aoc.BASE_PATH): for lib in sorted(imported): day = int(lib[-2:]) - day_class = getattr(globals()[lib], "Day")(day) + day_class = getattr(globals()[lib], "Day")(YEAR, day) day_class.run(flags.part if flags.part else 3, flags.verbose, flags.timeit, flags.timeit_number) diff --git a/skel_day.py b/skel_day.py index 9e1c653..dcebd15 100644 --- a/skel_day.py +++ b/skel_day.py @@ -20,5 +20,5 @@ class Day(AOCDay): if __name__ == '__main__': - day = Day(%DAY%) + day = Day(%YEAR%, %DAY%) day.run(verbose=True) diff --git a/start_day.py b/start_day.py new file mode 100755 index 0000000..ad80908 --- /dev/null +++ b/start_day.py @@ -0,0 +1,51 @@ +#!/usr/bin/env python3 +from argparse import ArgumentParser +from datetime import datetime +from os.path import exists +from platform import system +from subprocess import call +from time import sleep +import webbrowser + + +YEAR = 2021 +CHARMS = { + 'Linux': '/usr/local/bin/charm', + 'Windows': r'C:\somewhere\pycharm64.exe' +} + +arg_parser = ArgumentParser() +arg_parser.add_argument("-d", "--day", help="start a specific day (default: today)", type=int) +args = arg_parser.parse_args() + +DAY = args.day or datetime.now().day + +if YEAR < 2015 or not 1 <= DAY <= 25: + print("Invalid year or day for year: %d, day: %d" % (YEAR, DAY)) + exit() + +day_file = "day%02d.py" % DAY +if exists(day_file): + print(day_file, "already exists. Use that one!") + exit() + +with open("skel_day.py", "r") as IN: + with open(day_file, "w") as OUT: + while in_line := IN.readline(): + OUT.write(in_line.replace("%YEAR%", str(YEAR)).replace("%DAY%", str(DAY))) + +start = datetime(YEAR, 12, DAY, 6, 0, 0) +now = datetime.now() +if start > now: + time_wait = start - now + if time_wait.days > 0: + print("Do you really want to wait %d days?" % time_wait.days) + exit() + + for x in range(time_wait.seconds, -1, -1): + print("Day starts in %02ds.\r") + sleep(1) + +call([CHARMS[system()], day_file]) +webbrowser.open("https://adventofcode.com/%d/day/%d" % (YEAR, DAY)) +call(["git", "add", day_file])