code: def _generate_indicators(catalog, validator=None, only_numeric=False):
      
  
      result = {}
  
      # Obtengo summary para los indicadores del estado de los metadatos
      result.update(_generate_status_indicators(catalog, validator=validator))
  
      # Genero los indicadores relacionados con fechas, y los agrego
      result.update(
          _generate_date_indicators(catalog, only_numeric=only_numeric))
  
      # Agrego la cuenta de los formatos de las distribuciones
      if not only_numeric:
          if 'dataset' in catalog:
              format_count = count_fields(get_distributions(catalog), 'format')
              type_count = count_fields(get_distributions(catalog), 'type')
              license_count = count_fields(get_datasets(catalog), 'license')
          else:
              format_count = type_count = license_count = {}
  
          result.update({
              'distribuciones_formatos_cant': format_count,
              'distribuciones_tipos_cant': type_count,
              'datasets_licencias_cant': license_count,
          })
  
      # Agrego porcentaje de campos recomendados/optativos usados
      fields_count = _count_required_and_optional_fields(catalog)
      recomendados_pct = float(fields_count['recomendado']) / \
          fields_count['total_recomendado']
      optativos_pct = float(fields_count['optativo']) / \
          fields_count['total_optativo']
      result.update({
          'campos_recomendados_pct': round(recomendados_pct, 4),
          'campos_optativos_pct': round(optativos_pct, 4)
      })
      return fields_count, result
docs: Genera los indicadores de un catálogo individual.
  
      Args:
          catalog (dict): diccionario de un data.json parseado
  
      Returns:
          dict: diccionario con los indicadores del catálogo provisto