DataJson

Módulo principal de pydatajson

Contiene la clase DataJson que reúne los métodos públicos para trabajar con archivos data.json.

class pydatajson.core.DataJson(catalog=None, schema_filename=None, schema_dir=None, default_values=None, catalog_format=None, validator_class=<class 'pydatajson.validation.Validator'>, verify_ssl=False, requests_timeout=30)[fuente]

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

catalog_report(catalog, harvest=u'none', report=None, catalog_id=None, catalog_homepage=None, catalog_org=None)[fuente]

Genera un reporte sobre los datasets de un único catálogo.

Parámetros:
  • catalog (dict, str o unicode) – Representación externa (path/URL) o interna (dict) de un catálogo.
  • harvest (str) – Criterio de cosecha (“all”, “none”, “valid”, “report” o “good”).
Devuelve:

Lista de diccionarios, con un elemento por cada dataset

presente en catalog.

Tipo del valor devuelto:
 

list

datasets

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.
distributions

Devuelve lista de distribuciones 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 distribuciones cuyos atributos coinciden con los pasados en este diccionario. Ejemplo:

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

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

  • filter_out (dict) –

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

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

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

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

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.
generate_catalog_readme(catalog, export_path=None)

Este método está para mantener retrocompatibilidad con versiones anteriores. Se ignora el argumento _data_json.

generate_dataset_documentation(dataset_identifier, export_path=None, catalog=None)[fuente]

Genera texto en markdown a partir de los metadatos de una dataset.

Parámetros:
  • dataset_identifier (str) – Identificador único de un dataset.
  • export_path (str) – Path donde exportar el texto generado. Si se especifica, el método no devolverá nada.
  • catalog (dict, str o unicode) – Representación externa (path/URL) o interna (dict) de un catálogo. Si no se especifica se usa el catálogo cargado en self (el propio objeto DataJson).
Devuelve:

Texto que describe una dataset.

Tipo del valor devuelto:
 

str

generate_datasets_report(catalogs, harvest=u'valid', report=None, export_path=None, catalog_ids=None, catalog_homepages=None, catalog_orgs=None)[fuente]

Genera un reporte sobre las condiciones de la metadata de los datasets contenidos en uno o varios catálogos.

Parámetros:
  • catalogs (str, dict o list) – Uno (str o dict) o varios (list de strs y/o dicts) catálogos.
  • harvest (str) – Criterio a utilizar para determinar el valor del campo «harvest» en el reporte generado (“all”, “none”, “valid”, “report” o “good”).
  • report (str) – Path a un reporte/config especificando qué datasets marcar con harvest=1 (sólo si harvest==”report”).
  • export_path (str) – Path donde exportar el reporte generado (en formato XLSX o CSV). Si se especifica, el método no devolverá nada.
  • catalog_id (str) – Nombre identificador del catálogo para federación
  • catalog_homepage (str) –

    URL del portal de datos donde está implementado el catálogo. Sólo se pasa si el portal es un CKAN o respeta la estructura:

    https://datos.{organismo}.gob.ar/dataset/{dataset_identifier}
Devuelve:

Contiene tantos dicts como datasets estén presentes en

catalogs, con la data del reporte generado.

Tipo del valor devuelto:
 

list

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

generate_distribution_ids()

Genera identificadores para las distribuciones que no los tienen.

Los identificadores de distribuciones se generan concatenando el id del dataset al que pertenecen con el índice posicional de la distribución en el dataset: distribution_identifier = «{dataset_identifier}_{index}».

generate_harvestable_catalogs(catalogs, harvest=u'all', report=None, export_path=None)[fuente]

Filtra los catálogos provistos según el criterio determinado en harvest.

Parámetros:
  • catalogs (str, dict o list) – Uno (str o dict) o varios (list de strs y/o dicts) catálogos.
  • harvest (str) – Criterio para determinar qué datasets conservar de cada catálogo (“all”, “none”, “valid” o “report”).
  • report (list o str) – Tabla de reporte generada por generate_datasets_report() como lista de diccionarios o archivo en formato XLSX o CSV. Sólo se usa cuando harvest==”report”.
  • export_path (str) – Path a un archivo JSON o directorio donde exportar los catálogos filtrados. Si termina en «.json» se exportará la lista de catálogos a un único archivo. Si es un directorio, se guardará en él un JSON por catálogo. Si se especifica export_path, el método no devolverá nada.
Devuelve:

Lista de catálogos.

Tipo del valor devuelto:
 

list of dicts

generate_harvester_config(catalogs=None, harvest=u'valid', report=None, export_path=None)[fuente]

Genera un archivo de configuración del harvester a partir de un reporte, o de un conjunto de catálogos y un criterio de cosecha (harvest).

