code: def catalog_report(self, catalog, harvest='none', report=None,
                         catalog_id=None, catalog_homepage=None,
                         catalog_org=None):
          
  
          url = catalog if isinstance(catalog, string_types) else None
          catalog = readers.read_catalog(catalog)
  
          validation = self.validate_catalog(catalog)
          catalog_validation = validation["error"]["catalog"]
          datasets_validations = validation["error"]["dataset"]
  
          catalog_fields = self._catalog_report_helper(
              catalog, catalog_validation, url, catalog_id, catalog_org
          )
  
          if "dataset" in catalog and isinstance(catalog["dataset"], list):
              datasets = [d if isinstance(d, dict) else {} for d in
                          catalog["dataset"]]
          else:
              datasets = []
  
          catalog_report = [
              self._dataset_report(
                  dataset, datasets_validations[index], index,
                  catalog_fields, harvest, report=report,
                  catalog_homepage=catalog_homepage
              )
              for index, dataset in enumerate(datasets)
          ]
  
          return catalog_report
docs: Genera un reporte sobre los datasets de un único catálogo.
  
          Args:
              catalog (dict, str o unicode): Representación externa (path/URL) o
                  interna (dict) de un catálogo.
              harvest (str): Criterio de cosecha ('all', 'none',
                  'valid', 'report' o 'good').
  
          Returns:
              list: Lista de diccionarios, con un elemento por cada dataset
                  presente en `catalog`.