class BaseSolution: puzzle_input = "" input_file = None trim_input = True def parse_input(self, filename): filepath = './inputs/{}'.format(filename) with open(filepath, 'r') as f: self.puzzle_input = f.read() if self.trim_input: self.puzzle_input = self.puzzle_input.strip() def show_results(self): self.parse_input(self.input_file) print('\n\n{}\n{}\n\nPart 1: {}\nPart 2: {}'.format( str(self), '-' * len(str(self)), self.solve(self.puzzle_input), self.solve_again(self.puzzle_input), )) def solve(self, puzzle_input): raise NotImplemented def solve_again(self, puzzle_input): raise NotImplemented