NOJIRA aggregate names

This commit is contained in:
2021-09-20 09:27:27 +02:00
parent 022112fc2d
commit 1f0353c6f5

View File

@@ -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]