Validación

Módulo “validator” de Pydatajson

Contiene los métodos para validar el perfil de metadatos de un catálogo.

pydatajson.validation.create_validator(schema_filename=None, schema_dir=None)[fuente]

Crea el validador necesario para inicializar un objeto DataJson.

Para poder resolver referencias inter-esquemas, un Validador requiere que se especifique un RefResolver (Resolvedor de Referencias) con el directorio base (absoluto) y el archivo desde el que se referencia el directorio.

Para poder validar formatos, un Validador requiere que se provea explícitamente un FormatChecker. Actualmente se usa el default de la librería, jsonschema.FormatChecker().

Parámetros:
  • schema_filename (str) – Nombre del archivo que contiene el esquema validador «maestro».
  • schema_dir (str) – Directorio (absoluto) donde se encuentra el esquema validador maestro y sus referencias, de tenerlas.
Devuelve:

Un validador de JSONSchema Draft #4. El validador

se crea con un RefResolver que resuelve referencias de schema_filename dentro de schema_dir.

Tipo del valor devuelto:
 

Draft4Validator

pydatajson.validation.format_matches_extension(distribution, attribute)[fuente]

Chequea si una extensión podría corresponder a un formato dado.

pydatajson.validation.is_valid_catalog(catalog, validator=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.
Devuelve:True si el data.json cumple con el schema, sino False.
Tipo del valor devuelto:
 bool
pydatajson.validation.iter_custom_errors(catalog)[fuente]

Realiza validaciones sin usar el jsonschema.

En esta función se agregan bloques de código en python que realizan validaciones complicadas o imposibles de especificar usando jsonschema.

pydatajson.validation.main(catalog)[fuente]

Permite validar un catálogo por línea de comandos.

Parámetros:catalog (str) – Path local o URL a un catálogo.
pydatajson.validation.validate_catalog(catalog, only_errors=False, fmt=u'dict', export_path=None, validator=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.
  • 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