Referencia rápida

Lectura

class pydatajson.core.DataJson(catalog=None, schema_filename=None, schema_dir=None, default_values=None)[fuente]

Objeto que representa un catálogo de activos de datos.

__init__(catalog=None, schema_filename=None, schema_dir=None, default_values=None)[fuente]

Lee un catálogo y crea un objeto con funciones para manipularlo.

Salvo que se indique lo contrario, se utiliza como default el schema de la versión 1.1 del Perfil de Metadatos de Argentina.

Parámetros:
  • catalog (dict or str) – Representación externa/interna de un catálogo. Una representación _externa_ es un path local o una URL remota a un archivo con la metadata de un catálogo, en formato JSON o XLSX. La representación _interna_ de un catálogo es un diccionario. Ejemplos: http://datos.gob.ar/data.json, http://www.ign.gob.ar/descargas/geodatos/catalog.xlsx, «/energia/catalog.xlsx».
  • schema_filename (str) – Nombre del archivo que contiene el esquema validador.
  • schema_dir (str) – Directorio (absoluto) donde se encuentra el esquema validador (y sus referencias, de tenerlas).
  • default_values (dict) –

    Valores default para algunos de los campos del catálogo:

    {
        "dataset_issued": "2017-06-22",
        "distribution_issued": "2017-06-22"
    }
    

Escritura

class pydatajson.core.DataJson(catalog=None, schema_filename=None, schema_dir=None, default_values=None)[fuente]

Objeto que representa un catálogo de activos de datos.

to_json(path)

Escribe el catálogo en JSON.

Parámetros:
  • catalog (DataJson) – Catálogo de datos.
  • path (str) – Directorio absoluto donde se crea el archivo XLSX.
to_xlsx(path, xlsx_fields=None)

Escribe el catálogo en Excel.

Parámetros:
  • catalog (DataJson) – Catálogo de datos.
  • path (str) – Directorio absoluto donde se crea el archivo XLSX.
  • xlsx_fields (dict) – Orden en que los campos del perfil de metadatos se escriben en cada hoja del Excel.

Validación

class pydatajson.core.DataJson(catalog=None, schema_filename=None, schema_dir=None, default_values=None)[fuente]

Objeto que representa un catálogo de activos de datos.

is_valid_catalog(catalog=None)[fuente]

Valida que un archivo data.json cumpla con el schema definido.

Chequea que el data.json tiene todos los campos obligatorios y que tanto los campos obligatorios como los opcionales siguen la estructura definida en el schema.

Parámetros:catalog (str o dict) – Catálogo (dict, JSON o XLSX) a ser validado. Si no se pasa, valida este catálogo.
Devuelve:True si el data.json cumple con el schema, sino False.
Tipo del valor devuelto:
 bool
validate_catalog(catalog=None, only_errors=False, fmt=u'dict', export_path=None)[fuente]

Analiza un data.json registrando los errores que encuentra.

Chequea que el data.json tiene todos los campos obligatorios y que tanto los campos obligatorios como los opcionales siguen la estructura definida en el schema.

Parámetros:
  • catalog (str o dict) – Catálogo (dict, JSON o XLSX) a ser validado. Si no se pasa, valida este catálogo.
  • only_errors (bool) – Si es True sólo se reportan los errores.
  • fmt (str) –

    Indica el formato en el que se desea el reporte. «dict» es el reporte más verborrágico respetando la

    estructura del data.json.
    »list» devuelve un dict con listas de errores formateados para
    generar tablas.
  • export_path (str) – Path donde exportar el reporte generado (en formato XLSX o CSV). Si se especifica, el método no devolverá nada, a pesar de que se pase algún argumento en fmt.
Devuelve:

Diccionario resumen de los errores encontrados:

{
    "status": "OK",  # resultado de la validación global
    "error": {
        "catalog": {
            "status": "OK",
            "errors": []
            "title": "Título Catalog"},
        "dataset": [
            {
                "status": "OK",
                "errors": [],
                "title": "Titulo Dataset 1"
            },
            {
                "status": "ERROR",
                "errors": [error1_info, error2_info, ...],
                "title": "Titulo Dataset 2"
            }
        ]
    }
}

