import os from abc import ABC from collections import Iterator from typing import Generator, Any class BaseAssignment(ABC): def __init__(self, path): self.path = path def parse_item(self, item: str) -> Any: return item def read_input(self, example = False) -> Generator: file = f'{self.path}/input.txt' if example or not os.path.isfile(file): file = f'{self.path}/example.txt' with open(file, 'r') as input_file: for line in input_file.readlines(): yield self.parse_item(line.strip()) def run(self, input: Iterator) -> Any: raise NotImplementedError('Please implement run')