summaryrefslogtreecommitdiffstats
path: root/aoc/__init__.py
diff options
context:
space:
mode:
authorGravatar Tom van der Lee <t0m.vd.l33@gmail.com>2022-11-28 13:52:27 +0100
committerGravatar Tom van der Lee <t0m.vd.l33@gmail.com>2022-11-28 13:52:27 +0100
commita3de698aa6b7e15e9d0974d32dc566676383bd28 (patch)
treed8d372b8adf7c7d2ab9b8d8b7d434945a88e7e9b /aoc/__init__.py
download2022-a3de698aa6b7e15e9d0974d32dc566676383bd28.tar.gz
2022-a3de698aa6b7e15e9d0974d32dc566676383bd28.tar.bz2
2022-a3de698aa6b7e15e9d0974d32dc566676383bd28.zip
Initial code
Diffstat (limited to 'aoc/__init__.py')
-rw-r--r--aoc/__init__.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/aoc/__init__.py b/aoc/__init__.py
new file mode 100644
index 0000000..b13489c
--- /dev/null
+++ b/aoc/__init__.py
@@ -0,0 +1,27 @@
1import os
2from abc import ABC
3from typing import Generator, Any, Iterator
4
5
6class BaseAssignment(ABC):
7 example_result = NotImplemented
8 def __init__(self, path):
9 self.path = path
10
11 def __str__(self):
12 return f'{self.__module__}.{self.__class__.__name__}'
13
14 def parse_item(self, item: str) -> Any:
15 return item
16
17 def read_input(self, example = False) -> Generator:
18 file = f'{self.path}/input.txt'
19 if example or not os.path.isfile(file):
20 file = f'{self.path}/example.txt'
21
22 with open(file, 'r') as input_file:
23 for line in input_file.readlines():
24 yield self.parse_item(line.strip())
25
26 def run(self, input: Iterator) -> Any:
27 raise NotImplementedError('Please implement run') \ No newline at end of file