Federación

Extensión de pydatajson para la federación de metadatos de datasets a través de la API de CKAN.

pydatajson.federation.get_organization_from_ckan(portal_url, org_id, verify_ssl=False, requests_timeout=30)[fuente]

Toma la url de un portal y un id, y devuelve la organización a buscar.

Parámetros:
  • portal_url (str) – La URL del portal CKAN de origen.
  • org_id (str) – El id de la organización a buscar.
  • verify_ssl (bool) – Verificar certificados SSL
  • requests_timeout (int) – cantidad en segundos para timeoutear un request al server.
Devuelve:

Diccionario con la información de la organización.

Tipo del valor devuelto:
 

dict

pydatajson.federation.get_organizations_from_ckan(portal_url, verify_ssl=False, requests_timeout=30)[fuente]

Toma la url de un portal y devuelve su árbol de organizaciones.

Parámetros:
  • portal_url (str) – La URL del portal CKAN de origen.
  • verify_ssl (bool) – Verificar certificados SSL
  • requests_timeout (int) – cantidad en segundos para timeoutear un request al server.
Devuelve:

Lista de diccionarios anidados con la información de las organizaciones.

Tipo del valor devuelto:
 

list

pydatajson.federation.harvest_catalog_to_ckan(catalog, portal_url, apikey, catalog_id, dataset_list=None, owner_org=None, download_strategy=None)[fuente]

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

pydatajson.federation.harvest_dataset_to_ckan(catalog, owner_org, dataset_origin_identifier, portal_url, apikey, catalog_id, download_strategy=None)[fuente]

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

pydatajson.federation.push_dataset_to_ckan(catalog, 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)[fuente]

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) – 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.
Devuelve:

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

Tipo del valor devuelto:
 

str

pydatajson.federation.push_new_themes(catalog, portal_url, apikey)[fuente]

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.
pydatajson.federation.push_organization_to_ckan(portal_url, apikey, organization, parent=None, verify_ssl=False, requests_timeout=30)[fuente]

Toma una organización y la crea en el portal de destino. :param portal_url: La URL del portal CKAN de destino. :type portal_url: str :param apikey: La apikey de un usuario con los permisos que le

permitan crear la organización.
Parámetros:
  • organization (dict) – Datos de la organización a crear.
  • parent (str) – Campo name de la organización padre.
  • verify_ssl (bool) – Verificar certificados SSL
  • requests_timeout (int) – cantidad en segundos para timeoutear un request al server.
Devuelve:

Devuelve el diccionario de la organizacion enviada,

junto con el status detallando si la creación fue exitosa o no.

Tipo del valor devuelto:
 

(dict)

pydatajson.federation.push_organization_tree_to_ckan(portal_url, apikey, org_tree, parent=None)[fuente]

Toma un árbol de organizaciones y lo replica en el portal de destino.

Args:

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

permitan crear las organizaciones.
org_tree(list): lista de diccionarios con la data de las
organizaciones a crear.

parent(str): campo name de la organizacion padre.

Returns:
(list): Devuelve el arbol de organizaciones recorridas,
junto con el status detallando si la creación fue exitosa o no.
pydatajson.federation.push_theme_to_ckan(catalog, portal_url, apikey, identifier=None, label=None)[fuente]

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

pydatajson.federation.remove_datasets_from_ckan(portal_url, apikey, filter_in=None, filter_out=None, only_time_series=False, organization=None, verify_ssl=False, requests_timeout=30)[fuente]

Borra un dataset en el portal pasado por parámetro.

Parámetros:
  • portal_url (str) – La URL del portal CKAN de destino.
  • apikey (str) – La apikey de un usuario con los permisos que le permitan borrar el dataset.
  • filter_in (dict) – Diccionario de filtrado positivo, similar al de search.get_datasets.
  • filter_out (dict) – Diccionario de filtrado negativo, similar al de search.get_datasets.
  • only_time_series (bool) – Filtrar solo los datasets que tengan recursos con series de tiempo.
  • organization (str) – Filtrar solo los datasets que pertenezcan a cierta organizacion.
  • verify_ssl (bool) – Verificar certificados SSL
  • requests_timeout (int) – cantidad en segundos para timeoutear un
  • al server. (request) –
Devuelve:

None

pydatajson.federation.remove_organization_from_ckan(portal_url, apikey, organization_id, verify_ssl=False, requests_timeout=30)[fuente]

Toma un id de organización y la purga del portal de destino. :param portal_url: La URL del portal CKAN de destino. :type portal_url: str :param apikey: La apikey de un usuario con los permisos que le

permitan borrar la organización.
Parámetros:
  • organization_id (str) – Id o name de la organización a borrar.
  • verify_ssl (bool) – Verificar certificados SSL
  • requests_timeout (int) – cantidad en segundos para timeoutear un request al server.
Devuelve:

None.

pydatajson.federation.remove_organizations_from_ckan(portal_url, apikey, organization_list)[fuente]

Toma una lista de ids de organización y las purga del portal de destino. :param portal_url: La URL del portal CKAN de destino. :type portal_url: str :param apikey: La apikey de un usuario con los permisos que le

permitan borrar la organización.
Parámetros:organization_list (list) – Id o name de las organizaciones a borrar.
Devuelve:None.
pydatajson.federation.resources_update(portal_url, apikey, distributions, resource_files, generate_new_access_url=None, catalog_id=None, verify_ssl=False, requests_timeout=30)[fuente]

Sube archivos locales a sus distribuciones correspondientes en el portal pasado por parámetro.

Args:

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.
distributions(list): Lista de distribuciones posibles para
actualizar.
resource_files(dict): Diccionario con entradas
id_de_distribucion:path_al_recurso a subir
generate_new_access_url(list): Lista de ids de distribuciones a
las cuales se actualizará el accessURL con los valores generados por el portal de destino
catalog_id(str): prependea el id al id del recurso para
encontrarlo antes de subirlo

verify_ssl(bool): Verificar certificados SSL requests_timeout(int): cantidad en segundos para timeoutear un request al server.

Returns:
list: los ids de los recursos modificados
pydatajson.federation.restore_catalog_to_ckan(catalog, origin_portal_url, destination_portal_url, apikey, download_strategy=None, generate_new_access_url=None)[fuente]

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
pydatajson.federation.restore_dataset_to_ckan(catalog, owner_org, dataset_origin_identifier, portal_url, apikey, download_strategy=None, generate_new_access_url=None)[fuente]

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.restore_organization_to_ckan(catalog, owner_org, portal_url, apikey, dataset_list=None, download_strategy=None, generate_new_access_url=None)[fuente]

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.
Returns:
list(str): La lista de ids de datasets subidos.