Parámetros:
  • catalogs (str, dict o list) – Uno (str o dict) o varios (list de strs y/o dicts) catálogos.
  • harvest (str) – Criterio para determinar qué datasets incluir en el archivo de configuración generado (“all”, “none”, “valid”, “report” o “good”).
  • report (list o str) – Tabla de reporte generada por generate_datasets_report() como lista de diccionarios o archivo en formato XLSX o CSV. Sólo se usa cuando harvest==”report”, en cuyo caso catalogs se ignora.
  • export_path (str) – Path donde exportar el reporte generado (en formato XLSX o CSV). Si se especifica, el método no devolverá nada.
Devuelve:

Un diccionario con variables de configuración

por cada dataset a cosechar.

Tipo del valor devuelto:
 

list of dicts

get_catalog_metadata(exclude_meta_fields=None)

Devuelve sólo la metadata de nivel catálogo.

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_distribution(identifier=None, title=None, dataset_identifier=None)

Devuelve una Distribution del catálogo.

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

Devuelve lista de distribuciones 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 distribuciones cuyos atributos coinciden con los pasados en este diccionario. Ejemplo:

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

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

  • filter_out (dict) –

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

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

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

  • meta_field (str) – Nombre de un metadato de Distribution. En lugar de devolver los objetos completos Distribution, devuelve una lista de valores para ese metadato presentes en el catálogo.
  • exclude_meta_fields (list) – Metadatos de Distribution que se quieren excluir de los objetos Distribution devueltos.
  • only_time_series (bool) – Si es verdadero, sólo devuelve distribuciones que sean distribuciones 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, distribution_identifier=None)

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.
get_themes()

Devuelve la lista de temas del catálogo (taxonomía temática).

get_time_series(**kwargs)

Devuelve lista de series de tiempo del catálogo o 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 las series cuyos atributos coinciden con los pasados en este diccionario. Ejemplo:

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

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

  • filter_out (dict) –

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

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

    Sólo se devolverán las series 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.
harvest_catalog_to_ckan(portal_url, apikey, catalog_id, dataset_list=None, owner_org=None, download_strategy=None, origin_tz='America/Buenos_Aires', dst_tz='America/Buenos_Aires')

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.
  • origin_tz (str) – Timezone de origen, un string (EJ: Africa/Bamako) el cual identifica el timezone del emisor del DataJson.
  • dst_tz (str) – Timezone de destino, un string (EJ: Antarctica/Palmer) el cual identifica el timezone del receptor del DataJson, comunmente el timezone del servidor.
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, origin_tz='America/Buenos_Aires', dst_tz='America/Buenos_Aires')

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.
  • origin_tz (str) – Timezone de origen, un string (EJ: Africa/Bamako) el cual identifica el timezone del emisor del DataJson.
  • dst_tz (str) – Timezone de destino, un string (EJ: Antarctica/Palmer) el cual identifica el timezone del receptor del DataJson, comunmente el timezone del servidor.
Devuelve:

El id del dataset restaurado.

Tipo del valor devuelto:
 

str

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
make_catalog_backup(catalog_id=None, local_catalogs_dir=u'', include_metadata=True, include_data=True, include_datasets=None, include_distribution_formats=[u'CSV', u'XLS'], include_metadata_xlsx=True, use_short_path=False)

Realiza una copia local de los datos y metadatos de un catálogo.

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.
  • catalog_id (str) – Si se especifica, se usa este identificador para el backup. Si no se especifica, se usa catalog[«identifier»].
  • local_catalogs_dir (str) – Directorio local en el cual se va a crear la carpeta «catalog/…» con todos los catálogos.
  • include_metadata (bool) – Si es verdadero, se generan los archivos data.json y catalog.xlsx.
  • include_data (bool) – Si es verdadero, se descargan todas las distribuciones de todos los catálogos.
  • include_datasets (list) – Si se especifica, se descargan únicamente los datasets indicados. Si no, se descargan todos.
  • include_distribution_formats (list) – Si se especifica, se descargan únicamente las distribuciones de los formatos indicados. Si no, se descargan todas.
  • use_short_path (bool) – No implementado. Si es verdadero, se utiliza una jerarquía de directorios simplificada. Caso contrario, se replica la existente en infra.
Devuelve:

None

make_catalogs_backup(catalogs=None, local_catalogs_dir=u'.', copy_metadata=True, copy_data=True)[fuente]

Realiza copia de los datos y metadatos de uno o más catálogos.

