Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update jsonschema to 4.17.0 #250

Closed
wants to merge 1 commit into from

Conversation

pyup-bot
Copy link
Collaborator

@pyup-bot pyup-bot commented Nov 2, 2022

This PR updates jsonschema from 3.2.0 to 4.17.0.

Changelog

4.17.0

=======

* The ``check_schema`` method on ``jsonschema.protocols.Validator`` instances
now *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.
* The ``jsonschema`` CLI (along with ``jsonschema.cli`` the module) are now
deprecated. Use ``check-jsonschema`` instead, which can be installed via
``pip install check-jsonschema`` and found
`here <https://github.com/python-jsonschema/check-jsonschema>`_.

4.16.1

=======

* Make ``ErrorTree`` have a more grammatically correct ``repr``.

4.16.0

=======

* Improve the base URI behavior when resolving a ``$ref`` to a resolution URI
which is different from the resolved schema's declared ``$id``.
* Accessing ``jsonschema.draftN_format_checker`` is deprecated. Instead, if you
want access to the format checker itself, it is exposed as
``jsonschema.validators.DraftNValidator.FORMAT_CHECKER`` on any
``jsonschema.protocols.Validator``.

4.15.0

=======

* A specific API Reference page is now present in the documentation.
* ``$ref`` on earlier drafts (specifically draft 7 and 6) has been "fixed" to
follow 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.

4.14.0

=======

* ``FormatChecker.cls_checks`` is deprecated. Use ``FormatChecker.checks`` on
an instance of ``FormatChecker`` instead.
* ``unevaluatedItems`` has been fixed for draft 2019. It's nonetheless
discouraged to use draft 2019 for any schemas, new or old.
* Fix a number of minor annotation issues in ``protocols.Validator``

4.13.0

=======

* Add support for creating validator classes whose metaschema uses a different
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.

4.12.1

=======

* Fix some stray comments in the README.

4.12.0

=======

* Warn at runtime when subclassing validator classes. Doing so was not
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.

4.11.0

=======

* Make the rendered README in PyPI simpler and fancier. Thanks Hynek (983)!

4.10.3

=======

* ``jsonschema.validators.validator_for`` now properly uses the explicitly
provided default validator even if the ``$schema`` URI is not found.

4.10.2

=======

* Fix a second place where subclasses may have added attrs attributes (982).

4.10.1

=======

* Fix Validator.evolve (and APIs like ``iter_errors`` which call it) for cases
where 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).

4.10.0

=======

* Add support for referencing schemas with ``$ref`` across different versions
of the specification than the referrer's

4.9.1

======

* Update some documentation examples to use newer validator releases in their
sample code.

4.9.0

======

* Fix relative ``$ref`` resolution when the base URI is a URN or other scheme
(544).
* ``pkgutil.resolve_name`` is now used to retrieve validators
provided 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>`_.

4.8.0

======

* ``best_match`` no longer traverses into ``anyOf`` and ``oneOf`` when all of
the errors within them seem equally applicable. This should lead to clearer
error messages in some cases where no branches were matched.

4.7.2

======

* Also have ``best_match`` handle cases where the ``type`` validator is an
array.

4.7.1

======

* Minor tweak of the PyPI hyperlink names

4.7.0

======

* Enhance ``best_match`` to prefer errors from branches of the schema which
match the instance's type (728)

4.6.2

======

* Fix a number of minor typos in docstrings, mostly private ones (969)

4.6.1

======

* Gut the (incomplete) implementation of ``recursiveRef`` on draft 2019. It
needs completing, but for now can lead to recursion errors (e.g. 847).

4.6.0

======

* Fix ``unevaluatedProperties`` and ``unevaluatedItems`` for types they should
ignore (949)
* ``jsonschema`` now uses `hatch <https://hatch.pypa.io/>`_ for its build
process. This should be completely transparent to end-users (and only matters
to contributors).

4.5.1

======

* Revert changes to ``$dynamicRef`` which caused a performance regression
in v4.5.0

4.5.0

======

* Validator classes for each version now maintain references to the correct
corresponding format checker (905)
* Development has moved to a `GitHub organization
<https://github.com/python-jsonschema/>`_.
No functional behavior changes are expected from the change.

4.4.0

======

* Add ``mypy`` support (892)
* Add support for Python 3.11

4.3.3

======

* Properly report deprecation warnings at the right stack level (899)

4.3.2

======

* Additional performance improvements for resolving refs (896)

4.3.1

======

* Resolving refs has had performance improvements (893)

4.3.0

======

* Fix undesired fallback to brute force container uniqueness check on
certain input types (893)
* Implement a PEP544 Protocol for validator classes (890)

4.2.1

======

* Pin ``importlib.resources`` from below (877)

4.2.0

======

* Use ``importlib.resources`` to load schemas (873)
* Ensure all elements of arrays are verified for uniqueness by ``uniqueItems``
(866)

4.1.2

======

* Fix ``dependentSchemas`` to properly consider non-object instances to be
valid (850)

4.1.1

======

* Fix ``prefixItems`` not indicating which item was invalid within the instance
path (862)

4.1.0

======

* Add Python 3.10 to the list of supported Python versions

4.0.1

======

* Fix the declaration of minimum supported Python version (846)

4.0.0

======

* Partial support for Draft 2020-12 (as well as 2019-09).
Thanks to Thomas Schmidt and Harald Nezbeda.
* ``False`` and ``0`` are now properly considered non-equal even
recursively within a container (686). As part of this change,
``uniqueItems`` validation may be *slower* in some cases. Please feel
free to report any significant performance regressions, though in
some cases they may be difficult to address given the specification
requirement.
* The CLI has been improved, and in particular now supports a ``--output``
option (with ``plain`` (default) or ``pretty`` arguments) to control the
output format. Future work may add additional machine-parsable output
formats.
* Code surrounding ``DEFAULT_TYPES`` and the legacy mechanism for
specifying types to validators have been removed, as per the deprecation
policy. Validators should use the ``TypeChecker`` object to customize
the set of Python types corresponding to JSON Schema types.
* Validation errors now have a ``json_path`` attribute, describing their
location in JSON path format
* Support for the IP address and domain name formats has been improved
* Support for Python 2 and 3.6 has been dropped, with ``python_requires``
properly set.
* ``multipleOf`` could overflow when given sufficiently large numbers. Now,
when an overflow occurs, ``jsonschema`` will fall back to using fraction
division (746).
* ``jsonschema.__version__``, ``jsonschema.validators.validators``,
``jsonschema.validators.meta_schemas`` and
``jsonschema.RefResolver.in_scope`` have been deprecated, as has
passing a second-argument schema to ``Validator.iter_errors`` and
``Validator.is_valid``.
Links

@pyup-bot
Copy link
Collaborator Author

Closing this in favor of #253

@pyup-bot pyup-bot closed this Nov 29, 2022
@abulte abulte deleted the pyup-update-jsonschema-3.2.0-to-4.17.0 branch November 29, 2022 23:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant