# -*- coding: utf-8 -*- import os from abc import ABC from typing import Generator, Any, Iterator class BaseAssignment(ABC): example_result = NotImplemented def __init__(self, path): self.path = path def __str__(self): return f"{self.__module__}.{self.__class__.__name__}" 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("\n")) def run(self, input: Iterator) -> Any: raise NotImplementedError("Please implement run")