import os
from pydatajson import DataJson

dj = DataJson()
catalog = os.path.join("samples", "catalogo-justicia.json")
dj.generate_catalogs_indicators(catalog)

"""
Explanation: Caso de uso - Generación de indicadores
En esta prueba se demuestra el uso del método de generación de indicadores de la librería, junto con el retorno esperado.
La función utilizada es única, generate_catalogs_indicators.
Ejemplo básico
Calculamos indicadores sobre un único catálogo. El método espera un objeto str (o unicode), con una ruta o URL a el data.json del catálogo.
End of explanation
"""


import os
from pydatajson import DataJson

dj = DataJson()
catalogs = [
    os.path.join("samples", "catalogo-justicia.json"),
    "http://datos.gob.ar/data.json"
]
dj.generate_catalogs_indicators(catalogs)

"""
Explanation: El método devuelve un objeto tuple con dos valores, el primero los indicadores del catálogo individual, y el segundo los indicadores de la red entera, que para este caso, al ser la red entera constituída por un único catálogo, son exactamente idénticos. Se calculan los siguientes indicadores:
- Cantidad de datasets: datasets_cant
- Cantidad de distribuciones: distribuciones_cant
- Validez de los datasets: datasets_meta_ok_cant, datasets_meta_error_cant, datasets_meta_ok_pct
- Actualidad del catálogo/datasets: catalogo_ultima_actualizacion_dias, datasets_actualizados_cant, datasets_no_actualizados_cant, datasets_actualizados_pct
- Uso de campos optativos/recomendados: campos_recomendados_pct, campos_optativos_pct
- Frecuencia de actualización de datasets: datasets_frecuencia_cant
- Formatos de las distribuciones de los datasets: distribuciones_formatos_cant
Notar que los últimos dos son a su vez diccionarios, con las claves representando los formatos / frecuencias particulares y sus valores, la cantidad.
Varios catálogos
Si se pasa una lista de catálogos, se calculan varios indicadores a la vez, y los indicadores de la red entera contienen a la suma de los indicadores individuales.
End of explanation
"""


import os
from pydatajson import DataJson

dj = DataJson()
catalogs = [
    os.path.join("samples", "catalogo-justicia.json"),
]
central_catalog = "http://datos.gob.ar/data.json"
dj.generate_catalogs_indicators(catalogs, central_catalog)

"""
Explanation: Indicadores de federación
El método opcionalmente acepta un segundo parámetro: el catálogo central de la red de nodos. De estar presente, se calculan indicadores sobre la cantidad de datasets federados en la red central para cada catálogo, es decir, la cantidad de datasets del catálogo particular presentes en el catálogo central. El diccionario resultado contiene los indicadores datasets_federados_cant, datasets_no_federados_cant, datasets_federados_pct.
End of explanation
"""


