pydatajson package¶
Submodules¶
pydatajson.pydatajson module¶
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.pydatajson.
DataJson
(schema_filename=u'catalog.json', schema_dir=u'/home/docs/checkouts/readthedocs.org/user_builds/pydatajson/checkouts/0.1.4/pydatajson/schemas')[source]¶ Bases:
object
Métodos para trabajar con archivos data.json.
-
ABSOLUTE_SCHEMA_DIR
= u'/home/docs/checkouts/readthedocs.org/user_builds/pydatajson/checkouts/0.1.4/pydatajson/schemas'¶
-
DEFAULT_CATALOG_SCHEMA_FILENAME
= u'catalog.json'¶
-
generate_datasets_report
(catalogs, report_path)[source]¶ Genera un reporte sobre las condiciones de la metadata de los datasets contenidos en uno o varios catálogos.
El método no devuelve nada, pero genera un “reporte de datasets” en el report_path indicado. Dicho reporte es un CSV que consta de una línea por cada dataset presente en los catálogos provistos, con varios campos útiles (report_fieldnames) para decidir si harvestear o no cierto dataset.
- Args:
- catalogs (str, dict o list): Uno (str o dict) o varios (list de
- strs y/o dicts) elementos con la metadata de un catálogo. Tienen que poder ser interpretados por self._json_to_dict()
- report_path (str): Path donde se espera que se guarde el reporte
- sobre datasets generado.
- Returns:
- None
-
generate_harvestable_catalogs
(catalogs, report_path, write_to_file, files_dir)[source]¶ Genera archivo de configuración del harvester según el reporte.
- Args:
- report_path (str): config_path (str): write_to_file (bool): files_dir (str):
-
static
generate_harvester_config
(report_path, config_path)[source]¶ Genera un archivo de configuración del harvester según el reporte provisto.
Se espera que report_path apunte a un archivo producido por generate_datasets_report(catalogs, report_path), al cual se le modificaron algunos 0 (ceros) por 1 (unos) en la columna “harvest”.
Este método no devuelve nada. Como efecto sencudario, genera un archivo de configuración en config_path manteniendo de report_path únicamente los campos necesarios para el harvester, de aquellos datasets para los cuales el valor de “harvest” es igual a 1.
- Args:
report_path (str): Path a un reporte de datasets procesado. config_path (str): Path donde se generará el archivo de
configuración del harvester.- Returns:
- None
-
is_valid_catalog
(datajson_path)[source]¶ 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.
- Args:
- datajson_path (str): Path al archivo data.json a ser validado.
- Returns:
- bool: True si el data.json cumple con el schema, sino False.
-
validate_catalog
(datajson_path)[source]¶ 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.
- Args:
- datajson_path (str): Path al archivo data.json a ser validado.
- Returns:
dict: 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”.
-
-
pydatajson.pydatajson.
main
()[source]¶ 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