diff --git a/recipes.py b/recipes.py index b828b4d..69510f5 100644 --- a/recipes.py +++ b/recipes.py @@ -184,10 +184,22 @@ class Recipe: self.title = "" def load(self, dct: Dict[str, Any]) -> List[str]: - rp = RecipePart() - issues = rp.load(dct) - self.parts = [rp] - self.title = rp.title + issues: List[str] = [] + if "parts" in dct: + assert_dict(dct, ["title"], []) + assert_type(dct, "title", str) + self.title = dct["title"] + + assert_list(dct["parts"]) + for partdct in dct["parts"]: + rp = RecipePart() + issues += rp.load(partdct) + self.parts.append(rp) + else: + rp = RecipePart() + issues = rp.load(dct) + self.parts = [rp] + self.title = rp.title return issues