JSONSchema Spec with object-oriented paths
Project Links
Meta
Author: Artur Maciag
Requires Python: >=3.8.0,<4.0.0
Classifiers
Development Status
- 4 - Beta
Intended Audience
- Developers
License
- OSI Approved :: Apache Software License
Operating System
- OS Independent
Programming Language
- Python :: 3
- Python :: 3.8
- Python :: 3.9
- Python :: 3.10
- Python :: 3.11
- Python :: 3.12
- Python :: 3.13
Topic
- Software Development :: Libraries
- Software Development :: Libraries :: Python Modules
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
Jun 07, 2025
0.4.0b1
Jun 07, 2025
0.4.0a1
Jan 24, 2025
0.3.4
Jun 25, 2024
0.3.3
Nov 15, 2023
0.3.2
Oct 13, 2023
0.3.1
Oct 12, 2023
0.3.0
Wheel compatibility matrix
Files in release
Extras:
None
Dependencies:
(>=5.1)
PyYAML
(<0.5.0,>=0.4.1)
pathable
(<0.37.0)
referencing
(<3.0.0,>=2.31.0)
requests