From 1f0353c6f54414a8156bc55c282d4f4542adb0ae Mon Sep 17 00:00:00 2001 From: Ivo Spijkerman Date: Mon, 20 Sep 2021 09:27:27 +0200 Subject: [PATCH] NOJIRA aggregate names --- src/item_builder.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/item_builder.py b/src/item_builder.py index ba864d4..078fed8 100644 --- a/src/item_builder.py +++ b/src/item_builder.py @@ -10,13 +10,13 @@ class ItemBuilder: def __init__(self, orders: List[Order]): self.__item_names: List[str] = _flatten([o.items for o in orders]) - def _translate_part(self, old: str, new: str): + def _translate_part(self, old: str, new: str) -> None: self.__item_names = [i.replace(old, new) for i in self.__item_names] - def _translate_whole(self, old: str, new: str): + def _translate_whole(self, old: str, new: str) -> None: self.__item_names = [new if i == old else i for i in self.__item_names] - def _consolidate_names(self): + def _consolidate_names(self) -> None: uq_item_names: List[str] = list(set(self.__item_names)) print(uq_item_names) for idx, lhs in enumerate(uq_item_names): @@ -27,13 +27,7 @@ class ItemBuilder: print(lhs + ":" + rhs + " = " + str(distance)) self._translate_whole(lhs, rhs) - def build(self) -> List[Item]: - self._translate_part("frietje", "friet") - self._translate_part("krul friet", "twister") - self._translate_part("krulfriet", "twister") - - self._consolidate_names() - + def _aggregate_names(self) -> List[Item]: items: Dict[str, int] = {} for item_name in self.__item_names: if item_name not in items: @@ -41,6 +35,15 @@ class ItemBuilder: items[item_name] += 1 return sorted([Item(n, a) for n, a in items.items()]) + def build(self) -> List[Item]: + self._translate_part("frietje", "friet") + self._translate_part("krul friet", "twister") + self._translate_part("krulfriet", "twister") + + self._consolidate_names() + + return self._aggregate_names() + def _flatten(t: List[List]) -> List: return [item for sublist in t for item in sublist]