chore(deps): update dependency jsonschema to v4 #169
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
==3.2.0->==4.25.1Release Notes
python-jsonschema/jsonschema (jsonschema)
v4.25.1Compare Source
=======
Validatorprotocol's type annotations (#1396).v4.25.0Compare Source
=======
iriandiri-referenceformats to theformat-nongplextra via the MIT-licensedrfc3987-syntax.They were alread supported by the
formatextra. (#1388).v4.24.1Compare Source
=======
ValidationError.json_path(#139).v4.24.0Compare Source
=======
unevaluatedPropertiesin the presence ofadditionalProperties(#1351).v4.23.0Compare Source
=======
v4.22.0Compare Source
=======
best_match(and thereby error messages fromjsonschema.validate) in cases where there are multiple sibling errors from applyinganyOf/allOf-- i.e. when multiple elements of a JSON array have errors, we now do prefer showing errors from earlier elements rather than simply showing an error for the full array (#1250).==would.v4.21.1Compare Source
=======
containskeyword by removing some unnecessary validator (re-)creation.v4.21.0Compare Source
=======
enumin the presence of0or1to properly considerTrueandFalseunequal (#1208).{min,max}{Items,Length,Properties}when they're checking for emptiness rather than true length.v4.20.0Compare Source
=======
unevaluatedItems(resp.unevaluatedProperties) when behind a$dynamicRefas specified by the 2020 and 2019 specifications.jsonschema.exceptions.ErrorTree.__setitem__is now deprecated.More broadly, in general users of
jsonschemashould never be mutating objects owned by the library.v4.19.2Compare Source
=======
additionalItemskeyword into JSON Schema draft 2020-12, where it was replaced byitems.v4.19.1Compare Source
=======
hostnameformat.This is the behavior specified by the relevant RFC (1123).
IDN hostname behavior was already correct.
v4.19.0Compare Source
=======
Validatorprotocol directly from the package root is deprecated.Import it from
jsonschema.protocols.Validatorinstead.Such resources are assumed to be 2020-12 schemas.
This more closely matches the pre-referencing library behavior.
v4.18.6Compare Source
=======
jsonschemaspecific user agent when automatically retrieving remote references (which is deprecated).v4.18.5Compare Source
=======
v4.18.4Compare Source
=======
v4.18.3Compare Source
=======
applicable_validatorsin extended validators.Specifically, validators extending early drafts where siblings of
$refwere ignored will properly ignore siblings in the extended validator.v4.18.2Compare Source
=======
jsonschema.RefResolverand pointer resolution.v4.18.1Compare Source
=======
jsonschema.RefResolverbased resolution when used in combination with a custom validation dialect (viajsonschema.validators.create).v4.18.0Compare Source
=======
This release majorly rehauls the way in which JSON Schema reference resolution is configured.
It does so in a way that should be backwards compatible, preserving old behavior whilst emitting deprecation warnings.
jsonschema.RefResolveris now deprecated in favor of the newreferencing library <https://github.com/python-jsonschema/referencing/>_.referencingwill begin in beta, but already is more compliant than the existing$refsupport.This change is a culmination of a meaningful chunk of work to make
$refresolution more flexible and more correct.Backwards compatibility should be preserved for existing code which uses
RefResolver, though doing so is again now deprecated, and all such use cases should be doable using the new APIs.Please file issues on the
referencingtracker if there is functionality missing from it, or here on thejsonschemaissue tracker if you have issues with existing code not functioning the same, or with figuring out how to change it to usereferencing.In particular, this referencing change includes a change concerning automatic retrieval of remote references (retrieving
http://foo/barautomatically within a schema).This behavior has always been a potential security risk and counter to the recommendations of the JSON Schema specifications; it has survived this long essentially only for backwards compatibility reasons, and now explicitly produces warnings.
The
referencinglibrary itself will not automatically retrieve references if you interact directly with it, so the deprecated behavior is only triggered if you fully rely on the default$refresolution behavior and also include remote references in your schema, which will still be retrieved during the deprecation period (after which they will become an error).This should not be a "visible" change in the sense that
requires-pythonhas been updated, so users using 3.7 should still receivev4.17.3when installing the library.unevaluatedItemsnow properly does not consider items to be evaluated by anadditionalItemsschema ifitemsis missing from the schema, as the specification says in this case thatadditionalItemsmust be completely ignored.dateformat checker on Python 3.11 (when format assertion behavior is enabled), where it was too liberal (#1076).unevaluatedProperties(#1075).Deprecations
jsonschema.RefResolver-- see above for details on the replacementjsonschema.RefResolutionError-- see above for details on the replacementjsonschema.ErrorTree-- instead import it viajsonschema.exceptions.ErrorTreejsonschema.FormatError-- instead import it viajsonschema.exceptions.FormatErrorv4.17.3Compare Source
=======
rather than objects (#1018).
v4.17.1Compare Source
=======
unevaluatedPropertieswith a non-trivialschema value (i.e. something other than
false) has been improved (#996).v4.17.0Compare Source
=======
check_schemamethod onjsonschema.protocols.Validatorinstancesnow enables format validation by default when run. This can catch some
additional invalid schemas (e.g. containing invalid regular expressions)
where the issue is indeed uncovered by validating against the metaschema
with format validation enabled as an assertion.
jsonschemaCLI (along withjsonschema.clithe module) are nowdeprecated. Use
check-jsonschemainstead, which can be installed viapip install check-jsonschemaand foundhere <https://github.com/python-jsonschema/check-jsonschema>_.v4.16.0Compare Source
=======
$refto a resolution URIwhich is different from the resolved schema's declared
$id.jsonschema.draftN_format_checkeris deprecated. Instead, if youwant access to the format checker itself, it is exposed as
jsonschema.validators.DraftNValidator.FORMAT_CHECKERon anyjsonschema.protocols.Validator.v4.15.0Compare Source
=======
$refon earlier drafts (specifically draft 7 and 6) has been "fixed" tofollow the specified behavior when present alongside a sibling
$id.Specifically the ID is now properly ignored, and references are resolved
against whatever resolution scope was previously relevant.
v4.14.0Compare Source
=======
FormatChecker.cls_checksis deprecated. UseFormatChecker.checksonan instance of
FormatCheckerinstead.unevaluatedItemshas been fixed for draft 2019. It's nonethelessdiscouraged to use draft 2019 for any schemas, new or old.
protocols.Validatorv4.13.0Compare Source
=======
dialect than its schemas. In other words, they may use draft2020-12 to define
which schemas are valid, but the schemas themselves use draft7 (or a custom
dialect, etc.) to define which instances are valid. Doing this is likely
not something most users, even metaschema authors, may need, but occasionally
will be useful for advanced use cases.
v4.12.1Compare Source
=======
v4.12.0Compare Source
=======
intended to be public API, though it seems some downstream libraries
do so. A future version will make this an error, as it is brittle and
better served by composing validator objects instead. Feel free to reach
out if there are any cases where changing existing code seems difficult
and I can try to provide guidance.
v4.11.0Compare Source
=======
v4.10.3Compare Source
=======
jsonschema.validators.validator_fornow properly uses the explicitlyprovided default validator even if the
$schemaURI is not found.v4.10.2Compare Source
=======
v4.10.1Compare Source
=======
iter_errorswhich call it) for caseswhere the validator class has been subclassed. Doing so wasn't intended to be
public API, but given it didn't warn or raise an error it's of course
understandable. The next release however will make it warn (and a future one
will make it error). If you need help migrating usage of inheriting from a
validator class feel free to open a discussion and I'll try to give some
guidance (#982).
v4.10.0Compare Source
=======
$refacross different versionsof the specification than the referrer's
v4.9.1Compare Source
======
sample code.
v4.9.0Compare Source
======
$refresolution when the base URI is a URN or other scheme(#544).
pkgutil.resolve_nameis now used to retrieve validatorsprovided on the command line. This function is only available on
3.9+, so 3.7 and 3.8 (which are still supported) now rely on the
pkgutil_resolve_name <https://pypi.org/project/pkgutil_resolve_name/>_backport package. Note however that the CLI itself is due
to be deprecated shortly in favor of
check-jsonschema <https://github.com/python-jsonschema/check-jsonschema>_.v4.8.0Compare Source
======
best_matchno longer traverses intoanyOfandoneOfwhen all ofthe errors within them seem equally applicable. This should lead to clearer
error messages in some cases where no branches were matched.
v4.7.2Compare Source
======
best_matchhandle cases where thetypevalidator is anarray.
v4.7.1Compare Source
======
v4.7.0Compare Source
======
best_matchto prefer errors from branches of the schema whichmatch the instance's type (#728)
v4.6.2Compare Source
======
v4.6.1Compare Source
======
recursiveRefon draft 2019. Itneeds completing, but for now can lead to recursion errors (e.g. #847).
v4.6.0Compare Source
======
unevaluatedPropertiesandunevaluatedItemsfor types they shouldignore (#949)
jsonschemanow useshatch <https://hatch.pypa.io/>_ for its buildprocess. This should be completely transparent to end-users (and only matters
to contributors).
v4.5.1Compare Source
======
$dynamicRefwhich caused a performance regressionin v4.5.0
v4.5.0Compare Source
======
corresponding format checker (#905)
GitHub organization <https://github.com/python-jsonschema/>_.No functional behavior changes are expected from the change.
v4.4.0Compare Source
======
mypysupport (#892)v4.3.3Compare Source
======
v4.3.2Compare Source
======
v4.3.1Compare Source
======
v4.3.0Compare Source
======
certain input types (#893)
v4.2.1Compare Source
======
importlib.resourcesfrom below (#877)v4.2.0Compare Source
======
importlib.resourcesto load schemas (#873)uniqueItems(#866)
v4.1.2Compare Source
======
dependentSchemasto properly consider non-object instances to bevalid (#850)
v4.1.1Compare Source
======
prefixItemsnot indicating which item was invalid within the instancepath (#862)
v4.1.0Compare Source
======
v4.0.1Compare Source
======
v4.0.0Compare Source
======
Thanks to Thomas Schmidt and Harald Nezbeda.
Falseand0are now properly considered non-equal evenrecursively within a container (#686). As part of this change,
uniqueItemsvalidation may be slower in some cases. Please feelfree to report any significant performance regressions, though in
some cases they may be difficult to address given the specification
requirement.
--outputoption (with
plain(default) orprettyarguments) to control theoutput format. Future work may add additional machine-parsable output
formats.
DEFAULT_TYPESand the legacy mechanism forspecifying types to validators have been removed, as per the deprecation
policy. Validators should use the
TypeCheckerobject to customizethe set of Python types corresponding to JSON Schema types.
json_pathattribute, describing theirlocation in JSON path format
python_requiresproperly set.
multipleOfcould overflow when given sufficiently large numbers. Now,when an overflow occurs,
jsonschemawill fall back to using fractiondivision (#746).
jsonschema.__version__,jsonschema.validators.validators,jsonschema.validators.meta_schemasandjsonschema.RefResolver.in_scopehave been deprecated, as haspassing a second-argument schema to
Validator.iter_errorsandValidator.is_valid.Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.