Donde errorN_info es un dict con la información del N-ésimo error encontrado, con las siguientes claves: «path», «instance», «message», «validator», «validator_value», «error_code».

Tipo del valor devuelto:
 

dict

Búsqueda

class pydatajson.core.DataJson(catalog=None, schema_filename=None, schema_dir=None, default_values=None)[fuente]

Objeto que representa un catálogo de activos de datos.

get_dataset(identifier=None, title=None)

Devuelve un Dataset del catálogo.

get_datasets(filter_in=None, filter_out=None, meta_field=None, exclude_meta_fields=None, only_time_series=False)

Devuelve una lista de datasets del catálogo o de uno de sus metadatos.

Parámetros:
  • catalog (dict, str or DataJson) – Representación externa/interna de un catálogo. Una representación _externa_ es un path local o una URL remota a un archivo con la metadata de un catálogo, en formato JSON o XLSX. La representación _interna_ de un catálogo es un diccionario. Ejemplos: http://datos.gob.ar/data.json, http://www.ign.gob.ar/descargas/geodatos/catalog.xlsx, «/energia/catalog.xlsx».
  • filter_in (dict) –

    Devuelve los datasets cuyos atributos coinciden con los pasados en este diccionario. Ejemplo:

    {
        "dataset": {
            "publisher": {"name": "Ministerio de Ambiente"}
        }
    }
    

    Sólo se devolverán los datasets de ese publisher_name.

  • filter_out (dict) –

    Devuelve los datasets cuyos atributos no coinciden con los pasados en este diccionario. Ejemplo:

    {
        "dataset": {
            "publisher": {"name": "Ministerio de Ambiente"}
        }
    }
    

    Sólo se devolverán los datasets que no sean de ese publisher_name.

  • meta_field (str) – Nombre de un metadato de Dataset. En lugar de devolver los objetos completos «Dataset», devuelve una lista de valores para ese metadato presentes en el catálogo.
  • exclude_meta_fields (list) – Metadatos de Dataset que se quieren excluir de los objetos Dataset devueltos.
  • only_time_series (bool) – Si es verdadero, sólo devuelve datasets que tengan por lo menos una distribución de series de tiempo.
get_field(identifier=None, title=None, distribution_identifier=None)

Devuelve un Field del catálogo.

get_fields(filter_in=None, filter_out=None, meta_field=None, only_time_series=False)

Devuelve lista de campos del catálogo o de uno de sus metadatos.

Parámetros:
  • catalog (dict, str or DataJson) – Representación externa/interna de un catálogo. Una representación _externa_ es un path local o una URL remota a un archivo con la metadata de un catálogo, en formato JSON o XLSX. La representación _interna_ de un catálogo es un diccionario. Ejemplos: http://datos.gob.ar/data.json, http://www.ign.gob.ar/descargas/geodatos/catalog.xlsx, «/energia/catalog.xlsx».
  • filter_in (dict) –

    Devuelve los campos cuyos atributos coinciden con los pasados en este diccionario. Ejemplo:

    {
        "dataset": {
            "publisher": {"name": "Ministerio de Ambiente"}
        }
    }
    

    Sólo se devolverán los campos que pertenezcan a un dataset de ese publisher_name.

  • filter_out (dict) –

    Devuelve los campos cuyos atributos no coinciden con los pasados en este diccionario. Ejemplo:

    {
        "dataset": {
            "publisher": {"name": "Ministerio de Ambiente"}
        }
    }
    

    Sólo se devolverán los campos que no pertenezcan a un dataset de ese publisher_name.

  • meta_field (str) – Nombre de un metadato de Field. En lugar de devolver los objetos completos «Field», devuelve una lista de valores para ese metadato presentes en el catálogo.
  • exclude_meta_fields (list) – Metadatos de Field que se quieren excluir de los objetos Field devueltos.
  • only_time_series (bool) – Si es verdadero, sólo devuelve campos que sean series de tiempo.

