code: def filter(self, func):
          
          return Catalog.from_dict({key: entry for key, entry in self.items()
                                    if func(entry)})
docs: Create a Catalog of a subset of entries based on a condition
  
          Note that, whatever specific class this is performed on, the return
          instance is a Catalog. The entries are passed unmodified, so they
          will still reference the original catalog instance and include its
          details such as directory,.
  
          Parameters
          ----------
          func : function
              This should take a CatalogEntry and return True or False. Those
              items returning True will be included in the new Catalog, with the
              same entry names
  
          Returns
          -------
          New Catalog