include year and start_day

This commit is contained in:
Stefan Harmuth 2021-12-28 10:05:13 +01:00
parent 7e7bdfc81d
commit 04c61ab544
28 changed files with 79 additions and 27 deletions

View File

@ -34,5 +34,5 @@ class Day(AOCDay):
if __name__ == '__main__':
day = Day(1)
day = Day(2021, 1)
day.run(verbose=True)

View File

@ -42,5 +42,5 @@ class Day(AOCDay):
if __name__ == '__main__':
day = Day(2)
day = Day(2021, 2)
day.run(verbose=True)

View File

@ -49,5 +49,5 @@ class Day(AOCDay):
if __name__ == '__main__':
day = Day(3)
day = Day(2021, 3)
day.run(verbose=True)

View File

@ -86,5 +86,5 @@ class Day(AOCDay):
if __name__ == '__main__':
day = Day(4)
day = Day(2021, 4)
day.run(verbose=True)

View File

@ -48,5 +48,5 @@ class Day(AOCDay):
if __name__ == '__main__':
day = Day(5)
day = Day(2021, 5)
day.run(verbose=True)

View File

@ -40,5 +40,5 @@ class Day(AOCDay):
if __name__ == '__main__':
day = Day(6)
day = Day(2021, 6)
day.run(verbose=True)

View File

@ -49,5 +49,5 @@ class Day(AOCDay):
if __name__ == '__main__':
day = Day(7)
day = Day(2021, 7)
day.run(verbose=True)

View File

@ -69,5 +69,5 @@ class Day(AOCDay):
if __name__ == '__main__':
day = Day(8)
day = Day(2021, 8)
day.run(verbose=True)

View File

@ -59,5 +59,5 @@ class Day(AOCDay):
if __name__ == '__main__':
day = Day(9)
day = Day(2021, 9)
day.run(verbose=True)

View File

@ -61,5 +61,5 @@ class Day(AOCDay):
if __name__ == '__main__':
day = Day(10)
day = Day(2021, 10)
day.run(verbose=True)

View File

@ -59,5 +59,5 @@ class Day(AOCDay):
if __name__ == '__main__':
day = Day(11)
day = Day(2021, 11)
day.run(verbose=True)

View File

@ -61,5 +61,5 @@ class Day(AOCDay):
if __name__ == '__main__':
day = Day(12)
day = Day(2021, 12)
day.run(verbose=True)

View File

@ -64,5 +64,5 @@ class Day(AOCDay):
if __name__ == '__main__':
day = Day(13)
day = Day(2021, 13)
day.run(verbose=True)

View File

@ -54,5 +54,5 @@ class Day(AOCDay):
if __name__ == '__main__':
day = Day(14)
day = Day(2021, 14)
day.run(verbose=True)

View File

@ -48,5 +48,5 @@ class Day(AOCDay):
if __name__ == '__main__':
day = Day(15)
day = Day(2021, 15)
day.run(verbose=True)

View File

@ -95,5 +95,5 @@ class Day(AOCDay):
if __name__ == '__main__':
day = Day(16)
day = Day(2021, 16)
day.run(verbose=True)

View File

@ -55,5 +55,5 @@ class Day(AOCDay):
if __name__ == '__main__':
day = Day(17)
day = Day(2021, 17)
day.run(verbose=True)

View File

@ -241,5 +241,5 @@ class Day(AOCDay):
if __name__ == '__main__':
day = Day(18)
day = Day(2021, 18)
day.run(verbose=True)

View File

@ -95,5 +95,5 @@ class Day(AOCDay):
if __name__ == '__main__':
day = Day(19)
day = Day(2021, 19)
day.run(verbose=True)

View File

@ -61,5 +61,5 @@ class Day(AOCDay):
if __name__ == '__main__':
day = Day(20)
day = Day(2021, 20)
day.run(verbose=True)

View File

@ -64,5 +64,5 @@ class Day(AOCDay):
if __name__ == '__main__':
day = Day(21)
day = Day(2021, 21)
day.run(verbose=True)

View File

@ -113,5 +113,5 @@ class Day(AOCDay):
if __name__ == '__main__':
day = Day(22)
day = Day(2021, 22)
day.run(verbose=True)

View File

@ -127,5 +127,5 @@ class Day(AOCDay):
if __name__ == '__main__':
day = Day(23)
day = Day(2021, 23)
day.run(verbose=True)

View File

@ -78,5 +78,5 @@ class Day(AOCDay):
if __name__ == '__main__':
day = Day(24)
day = Day(2021, 24)
day.run(verbose=True)

View File

@ -65,5 +65,5 @@ class Day(AOCDay):
if __name__ == '__main__':
day = Day(25)
day = Day(2021, 25)
day.run(verbose=True)

View File

@ -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)

View File

@ -20,5 +20,5 @@ class Day(AOCDay):
if __name__ == '__main__':
day = Day(%DAY%)
day = Day(%YEAR%, %DAY%)
day.run(verbose=True)

51
start_day.py Executable file
View File

@ -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])