========= Changelog ========= v0.35.1 ------- * Make ``Resource.pointer`` also properly handle empty pointers (which refer to the root document). This fix likely only affects you if you were using that function directly, as ``Resource.lookup`` already handles empty fragments. v0.35.0 ------- * Ensure that ``Registry.contents()`` also raises ``NoSuchResource`` exceptions for nonexistent resources, not ``KeyError`` (which is an implementation detail). v0.34.0 ------- * Also look inside ``definitions`` keywords even on newer dialects. The specification recommends doing so regardless of the rename to ``$defs``. v0.33.0 ------- * Add a ``referencing.jsonschema.SchemaResource`` type alias to go along with the other JSON Schema specialized types. v0.32.1 ------- * Make ``Specification.detect`` raise a ``CannotDetermineSpecification`` error even if passed a mapping with a ``$schema`` key that doesn't match JSON Schema dialect semantics (e.g. a non-string). v0.32.0 ------- * Add ``Specification.detect``, which essentially operates like ``Resource.from_contents`` without constructing a resource (i.e. it simply returns the detected specification). v0.31.1 ------- * No user facing changes. v0.31.0 ------- * Add ``referencing.jsonschema.EMPTY_REGISTRY`` (which simply has a convenient type annotation, but otherwise is just ``Registry()``). v0.30.2 ------- * Minor docs improvement. v0.30.1 ------- * Ensure that an ``sdist`` contains the test suite JSON files. v0.30.0 ------- * Declare support for Python 3.12. v0.29.3 ------- * Documentation fix. v0.29.2 ------- * Improve the hashability of exceptions when they contain hashable data. v0.29.1 ------- * Minor docs improvement. v0.29.0 ------- * Add ``referencing.retrieval.to_cached_resource``, a simple caching decorator useful when writing a retrieval function turning JSON text into resources without repeatedly hitting the network, filesystem, etc. v0.28.6 ------- * No user-facing changes. v0.28.5 ------- * Fix a type annotation and fill in some missing test coverage. v0.28.4 ------- * Fix a type annotation. v0.28.3 ------- * No user-facing changes. v0.28.2 ------- * Added some additional packaging trove classifiers. v0.28.1 ------- * More minor documentation improvements v0.28.0 ------- * Minor documentation improvement v0.27.4 ------- * Minor simplification to the docs structure. v0.27.3 ------- * Also strip fragments when using ``__getitem__`` on URIs with empty fragments. v0.27.2 ------- * Another fix for looking up anchors from non-canonical URIs, now when they're inside a subresource which has a relative ``$id``. v0.27.1 ------- * Improve a small number of docstrings. v0.27.0 ------- * Support looking up anchors from non-canonical URIs. In other words, if you add a resource at the URI ``http://example.com``, then looking up the anchor ``http://example.com#foo`` now works even if the resource has some internal ``$id`` saying its canonical URI is ``http://somethingelse.example.com``. v0.26.4 ------- * Further API documentation. v0.26.3 ------- * Add some documentation on ``referencing`` public and non-public API. v0.26.2 ------- * Also suggest a proper JSON Pointer for users who accidentally use ``#/`` and intend to refer to the entire resource. v0.26.1 ------- * No changes. v0.26.0 ------- * Attempt to suggest a correction if someone uses '#foo/bar', which is neither a valid plain name anchor (as it contains a slash) nor a valid JSON pointer (as it doesn't start with a slash) v0.25.3 ------- * Normalize the ID of JSON Schema resources with empty fragments (by removing the fragment). Having a schema with an ID with empty fragment is discouraged, and newer versions of the spec may flat-out make it an error, but older meta-schemas indeed used IDs with empty fragments, so some extra normalization was needed and useful here even beyond what was previously done. TBD on whether this is exactly right if/when another referencing spec defines differing behavior. v0.25.2 ------- * Minor tweaks to the package keywords and description. v0.25.1 ------- * Minor internal tweaks to the docs configuration. v0.25.0 ------- * Bump the minimum version of ``rpds.py`` used, enabling registries to be used from multiple threads. v0.24.4 ------- * Fix handling of IDs with empty fragments (which are equivalent to URIs with no fragment) v0.24.3 ------- * Further intro documentation v0.24.2 ------- * Fix handling of ``additionalProperties`` with boolean value on Draft 4 (where the boolean isn't a schema, it's a special allowed value) v0.24.1 ------- * Add a bit of intro documentation v0.24.0 ------- * ``pyrsistent`` was replaced with ``rpds.py`` (Python bindings to the Rust rpds crate), which seems to be quite a bit faster. No user-facing changes really should be expected here.