diff --git a/recipes.py b/recipes.py index 69510f5..06f4629 100644 --- a/recipes.py +++ b/recipes.py @@ -31,7 +31,7 @@ class Units: class Ingredient: def load(self, dct: Dict[str, Any]) -> List[str]: issues = [] - issues += assert_dict(dct, ["name"], ["wdid", "pricedb"]) + issues += assert_dict(dct, ["name"], ["wdid", "pricedb", "aliases"]) assert_type(dct, "name", str) self.name = dct["name"] @@ -47,6 +47,13 @@ class Ingredient: self.pricedb = PriceDBs() issues += self.pricedb.load(dct["pricedb"]) + self.aliases = [] + if "aliases" in dct: + assert_list(dct["aliases"]) + for elem in dct["aliases"]: + assert_type(elem, "", str) + self.aliases.append(elem) + return issues @@ -65,7 +72,7 @@ class Ingredients: def get(self, name: str) -> Optional[Ingredient]: for ing in self.ingredients: - if ing.name == name: + if ing.name == name or name in ing.aliases: return ing raise RuntimeError(f"ingredient {name} not found")