docs: def generate_catalogs_indicators(catalogs, central_catalog=None,
                                   identifier_search=False,
                                   validator=None):
      """Genera una lista de diccionarios con varios indicadores sobre
      los catálogos provistos, tales como la cantidad de datasets válidos,
      días desde su última fecha actualizada, entre otros.
  
      Args:
          catalogs (str o list): uno o más catalogos sobre los que se quiera
              obtener indicadores
          central_catalog (str): catálogo central sobre el cual comparar los
              datasets subidos en la lista anterior. De no pasarse no se
              generarán indicadores de federación de datasets.
  
      Returns:
          tuple: 2 elementos, el primero una lista de diccionarios con los
              indicadores esperados, uno por catálogo pasado, y el segundo
              un diccionario con indicadores a nivel global,
              datos sobre la lista entera en general.
      """
      assert isinstance(catalogs, string_types + (dict, list))
      # Si se pasa un único catálogo, genero una lista que lo contenga
      if isinstance(catalogs, string_types + (dict,)):
          catalogs = [catalogs]
  
      indicators_list = []
      # Cuenta la cantidad de campos usados/recomendados a nivel global
      fields = {}
      catalogs_cant = 0
      for catalog in catalogs:
          try:
              catalog = readers.read_catalog(catalog)
              catalogs_cant += 1
          except Exception as e:
              msg = u'Error leyendo catálogo de la lista: {}'.format(str(e))
              logger.error(msg)
              continue
  
          fields_count, result = _generate_indicators(
              catalog, validator=validator)
          if central_catalog:
              result.update(_federation_indicators(
                  catalog, central_catalog, identifier_search=identifier_search))
          if not indicators_list:
              # La primera iteracion solo copio el primer resultado
              network_indicators = result.copy()
          else:
              network_indicators = helpers.add_dicts(network_indicators,
                                                     result)
          # Sumo a la cuenta total de campos usados/totales
          fields = helpers.add_dicts(fields_count, fields)
  
          result['title'] = catalog.get('title', 'no-title')
          result['identifier'] = catalog.get('identifier', 'no-id')
          indicators_list.append(result)
  
      if not indicators_list:
          # No se pudo leer ningún catálogo
          return [], {}
  
      # Indicadores de la red entera
      network_indicators['catalogos_cant'] = catalogs_cant
      # Genero los indicadores de la red entera,
      _network_indicator_percentages(fields, network_indicators)
  
      return indicators_list, network_indicators