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