code: def depsolve(self):
          
          # load everything
          requires = {}
          provides = {}
          for mode, r in self.recipes.items():
              l = self.load_recipe_object(mode)
  
              for field, vv in l.requirements().items():
                  if vv.type.isproduct():
                      name = vv.type.name()
                      pe = ProductEntry(name, mode, field)
                      requires[name] = pe
  
              for field, vv in l.products().items():
                  if vv.type.isproduct():
                      name = vv.type.name()
                      pe = ProductEntry(name, mode, field)
                      provides[name] = pe
  
          return requires, provides
docs: Load all recipes to search for products