Parámetros:
  • catalogs (list or dict) – Lista de catálogos (elementos que pueden ser interpretados por DataJson como catálogos) o diccionario donde las keys se interpretan como los catalog_identifier: { «modernizacion»: «http://infra.datos.gob.ar/catalog/modernizacion/data.json» } Cuando es una lista, los ids se toman de catalog_identifer, y se ignoran los catálogos que no tengan catalog_identifier. Cuando se pasa un diccionario, los keys reemplazan a los catalog_identifier (estos no se leeen).
  • local_catalogs_dir (str) – Directorio local en el cual se va a crear la carpeta «catalog/…» con todos los catálogos.
  • copy_metadata (bool) – Si es verdadero, se generan los archivos data.json y catalog.xlsx.
  • copy_data (bool) – Si es verdadero, se descargan todas las distribuciones de todos los catálogos.
Devuelve:

None

push_dataset_to_ckan(owner_org, dataset_origin_identifier, portal_url, apikey, catalog_id=None, demote_superThemes=True, demote_themes=True, download_strategy=None, generate_new_access_url=None, origin_tz='America/Buenos_Aires', dst_tz='America/Buenos_Aires')

Escribe 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 federar.
  • 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 or None) – El prefijo con el que va a preceder el id del dataset en catálogo destino.
  • demote_superThemes (bool) – Si está en true, los ids de los super themes del dataset, se propagan como grupo.
  • demote_themes (bool) – Si está en true, los labels de los themes del dataset, pasan a ser tags. Sino, se pasan como grupo.
  • 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.
  • origin_tz (str) – Timezone de origen, un string (EJ: Africa/Bamako) el cual identifica el timezone del emisor del DataJson.
  • dst_tz (str) – Timezone de destino, un string (EJ: Antarctica/Palmer) el cual identifica el timezone del receptor del DataJson, comunmente el timezone del servidor.
Devuelve:

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

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, origin_tz='America/Buenos_Aires', dst_tz='America/Buenos_Aires')

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.
origin_tz(str): Timezone de origen, un string
(EJ: Africa/Bamako) el cual identifica el timezone del emisor del DataJson.
dst_tz(str): Timezone de destino, un string
(EJ: Antarctica/Palmer) el cual identifica el timezone del receptor del DataJson, comunmente el timezone del servidor.
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, origin_tz='America/Buenos_Aires', dst_tz='America/Buenos_Aires')

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.
  • origin_tz (str) – Timezone de origen, un string (EJ: Africa/Bamako) el cual identifica el timezone del emisor del DataJson.
  • dst_tz (str) – Timezone de destino, un string (EJ: Antarctica/Palmer) el cual identifica el timezone del receptor del DataJson, comunmente el timezone del servidor.
Devuelve:

El id del dataset restaurado.

Tipo del valor devuelto:
 

str

restore_organization_to_ckan(owner_org, portal_url, apikey, dataset_list=None, download_strategy=None, generate_new_access_url=None, origin_tz='America/Buenos_Aires', dst_tz='America/Buenos_Aires')

Restaura los datasets de la organización de un catálogo 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. 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.
dataset_list(list(str)): Los ids de los datasets a restaurar. Si no
se pasa una lista, todos los datasests se restauran.

owner_org (str): La organización a la cual pertencen los datasets. 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.
origin_tz(str): Timezone de origen, un string (EJ: Africa/Bamako)
el cual identifica el timezone del emisor del DataJson.
dst_tz(str): Timezone de destino, un string
(EJ: Antarctica/Palmer) el cual identifica el timezone del receptor del DataJson, comunmente el timezone del servidor.
Returns:
list(str): La lista de ids de datasets subidos.
restore_organizations_to_ckan(organizations, portal_url, apikey, download_strategy=None, generate_new_access_url=None, origin_tz='America/Buenos_Aires', dst_tz='America/Buenos_Aires')

Restaura los datasets indicados para c/organización de un catálogo al portal pasado. Si hay temas presentes en el DataJson que no están en el portal de CKAN, los genera. Las organizaciones ya deben estar creadas.

Parámetros:
  • catalog (DataJson) – El catálogo de origen que se restaura.
  • organizations (dict) – Datasets a restaurar por c/organización donde {«organizacion_id»: [dataset_id1, dataset_id2, …]}
  • 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.
  • origin_tz (str) – Timezone de origen, un string (EJ: Africa/Bamako) el cual identifica el timezone del emisor del DataJson.
  • dst_tz (str) – Timezone de destino, un string (EJ: Antarctica/Palmer) el cual identifica el timezone del receptor del DataJson, comunmente el timezone del servidor.
Devuelve:

La lista de ids de datasets subidos.

Tipo del valor devuelto:
 

list(str)

themes

Devuelve la lista de temas del catálogo (taxonomía temática).

time_series

Devuelve lista de series de tiempo del catálogo o 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 las series cuyos atributos coinciden con los pasados en este diccionario. Ejemplo:

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

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

  • filter_out (dict) –

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

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

    Sólo se devolverán las series 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.
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.
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

pydatajson.core.main()[fuente]

Permite ejecutar el módulo por línea de comandos.

Valida un path o url a un archivo data.json devolviendo True/False si es válido y luego el resultado completo.

Example

python pydatajson.py http://181.209.63.71/data.json python pydatajson.py ~/github/pydatajson/tests/samples/full_data.json