Metadata-Version: 2.1 Name: jsonschema Version: 3.0.1 Summary: An implementation of JSON Schema validation for Python Home-page: https://github.com/Julian/jsonschema Author: Julian Berman Author-email: Julian@GrayVines.com License: UNKNOWN Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: MIT License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 2 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: PyPy Requires-Dist: attrs (>=17.4.0) Requires-Dist: pyrsistent (>=0.14.0) Requires-Dist: setuptools Requires-Dist: six (>=1.11.0) Requires-Dist: functools32 ; python_version < "3" Provides-Extra: format Requires-Dist: idna ; extra == 'format' Requires-Dist: jsonpointer (>1.13) ; extra == 'format' Requires-Dist: rfc3987 ; extra == 'format' Requires-Dist: strict-rfc3339 ; extra == 'format' Requires-Dist: webcolors ; extra == 'format' ========== jsonschema ========== |PyPI| |Pythons| |Travis| |AppVeyor| .. |PyPI| image:: https://img.shields.io/pypi/v/jsonschema.svg :alt: PyPI version :target: https://pypi.org/project/jsonschema/ .. |Pythons| image:: https://img.shields.io/pypi/pyversions/jsonschema.svg :alt: Supported Python versions :target: https://pypi.org/project/jsonschema/ .. |Travis| image:: https://travis-ci.org/Julian/jsonschema.svg?branch=master :alt: Travis build status :target: https://travis-ci.org/Julian/jsonschema .. |AppVeyor| image:: https://ci.appveyor.com/api/projects/status/adtt0aiaihy6muyn?svg=true :alt: AppVeyor build status :target: https://ci.appveyor.com/project/Julian/jsonschema ``jsonschema`` is an implementation of `JSON Schema `_ for Python (supporting 2.7+ including Python 3). .. code-block:: python >>> from jsonschema import validate >>> # A sample schema, like what we'd get from json.load() >>> schema = { ... "type" : "object", ... "properties" : { ... "price" : {"type" : "number"}, ... "name" : {"type" : "string"}, ... }, ... } >>> # If no exception is raised by validate(), the instance is valid. >>> validate(instance={"name" : "Eggs", "price" : 34.99}, schema=schema) >>> validate( ... instance={"name" : "Eggs", "price" : "Invalid"}, schema=schema, ... ) # doctest: +IGNORE_EXCEPTION_DETAIL Traceback (most recent call last): ... ValidationError: 'Invalid' is not of type 'number' It can also be used from console: .. code-block:: bash $ jsonschema -i sample.json sample.schema Features -------- * Full support for `Draft 7 `_, `Draft 6 `_, `Draft 4 `_ and `Draft 3 `_ * `Lazy validation `_ that can iteratively report *all* validation errors. * `Programmatic querying `_ of which properties or items failed validation. Installation ------------ ``jsonschema`` is available on `PyPI `_. You can install using `pip `_: .. code-block:: bash $ pip install jsonschema Release Notes ------------- Version 3.0 brings support for Draft 7 (and 6). The interface for redefining types has also been majorly overhauled to support easier redefinition of the types a Validator will accept or allow. jsonschema is also now tested under Windows via AppVeyor. Thanks to all who contributed pull requests along the way. Running the Test Suite ---------------------- If you have ``tox`` installed (perhaps via ``pip install tox`` or your package manager), running ``tox`` in the directory of your source checkout will run ``jsonschema``'s test suite on all of the versions of Python ``jsonschema`` supports. If you don't have all of the versions that ``jsonschema`` is tested under, you'll likely want to run using ``tox``'s ``--skip-missing-interpreters`` option. Of course you're also free to just run the tests on a single version with your favorite test runner. The tests live in the ``jsonschema.tests`` package. Benchmarks ---------- ``jsonschema``'s benchmarks make use of `perf `_. Running them can be done via ``tox -e perf``, or by invoking the ``perf`` commands externally (after ensuring that both it and ``jsonschema`` itself are installed):: $ python -m perf jsonschema/benchmarks/test_suite.py --hist --output results.json To compare to a previous run, use:: $ python -m perf compare_to --table reference.json results.json See the ``perf`` documentation for more details. Community --------- There's a `mailing list `_ for this implementation on Google Groups. Please join, and feel free to send questions there. Contributing ------------ I'm Julian Berman. ``jsonschema`` is on `GitHub `_. Get in touch, via GitHub or otherwise, if you've got something to contribute, it'd be most welcome! You can also generally find me on Freenode (nick: ``tos9``) in various channels, including ``#python``. If you feel overwhelmingly grateful, you can woo me with beer money via Google Pay with the email in my GitHub profile.