# -*- coding: utf-8 -*- from abc import ABC from enum import Enum from typing import Iterator from aoc import BaseAssignment, I, T class Color(Enum): red = 'red' green = 'green' blue = 'blue' ColorCount = tuple[int, Color] class Assignment(BaseAssignment, ABC): def parse_item(self, item: str) -> list[tuple[ColorCount, ...]]: _, items = item.split(': ') return [ tuple( tuple(( int(_.split(' ')[0]), Color(_.split(' ')[1]) )) for _ in pair.split(', ') ) for pair in items.split('; ') ] class AssignmentOne(Assignment): example_result = 8 def run(self, input: Iterator[I]) -> T: for i in input: print(i) class AssignmentTwo(Assignment): pass