Skip to main content

JSONSchema Spec with object-oriented paths

Project description

https://img.shields.io/pypi/v/jsonschema-path.svg https://travis-ci.org/p1c2u/jsonschema-path.svg?branch=master https://img.shields.io/codecov/c/github/p1c2u/jsonschema-path/master.svg?style=flat https://img.shields.io/pypi/pyversions/jsonschema-path.svg https://img.shields.io/pypi/format/jsonschema-path.svg https://img.shields.io/pypi/status/jsonschema-path.svg

About

Object-oriented JSONSchema

Key features

  • Traverse schema like paths

  • Access schema on demand with separate dereferencing accessor layer

Installation

pip install jsonschema-path

Alternatively you can download the code and install from the repository:

pip install -e git+https://github.com/p1c2u/jsonschema-path.git#egg=jsonschema_path

Usage

>>> from jsonschema_path import SchemaPath

>>> d = {
...     "properties": {
...        "info": {
...            "$ref": "#/$defs/Info",
...        },
...     },
...     "$defs": {
...         "Info": {
...             "properties": {
...                 "title": {
...                     "$ref": "http://example.com",
...                 },
...                 "version": {
...                     "type": "string",
...                     "default": "1.0",
...                 },
...             },
...         },
...     },
... }

>>> path = SchemaPath.from_dict(d)

>>> # Stat keys
>>> "properties" in path
True

>>> # Concatenate paths with /
>>> info_path = path / "properties" / "info"

>>> # Stat keys with implicit dereferencing
>>> "properties" in info_path
True

>>> # Concatenate paths with implicit dereferencing
>>> version_path = info_path / "properties" / "version"

>>> # Open content with implicit dereferencing
>>> with version_path.open() as contents:
...     print(contents)
{'type': 'string', 'default': '1.0'}

License

Copyright (c) 2017-2022, Artur Maciag, All rights reserved. Apache-2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jsonschema_path-0.3.2.tar.gz (11.6 kB view details)

Uploaded Source

Built Distribution

jsonschema_path-0.3.2-py3-none-any.whl (14.8 kB view details)

Uploaded Python 3

File details

Details for the file jsonschema_path-0.3.2.tar.gz.

File metadata

  • Download URL: jsonschema_path-0.3.2.tar.gz
  • Upload date:
  • Size: 11.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.0 CPython/3.12.0 Linux/6.2.0-1015-azure

File hashes

Hashes for jsonschema_path-0.3.2.tar.gz
Algorithm Hash digest
SHA256 4d0dababf341e36e9b91a5fb2a3e3fd300b0150e7fe88df4e55cc8253c5a3989
MD5 5522c340ee4d22b2d6b53f00565946e1
BLAKE2b-256 6d1747bf2da4582a6d35a1254bc058258835a452698f97dade2ce9ed3dabd512

See more details on using hashes here.

Provenance

File details

Details for the file jsonschema_path-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: jsonschema_path-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 14.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.0 CPython/3.12.0 Linux/6.2.0-1015-azure

File hashes

Hashes for jsonschema_path-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 271aedfefcd161a0f467bdf23e1d9183691a61eaabf4b761046a914e369336c7
MD5 32b4dc989d392e9faae3ea9c0aeeb879
BLAKE2b-256 7f5af405ced79c55191e460fc6d17a14845fddf09f601e39cfcab28cc1d3ff1c

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page