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

77 lines
1.7 KiB
Python

import sys
try:
_, day_no, name = sys.argv
except ValueError:
day_no = None
name = None
if day_no and name:
with open("solutions/day_{}.py".format(day_no.zfill(2)), "w") as s:
s.write(
"""
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()
""".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(
"""
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()
""".strip().format(
day_no=day_no.zfill(2)
)
+ "\n"
)
with open("inputs/{}.txt".format(day_no.zfill(2)), "w") as i:
i.write("")
exit(0)
print(
"\nAdvent of Code 2017" "\n###################" "\n\nby Anders Ytterström (@madr)"
)
for i in [str(n).zfill(2) for n in range(1, 26)]:
try:
solution = __import__(
"solutions.day_{}".format(i), globals(), locals(), ["Solution"], 0
).Solution()
solution.show_results()
except IOError:
pass
except ImportError:
pass