Skip to content

Latest commit

 

History

History
53 lines (40 loc) · 2.31 KB

README.md

File metadata and controls

53 lines (40 loc) · 2.31 KB

python-json-patch

PyPI version Supported Python versions Build Status Coverage Status

Applying JSON Patches in Python

Library to apply JSON Patches according to RFC 6902

See source code for examples

Type hints

jsonpatch ships type stubs (in the jsonpatch-stubs directory, as jsonpatch.py is a single-file module), so type checkers such as mypy and pyright work with it without further setup. JSON documents are typed as Any.

When changing the public API of jsonpatch.py, update jsonpatch-stubs/__init__.pyi as well. These check that both agree, and that typical usage in typetests/usage.py type-checks:

pip install mypy .
python -m mypy.stubtest --mypy-config-file pyproject.toml jsonpatch
cd typetests && mypy --config-file ../pyproject.toml usage.py

Running external tests

To run external tests (such as those from https://github.com/json-patch/json-patch-tests) use ext_tests.py

./ext_tests.py ../json-patch-tests/tests.json

Running property-based tests

Property-based tests using Hypothesis are in property_tests.py. Properties that the implementation does not satisfy yet are marked as expected failures.

pip install hypothesis
python property_tests.py

Set HYPOTHESIS_PROFILE=thorough to run many more examples.