Skip to main content

JSON Schema validator

Tools to generate Python types based on TypedDict from a JSON schema

Quick start

install:

python3 -m pip install jsonschema-validator-new

Convert a JSON schema to a Python file contains the types:

jsonschema-validator --help

Default

The default values are exported in the Python file, then you can do something like that:

value_with_default = my_object.get('field_name', my_schema.FIELD_DEFAULT)

Validation

This package also provide some validations features for YAML file based on jsonschema.

Additional features:

  • Obtain the line and columns number in the errors, if the file is loaded with ruamel.yaml.
  • Export the default provided in the JSON schema.
import ruamel.yaml
import pkgutil
import jsonschema_validator
import json

schema_data = pkgutil.get_data("<package>", "schema.json")
schema = json.loads(jsonschema_validator)
with open(filename) as data_file:
    yaml = ruamel.yaml.YAML()  # type: ignore
    data = yaml.load(data_file)
errors, _ = jsonschema_validator.validate(filename, data, schema)
if errors:
    print("\n".join(errors))
    sys.exit(1)

Pre-commit hooks

This project provides pre-commit hooks to automatically generate the files.

repos:
  - repo: https://github.com/camptocamp/jsonschema-validator
    rev: <version> # Use the ref you want to point at
    hools:
      - id: jsonschema-validator
        files: |
          (?x)^(
              ...
          )$

Contributing

Install the pre-commit hooks:

pip install pre-commit
pre-commit install --allow-missing-config

The prospector tests should pass.

The code should be typed.

The code should be tested with pytests.

Metadata

Release files for jsonschema-validator-new 0.3.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jsonschema-validator-new 0.3.2
File Size Uploaded
jsonschema_validator_new-0.3.2.tar.gz 6.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jsonschema-validator-new 0.3.2
File Interpreter ABI Platform
jsonschema_validator_new-0.3.2-py3-none-any.whl Python 3 none any Details

Total release size: 14.4 kB

Release files / jsonschema_validator_new-0.3.2.tar.gz

Download URL jsonschema_validator_new-0.3.2.tar.gz
Size 6.8 kB
Tags Source
SHA-256 checksum
How to use checksums
622a93406d7ebc14ab40f54f83688ccbf0ee37acf81b9543c82914c5077555ba
BLAKE2b-256 checksum
How to use checksums
c6d5ed89f08eaa4bf821559a6b2ad79ef32c1186b8a950507e7bd4b1508d5688
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.11.9

Release files / jsonschema_validator_new-0.3.2-py3-none-any.whl

Download URL jsonschema_validator_new-0.3.2-py3-none-any.whl
Size 7.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1b18a2b2a6115c00ec879d2dc6f99fc657f1086f62b0abef1484165ff19b1b8d
BLAKE2b-256 checksum
How to use checksums
d093d1810ebd3594c3cadbf6db26a16425e4b6247fa517f9a7f91bb869d9a6cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.11.9

Release history Release notifications | RSS feed

This release

0.3.2 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page