docs: def _generate_status_indicators(catalog, validator=None):
      """Genera indicadores básicos sobre el estado de un catálogo
  
      Args:
          catalog (dict): diccionario de un data.json parseado
  
      Returns:
          dict: indicadores básicos sobre el catálogo, tal como la cantidad
          de datasets, distribuciones y número de errores
      """
      result = {
          'datasets_cant': None,
          'distribuciones_cant': None,
          'datasets_meta_ok_cant': None,
          'datasets_meta_error_cant': None,
          'datasets_meta_ok_pct': None,
          'datasets_con_datos_cant': None,
          'datasets_sin_datos_cant': None,
          'datasets_con_datos_pct': None
      }
      try:
          summary = generate_datasets_summary(catalog, validator=validator)
      except Exception as e:
          msg = u'Error generando resumen del catálogo {}: {}'.format(
              catalog['title'], str(e))
          logger.error(msg)
          return result
  
      cant_ok = 0
      cant_error = 0
      cant_data = 0
      cant_without_data = 0
      cant_distribuciones = 0
      datasets_total = len(summary)
      for dataset in summary:
          cant_distribuciones += dataset['cant_distribuciones']
  
          # chequea si el dataset tiene datos
          if dataset['tiene_datos'] == "SI":
              cant_data += 1
          else:  # == "ERROR"
              cant_without_data += 1
  
          # chequea estado de los metadatos
          if dataset['estado_metadatos'] == "OK":
              cant_ok += 1
          else:  # == "ERROR"
              cant_error += 1
  
      datasets_ok_pct = 0
      datasets_with_data_pct = 0
      if datasets_total:
          datasets_ok_pct = round(float(cant_ok) / datasets_total, 4)
          datasets_with_data_pct = round(float(cant_data) / datasets_total, 4)
  
      result.update({
          'datasets_cant': datasets_total,
          'distribuciones_cant': cant_distribuciones,
          'datasets_meta_ok_cant': cant_ok,
          'datasets_meta_error_cant': cant_error,
          'datasets_meta_ok_pct': datasets_ok_pct,
          'datasets_con_datos_cant': cant_data,
          'datasets_sin_datos_cant': cant_without_data,
          'datasets_con_datos_pct': datasets_with_data_pct
  
      })
      return result