Indicadores

class pydatajson.core.DataJson(catalog=None, schema_filename=None, schema_dir=None, default_values=None)[fuente]

Objeto que representa un catálogo de activos de datos.

Reportes

class pydatajson.core.DataJson(catalog=None, schema_filename=None, schema_dir=None, default_values=None)[fuente]

Objeto que representa un catálogo de activos de datos.

generate_catalog_readme(catalog, export_path=None)[fuente]

Genera una descripción textual en formato Markdown sobre los metadatos generales de un catálogo (título, editor, fecha de publicación, et cetera), junto con:

  • estado de los metadatos a nivel catálogo,
  • estado global de los metadatos,
  • cantidad de datasets federados y no federados,
  • detalles de los datasets no federados
  • cantidad de datasets y distribuciones incluidas

Es utilizada por la rutina diaria de libreria-catalogos para generar un README con información básica sobre los catálogos mantenidos.

Parámetros:
  • catalog (str o dict) – Path a un catálogo en cualquier formato, JSON, XLSX, o diccionario de python.
  • export_path (str) – Path donde exportar el texto generado (en formato Markdown). Si se especifica, el método no devolverá nada.
Devuelve:

Texto de la descripción generada.

Tipo del valor devuelto:
 

str

generate_datasets_summary(catalog, export_path=None)[fuente]

Genera un informe sobre los datasets presentes en un catálogo, indicando para cada uno:

  • Índice en la lista catalog[«dataset»]
  • Título
  • Identificador
  • Cantidad de distribuciones
  • Estado de sus metadatos [«OK»|»ERROR»]

Es utilizada por la rutina diaria de libreria-catalogos para reportar sobre los datasets de los catálogos mantenidos.

Parámetros:
  • catalog (str o dict) – Path a un catálogo en cualquier formato, JSON, XLSX, o diccionario de python.
  • export_path (str) – Path donde exportar el informe generado (en formato XLSX o CSV). Si se especifica, el método no devolverá nada.
Devuelve:

Contiene tantos dicts como datasets estén presentes en catalogs, con los datos antes mencionados.

Tipo del valor devuelto:
 

list

Federación

class pydatajson.core.DataJson(catalog=None, schema_filename=None, schema_dir=None, default_values=None)[fuente]

Objeto que representa un catálogo de activos de datos.

harvest_catalog_to_ckan(portal_url, apikey, catalog_id, dataset_list=None, owner_org=None, download_strategy=None)

Federa los datasets de un catálogo al portal pasado por parámetro.

Parámetros:
  • catalog (DataJson) – El catálogo de origen que se federa.
  • portal_url (str) – La URL del portal CKAN de destino.
  • apikey (str) – La apikey de un usuario con los permisos que le permitan crear o actualizar el dataset.
  • catalog_id (str) – El prefijo con el que va a preceder el id del dataset en catálogo destino.
  • dataset_list (list(str)) – Los ids de los datasets a federar. Si no se pasa una lista, todos los datasests se federan.
  • owner_org (str) – La organización a la cual pertencen los datasets. Si no se pasa, se utiliza el catalog_id.
  • download_strategy (callable) – Una función (catálogo, distribución)-> bool. Sobre las distribuciones que evalúa True, descarga el recurso en el downloadURL y lo sube al portal de destino. Por default no sube ninguna distribución.
Devuelve:

El id del dataset en el catálogo de destino.

Tipo del valor devuelto:
 

str

harvest_dataset_to_ckan(owner_org, dataset_origin_identifier, portal_url, apikey, catalog_id, download_strategy=None)

Federa la metadata de un dataset en el portal pasado por parámetro.

