datasets_equal()
permite especificar los campos a tener en cuenta para la comparación, como un parámetro.
- Incorpora métodos para federar un dataset de un catálogo a un CKAN o un Andino:
push_dataset_to_ckan()
. - Actualiza validaciones y esquema de metadatos al Perfil Nacional de Metadatos versión 1.1.
- Agrega soporte para Python 3.6
- Agrego método
get_theme()
para devolver un tema de la taxonomía específica del catálogo según suid
olabel
.
- Agrego métodos de búsqueda de series de tiempo en un catálogo (
get_time_series()
) y un parámetroonly_time_series=True or False
para filtrar datasets y distribuciones en sus métodos de búsqueda (get_datasets(only_time_series=True)
devuelve sólo aquellos datasets que tengan alguna serie de tiempo).
- Agrego posibilidad de pasar un logger desde afuera a la función de lectura de catálogos en Excel.
- Agrega filtro por series de tiempo en
get_datasets()
yget_distributions()
. Tienen un parámetroonly_time_series
que devuelve sólo aquellos que tengan o sean distribuciones con series de tiempo.
- Agrega función para escribir un catálogo en Excel.
- Agrega funciones para remover datasets o distribuciones de un catálogo.
- Incorpora parámetro para excluir campos de metadatos en la devolución de la búsqueda de datasets y distribuciones.
- Agregar referencia interna a los ids de las entidades padre de otras (distribuciones y fields.)
- Flexibiliza lectura de extras en ckan to datajson.
- Flexibiliza longitud mínima de campos para recomendar su federación o no.
- Agrega método para devolver los metadatos a nivel de catálogo.
- Resuelve la escritura de objetos python como texto en excel.
- Agrega stop words a
helpers.title_to_name()
- Agrega método para buscar la localización de un
field
en un catálogo.
- Agrega método para convertir el título de un dataset o distribución en un nombre normalizado para la creación de URLs.
- Amplía reporte de federación en markdown.
- Agrega métodos para navegar un catálogo desde el objeto DataJson.
- Agrega validacion de que el campo
superTheme
sólo contenga ids en mayúsculas o minúsculas de alguno de los 13 temas de la taxonomía temática de datos.gob.ar. - Agrega validación limitando a 60 caracteres los nombres de los campos
field_title
. - Mejoras al reporte de asistencia a la federación.
- Agrega validación de que no haya ids repetidos en la lista de temas de
themeTaxonomy
. - Agrega traducción de ckan del campo extra
Cobertura temporal
atemporal
.
- Mejoras en los reportes de errores y análisis de datasets para federación
- Métodos
DataJson.validate_catalog()
yDataJson.generate_datasets_report()
tienen nuevas opciones para mejorar los reportes, especialmente en excel.
- Bug fixes
- Agrega estilo y formato al reporte de datasets
- Agrega nuevos campos al reporte de datasets
- Agrega un campo identificador del catálogo en el archivo de configuración de federación
- Tolera el caso de intentar escribir un reporte de datasets sobre un catálogo que no tiene datasets. Loggea un warning en lugar de levantar una excepción.
- Elimina la verificación de SSL en las requests de ckan_reader.
- Elimina la verificación de SSL en las requests.
- Mejora la validación del campo
temporal
- Agrega formas de reporte de errores para el método
DataJson.validate_catalog()
:- Devuelve sólo errores con
only_errors=True
- Devuelve una lista de errores lista para ser convertida en tabla con
fmt="list"
- Devuelve sólo errores con
- Agrega un método para convertir un intervalo repetido (Ej.: R/P1Y) en su representación en prosa ("Anualmente").
- Agrego método que estima los datasets federados que fueron borrados de un catálogo específico. Se consideran datasets federados y borrados de un catálogo específico aquellos cuyo publisher.name existe dentro de algún otro dataset todavía presente en el catálogo específico.
- Bug fix: convierte a unicode antes de escribir un objeto a JSON.
- Modifica la definición de dataset actualizado usando el campo "modified" del perfil de metadatos. Si este campo no está presente en la metadata de un dataset, se lo considera desactualizado.
- Modifica la definición de dataset usada para comparar limitándola a la comparación por "title" y "publisher_name".
- Agrega método para verificar si un dataset individual está actualizado
- Se modifica el template de CATALOG README
- Se agrega el indicador "datasets_no_federados" a generate_catalogs_indicators
- Se agrega en
core
el métodoDataJson.generate_catalogs_indicators
, que genera indicadores de monitoreo de catálogos, recopilando información sobre, entre otras cosas, su validez, actualidad y formato de sus contenidos.
- Correción ortográfica del listado de frecuencias de actualización admisibles (
pydatajson/schemas/accrualPeriodicity.json
).
- Hotfixes para que
pydatajson
sea deployable en nuevos entornos donde elsetup.py
estaba fallando.
-
Se agrega una nueva función a
readers
,read_ckan_catalog
, que traduce los metadatos que disponibiliza la Action API v3 de CKAN al estándardata.json
. Esta función no está integrada aread_catalog
. -
Se modifican todos los esquemas de validación, de modo que los campos opcionales de cualquier tipo y nivel acepten strings vacías.
-
Se reestructura la librería en 4 módulos:
core
,readers
,writers
yhelpers
. Toda la funcionalidad se mantiene intacta, pero algunas funciones muy utilizadas cambian de módulo. En particular,pydatajson.pydatajson.read_catalog
es ahorapydatajson.readers.read_catalog
, ypydatajson.xlsx_to_json.write_json_catalog
es ahorapydatajson.writers.write_json_catalog
(opydatajson.writers.write_json
). -
Se agrega el parámetro
frequency
apydatajson.DataJson.generate_harvester_config
, que controla la frecuencia de cosecha que se pretende de los datasets a incluir en el archivo de configuración. Por omisión, se usa'R/P1D'
(diariamente) para todos los datasets. -
Se agrega la carpeta
samples/
, con dos rutinas de transformación y reporte sobre catálogos de metadatos en formato XLSX.
- Se agrega el módulo
xlsx_to_json
, con dos métodos para lectura de archivos locales o remotos, sean JSON genéricos (xlsx_to_json.read_json()
) o metadatos de catálogos en formato XLSX (read_local_xlsx_catalog()
). - Se agrega el método
pydatajson.read_catalog()
que interpreta todos las representaciones externas o internas de catálogos conocidas, y devuelve un diccionario con sus metadatos.
- Se incorpora el método
DataJson.generate_harvestable_catalogs()
, que filtra los datasets no deseados de un conjunto de catálogos. - Se agrega el parámetro
harvest
a los métodosDataJson.generate_harvestable_catalogs()
,DataJson.generate_datasets_report()
yDataJson.generate_harvester_config()
, para controlar el criterio de elección de los datasets a cosechar. - Se agrega el parámetro
export_path
a los métodosDataJson.generate_harvestable_catalogs()
,DataJson.generate_datasets_report()
yDataJson.generate_harvester_config()
, para controlar la exportación de sus resultados.
- Se incorpora el método
DataJson.generate_datasets_report()
, que reporta sobre los datasets y la calidad de calidad de metadatos de un conjunto de catálogos. - Se incorpora el método
DataJson.generate_harvester_config()
, que crea archivos de configuración para el Harvester a partir de los reportes degenerate_datasets_report()
.
- Al resultado de
DataJson.validate_catalog()
se le incorpora una lista ("errors"
) con información de los errores encontrados durante la validación en cada nivel de jerarquía ("catalog" y cada elemento de "dataset")
- Se incorpora validación de tipo y formato de campo
- Los métodos
DataJson.is_valid_catalog()
yDataJson.validate_catalog()
ahora aceptan undict
además de unpath/to/data.json
o una url a un data.json.
Primera versión para uso productivo del paquete.
- La instalación via
pip install
debería reconocer correctamente la ubicación de los validadores por default. - El manejo de data.json's ubicados remotamente se hace en función del resultado de
urlparse.urlparse
- El formato de respuesta de
validate_catalog
se adecúa a la última especificación (versamples/validate_catalog_returns.json
.
- Intentar que la instalación del paquete sepa donde están instalados los schemas por default
- Primera versión propuesta para v0.1.0