advent-of-code/2017-python/aoc.py

78 lines
1.7 KiB
Python
Raw Normal View History

2021-11-01 16:40:46 +01:00
import sys
try:
_, day_no, name = sys.argv
except ValueError:
day_no = None
name = None
if day_no and name:
2025-05-06 20:14:58 +02:00
with open("solutions/day_{}.py".format(day_no.zfill(2)), "w") as s:
s.write(
"""
2021-11-01 16:40:46 +01:00
from solutions import BaseSolution
class Solution(BaseSolution):
input_file = '{day_no}.txt'
def __str__(self):
return 'Day {day}: {name}'
def solve(self, puzzle_input):
pass
def solve_again(self, puzzle_input):
pass
if __name__ == '__main__':
solution = Solution()
solution.show_results()
2025-05-06 20:14:58 +02:00
""".strip().format(
day=day_no, day_no=day_no.zfill(2), name=name
)
+ "\n"
)
with open("tests/day_{}_tests.py".format(day_no.zfill(2)), "w") as t:
t.write(
"""
2021-11-01 16:40:46 +01:00
import unittest
from solutions.day_{day_no} import Solution
class Day{day_no}TestCase(unittest.TestCase):
def setUp(self):
self.solution = Solution()
def test_something(self):
assert self.solution.solve('puzzle_input') == True
if __name__ == '__main__':
unittest.main()
2025-05-06 20:14:58 +02:00
""".strip().format(
day_no=day_no.zfill(2)
)
+ "\n"
)
with open("inputs/{}.txt".format(day_no.zfill(2)), "w") as i:
i.write("")
2021-11-01 16:40:46 +01:00
exit(0)
2025-05-06 20:14:58 +02:00
print(
"\nAdvent of Code 2017" "\n###################" "\n\nby Anders Ytterström (@madr)"
)
2021-11-01 16:40:46 +01:00
for i in [str(n).zfill(2) for n in range(1, 26)]:
try:
2025-05-06 20:14:58 +02:00
solution = __import__(
"solutions.day_{}".format(i), globals(), locals(), ["Solution"], 0
).Solution()
2021-11-01 16:40:46 +01:00
solution.show_results()
except IOError:
pass
except ImportError:
pass