Parámetros:
  • catalog (DataJson) – El catálogo de origen que contiene el dataset.
  • owner_org (str) – La organización a la cual pertence el dataset.
  • dataset_origin_identifier (str) – El id del dataset que se va a restaurar.
  • portal_url (str) – La URL del portal CKAN de destino.
  • apikey (str) – La apikey de un usuario con los permisos que le permitan crear o actualizar el dataset.
  • catalog_id (str) – El id que prependea al dataset y recursos
  • download_strategy (callable) – Una función (catálogo, distribución)-> bool. Sobre las distribuciones que evalúa True, descarga el recurso en el downloadURL y lo sube al portal de destino. Por default no sube ninguna distribución.
Devuelve:

El id del dataset restaurado.

Tipo del valor devuelto:
 

str

push_new_themes(portal_url, apikey)

Toma un catálogo y escribe los temas de la taxonomía que no están presentes.

Args:
catalog (DataJson): El catálogo de origen que contiene la
taxonomía.

portal_url (str): La URL del portal CKAN de destino. apikey (str): La apikey de un usuario con los permisos que le

permitan crear o actualizar los temas.
Returns:
str: Los ids de los temas creados.
push_theme_to_ckan(portal_url, apikey, identifier=None, label=None)

Escribe la metadata de un theme en el portal pasado por parámetro.

Parámetros:
  • catalog (DataJson) – El catálogo de origen que contiene el theme.
  • portal_url (str) – La URL del portal CKAN de destino.
  • apikey (str) – La apikey de un usuario con los permisos que le permitan crear o actualizar el dataset.
  • identifier (str) – El identificador para buscar el theme en la taxonomia.
  • label (str) – El label para buscar el theme en la taxonomia.
Devuelve:

El name del theme en el catálogo de destino.

Tipo del valor devuelto:
 

str

restore_catalog_to_ckan(origin_portal_url, destination_portal_url, apikey, download_strategy=None, generate_new_access_url=None)

Restaura los datasets de un catálogo original al portal pasado por parámetro. Si hay temas presentes en el DataJson que no están en el portal de CKAN, los genera.

Args:

catalog (DataJson): El catálogo de origen que se restaura. origin_portal_url (str): La URL del portal CKAN de origen. destination_portal_url (str): La URL del portal CKAN de

destino.
apikey (str): La apikey de un usuario con los permisos que le
permitan crear o actualizar el dataset.
download_strategy(callable): Una función
(catálogo, distribución)-> bool. Sobre las distribuciones que evalúa True, descarga el recurso en el downloadURL y lo sube al portal de destino. Por default no sube ninguna distribución.
generate_new_access_url(list): Se pasan los ids de las
distribuciones cuyo accessURL se regenerar en el portal de destino. Para el resto, el portal debe mantiene el valor pasado en el DataJson.
Returns:
dict: Diccionario con key organización y value la lista de ids
de datasets subidos a esa organización
restore_dataset_to_ckan(owner_org, dataset_origin_identifier, portal_url, apikey, download_strategy=None, generate_new_access_url=None)

Restaura la metadata de un dataset en el portal pasado por parámetro.

Parámetros:
  • catalog (DataJson) – El catálogo de origen que contiene el dataset.
  • owner_org (str) – La organización a la cual pertence el dataset.
  • dataset_origin_identifier (str) – El id del dataset que se va a restaurar.
  • portal_url (str) – La URL del portal CKAN de destino.
  • apikey (str) – La apikey de un usuario con los permisos que le permitan crear o actualizar el dataset.
  • download_strategy (callable) – Una función (catálogo, distribución)-> bool. Sobre las distribuciones que evalúa True, descarga el recurso en el downloadURL y lo sube al portal de destino. Por default no sube ninguna distribución.
  • generate_new_access_url (list) – Se pasan los ids de las distribuciones cuyo accessURL se regenerar en el portal de destino. Para el resto, el portal debe mantiene el valor pasado en el DataJson.
Devuelve:

El id del dataset restaurado.

Tipo del valor devuelto:
 

str

pydatajson.federation.remove_dataset_from_ckan(identifier, portal_url, apikey)[fuente]