-
-
Notifications
You must be signed in to change notification settings - Fork 581
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
Support for v2020-12 and v2019 drafts #782
Comments
This comment has been minimized.
This comment has been minimized.
+1 really looking forward to the unevaluatedProperties features in 2020-12 |
* anexia-it/draft2020-12: #782: Remove ecmascript validation, extend dynamicRef skip description #782: Add compatibility to draft7 and older #782: Code clenaup, fixes validation messages #782: Extend format tests #782: Resolve meta schema vocabularies from local cache #782: Refactor items behavior with prefixItems #782: Update validation message for unevaluatedProperties and unevaluatedItems #782: Fixes failing styles #782: Adapt validator test for draft2020-12, fixes code styles #782: Fixes relative json pointer format validation for leading zero on digit #782: Load dependencies from legacy validators #782: Implements dynamicRef validations #782: Add validation for uuid format #782: Implements defs validations #782: Extend resolver for anchor #782: Fixes ref resolver for folders #782: Fixes ref validation priority #782: Extend implementation of ref #782: Implements unevaluatedProperties validations #782: Implements unevaluatedItems validations #782: Extend contains with minContains and maxContaints, add contains legacy validator #782: Adapt items to work with prefixItems #782: Add checks for prefixItems, basic check for unevaluatedItems #782: Extend format check for draft2020-12, add duration format check #782: Add dependentRequired and dependentSchemas validation #782: Split format and regular test cases on draft2020-12 #782: Enable draft2020-12 test suite
* anexia-it/draft2020-12: #782: Remove ecmascript validation, extend dynamicRef skip description #782: Add compatibility to draft7 and older #782: Code clenaup, fixes validation messages #782: Extend format tests #782: Resolve meta schema vocabularies from local cache #782: Refactor items behavior with prefixItems #782: Update validation message for unevaluatedProperties and unevaluatedItems #782: Fixes failing styles #782: Adapt validator test for draft2020-12, fixes code styles #782: Fixes relative json pointer format validation for leading zero on digit #782: Load dependencies from legacy validators #782: Implements dynamicRef validations #782: Add validation for uuid format #782: Implements defs validations #782: Extend resolver for anchor #782: Fixes ref resolver for folders #782: Fixes ref validation priority #782: Extend implementation of ref #782: Implements unevaluatedProperties validations #782: Implements unevaluatedItems validations #782: Extend contains with minContains and maxContaints, add contains legacy validator #782: Adapt items to work with prefixItems #782: Add checks for prefixItems, basic check for unevaluatedItems #782: Extend format check for draft2020-12, add duration format check #782: Add dependentRequired and dependentSchemas validation #782: Split format and regular test cases on draft2020-12 #782: Enable draft2020-12 test suite
Partial support for these drafts has just landed in v4.0.0. Feedback more than welcome. I say partial since unfortunately support for Going to close this out for now, but please do share feedback if you have any! |
…n 4.2.1 AleksaC (1): Add pre-commit hook config Bastien Vallet (1): [compat] Drop support of PY2 Damien Tardy-Panis (1): add json_path error attribute DrGFreeman (2): Revert "Temporarily skip the failing tests from #866." Ensure all items of array are checked for uniqueness Francisco Couzo (1): Delete unused dependency GermanoGuerrini (1): Avoid setup_requires offline installation issues Harald Nezbeda (34): Fixes validation for uri-template format python-jsonschema/jsonschema#686: Fixes unique and equal checks Add test for list_equal and dict_equal Add test case with custom sequance type Extend sequance and mapping check Use python 3.9 for coverage Remove pathlib2 compatibility code. python-jsonschema/jsonschema#782: Enable draft2020-12 test suite python-jsonschema/jsonschema#782: Split format and regular test cases on draft2020-12 python-jsonschema/jsonschema#782: Add dependentRequired and dependentSchemas validation python-jsonschema/jsonschema#782: Extend format check for draft2020-12, add duration format check python-jsonschema/jsonschema#782: Add checks for prefixItems, basic check for unevaluatedItems python-jsonschema/jsonschema#782: Adapt items to work with prefixItems python-jsonschema/jsonschema#782: Extend contains with minContains and maxContaints, add contains legacy validator python-jsonschema/jsonschema#782: Implements unevaluatedItems validations python-jsonschema/jsonschema#782: Implements unevaluatedProperties validations python-jsonschema/jsonschema#782: Extend implementation of ref python-jsonschema/jsonschema#782: Fixes ref validation priority python-jsonschema/jsonschema#782: Fixes ref resolver for folders python-jsonschema/jsonschema#782: Extend resolver for anchor python-jsonschema/jsonschema#782: Implements defs validations python-jsonschema/jsonschema#782: Add validation for uuid format python-jsonschema/jsonschema#782: Implements dynamicRef validations python-jsonschema/jsonschema#782: Load dependencies from legacy validators python-jsonschema/jsonschema#782: Fixes relative json pointer format validation for leading zero on digit python-jsonschema/jsonschema#782: Adapt validator test for draft2020-12, fixes code styles python-jsonschema/jsonschema#782: Fixes failing styles python-jsonschema/jsonschema#782: Update validation message for unevaluatedProperties and unevaluatedItems python-jsonschema/jsonschema#782: Refactor items behavior with prefixItems python-jsonschema/jsonschema#782: Resolve meta schema vocabularies from local cache python-jsonschema/jsonschema#782: Extend format tests python-jsonschema/jsonschema#782: Code clenaup, fixes validation messages python-jsonschema/jsonschema#782: Add compatibility to draft7 and older python-jsonschema/jsonschema#782: Remove ecmascript validation, extend dynamicRef skip description Hillel Arnold (7): improve date parsing unskip tests skip tests on python 3.6 fix formatting error better handling for Python 3.6 renames message and function use correct format check globally Hugo van Kemenade (2): No need to build universal wheels for Python 3-only Ignore build files Jacob D. Moorman (2): Remove outdated instructions for benching. Remove old instructions for comparing benchmarks. Jacob Moorman (1): Add test test-requirements to perf deps. Jesús García Crespo (2): Load schemas via importlib.resources Add version constraint to importlib_resources Jonathan Hashkes (1): fix prefixItems index reporting in ValidationError Julian Berman (357): Add setuptools-scm to the pyproject.toml. Squashed 'json/' changes from 689d2f28..0f344a69 Stop depending on setuptools. Include the pyproject.toml in sdists. Add a packaging GHA. And a coverage GHA. Hacky running of tox in CI. tox-venv for windows python -m pip install everywhere. Run on pull request. Development stuff isn't supported on Windows More python -m. Run daily. Use runner, which always exists even if we are not matrixed. Do this only on Windows, since 3.5's venv is super old. {envbindir}/python -> {envpython} Skip the rest of the obscurely failing Windows builds. Squashed 'json/' changes from 0f344a69..6c00de64 More -ms. Remove the appveyor badge. Just rely on pep517.check. Set a user agent for the Sphinx role. Bump doc requirements (via pip-compile) Tighten up the wording here. Might as well just inline it. Move to twine check. Fix the warnings emitted by twine check. Either twine check or pep517 doesn't work on Windows. Give up and make the coverage token public. Test directly with pip show. Sigh, bytes everywhere... Sigh, Windows somewhere... setup.py is dead. The Windows 3.6 is so old its pip/venv don't support PEP517. 2 is more than 1. Squashed 'json/' changes from 6c00de64..a863dbab Newer webcolors has a new API apparently. Sigh... but also drops Py2 compat. Squashed 'json/' changes from a863dbab..d52866b3 Maybe fix RTD. Check the changelog for valid reST. A 406 HTTP error, so hipster. Sigh, no shell. Squashed 'json/' changes from d52866b3..b70c5626 Py2 new-style class. Share the parsing error message. Minor style. assertTrue -> assertIn. attrs'ed. Bit clearer display of the error message in the actual source via dedent. Specify the type of error in pretty error messages. julian@Air ● Py3. Add/update some info on why format works the way it does. Add the upstream link here too. Squashed 'json/' changes from b70c5626..33791274 HTTP -> HTTPS for specification URIs. Test parsing errors for the plain output writer. Test parsing errors for stdin + the pretty output writer. Move where errors are written outside of cli writers. Only used in one place now. Follow how other places tend to indicate the path for stdin. Call all the args 'error' consistently. Clarify what parts of the CLI output are public. Slightly less exception for flow control. Move compat code to compat. Temporarily inline these, there will be a better way to combine them. Sigh, remove -q from spelling which is required to see the misspelled words. Sigh, remove -q from spelling which is required to see the misspelled words. Spelling. type=str is the default. Move the asserts out of the with block. Minor safety guard. Equivalent but consistent. Don't even bother keeping the whole list of valid/invalid. Minor style. Squash. Show full tracebacks for parsing errors in pretty output. And now bundle up stdout/stderr into an object. The validation already can handle not having instances. Error rather than fail for miswritten tests. Document that non-zero error codes are also not public. Make fake_open work the same across both test cases. DRY up cli.run calls. OK TestParser doesn't actually open files at all... Clarify the test case name. Transparent fixture names. DRY up asserting about exit codes. And dry up calling .getvalue. repr paths in plain CLI outputted errors. Note that --error-format is for schema and validation errors specifically. argparse does funny wrapping by default, so no need for continuations. Reorder the CLI tests. Squashed 'json/' changes from 33791274..8e2a05a9 Only the draft2019-09 draft actually uses an HTTPS URI. Remove the rest of the incorrectly added HTTPS for older metaschemas. Put the more important test case first. Separate out the tests that spawn subprocesses. Introduce TestCLI.assertOutput. Fill in the remaining missing tests. Mostly centralize the error handling for loading files. Less nest. Keep going when encountering invalid instance files. Bit shorter. Make sure no args shows help info. Fix Py3. Drop support for python3.5. Everything can cd now. Reorder the draft3 metaschema to match the upstream version. Reorder the draft4 metaschema to match the upstream version. Squashed 'json/' changes from 8e2a05a9..d17e1ba2 Squashed 'json/' changes from d17e1ba2..2576db4d Squashed 'json/' changes from 2576db4df..71f55b36b zeroTerminatedFloats moved to required. 2 is more than 1. Squashed 'json/' changes from 71f55b36b..361620ecf non-bmp-regex moved to optional Squashed 'json/' changes from 361620ecf..9d0e0eb31 Fix the broken reST. Just require full coverage from codecov. Maybe GHA doesn't actually run apt-get update before runs... Just remove the codecov badge entirely. Flail again on running update. Bump the docs requirements. Fix the benchmark runner for the whole suite. FilePath -> pathlib Sigh. Windows... Use utf-8 everywhere. Squashed 'json/' changes from 9d0e0eb..817b724 Add support for the comment field in upstream tests. Cope with the format test structure change upstream. Handle broken punycode in IDN hostnames. Skip some additional tests. Squashed 'json/' changes from 817b724b7..57001d26b Squashed 'json/' changes from 57001d26b..fc05651cc Don't include `if` in the schema_path of errors. Squashed 'json/' changes from fc05651cc..40601f628 Shorten the lead-in sentence. The mailing list isn't really monitored, so remove it from the README. Squashed 'json/' changes from 40601f6..ea41553 Skip the complex email validation tests. Format passes by default, so only skip invalid tests when missing the checker. Same for content type validation, skip only the invalid ones. Remove the 3 :: Only classifier. Drop building the package on Py2 in CI. No more need for pathlib2 without Py2. Ref Py3 in the docs. Kill jsonschema.compat as well. Remove the reference to jsonschema.compat in the compatibility policy. Enable automatic section heading labels in the docs. Pick a format checker that has no external dep now that fqdn exists. Run CI against all setuptools extras separately. Unbreak non-format-setuptools-extra-installed jsonschema. isorted. Kill Py2 in the sphinx role. Trailing whitespace pre-commit setup. Bump the version in the notebooks.io requirements. Squashed 'json/' changes from ea415537..86f52b87 Skip more tests for #686. Validate IP addresses using the ipaddress module. Squashed 'json/' changes from 86f52b87..fce9e9b3 Temporarily skip the tests that will be unskipped by #722. Simplify the schemas in the tests for CLI validator detection. Move the latest validator CLI test to where it must go now. Remove the rest of the notebooks.ai related resources. And two last ones... Update pre-commit hooks. Sigh, this appears to be a regex, not exact match, so it was ignoring everything. Minor doc formatting. Remove docformatter, it's too unwieldy. Run pre-commit in CI. Remove the Py2 coding declaration. Bump doc requirements (via pip-compile) Use the longer form of the CLI option for clarity. Remove outdated release notes. Be able to run coverage on all toxenvs. Whoops, send coverage to codecov again. Squashed 'json/' changes from fce9e9b3..21555a85 Squashed 'json/' changes from 21555a85..96742ba3 Sigh, ugly, but assrtRegexpMatches is deprecated. Temporarily skip the failing tests for #743. pep517.build is dead or dying. Don't fail when codecov.io flakes. Minor formatting and wording. And now tidy up the tests. Test on Py39. Tidy up the URLs in the docutils role. Vanilla flake8. Bump the meaningless role version number. Cope with IPv6Address now allowing zone IDs in 3.9. Work around danielrichman/strict-rfc3339#5. Squashed 'json/' changes from 96742ba3..3627cc11 Actually exercise Validator.is_type on an unknown type. Make utils.indent exit stage left. Sigh more spelling. Doc requirements bump. Run more toxenvs on 3.9. Go back to skipping the windows envs that are annoying to fix. Update pre-commit. Update pre-commit. Unskip most of the skipped windows builds. Test via PyPy3.7 No, don't use venv. Try the Twisted prerelease, which hopefully obviates installing IOCP. Reskip the PyPy-on-Windows tests. Minor style fixes. Move the fuzz workflow to fuzz.yml. Add language, remove dry-run: false which is the default. Module docstring Go back to fuzz_* naming. Ignore the fuzz module from coverage for now as well. Extra newline. Minor style fixes. Bump lxml (and the rest of the doc requirements). Squashed 'json/' changes from 3627cc1..15ec577 Allowing leading zeros is allowed by the JSON Schema spec... Skip tests that actually rely on location-independent IDs. Install package for perf toxenvs too. Fix IDs of remotes in the test suite on Windows. Squashed 'json/' changes from 15ec577f..09fd353f Unsupport leap seconds. Style. Remove default types (in favor of the TypeChecker API). Evade the pip safety warning. v4.0.0a1 Add #746 to the changelog. Squashed 'json/' changes from 09fd353f..0aefbb3d Skip the tests which tickle known bugs. Revert an accidentally removed test. Squashed 'json/' changes from 0aefbb3d..1326f36e And skip a few more new ref tests. Squashed 'json/' changes from 1326f36e..17fa9589 Rename the test skip (to match the renamed tests). Install with --in-tree-build in the tox.ini. Don't allow warnings during test runs. Tests, not coverage toxenv. Ignore another warning from importlib_metadata. And one from setuptools_scm from shallow git clones... Another try at filtering the setuptools_scm warning. Twisted 21.2.0 was released. Hopefully the last warning, which seems to only fire on PyPy. Proper syntax. Fix the DeprecationWarning from importing abcs from collections. Test only through _util.equal. Simplify the implementations of the equal checks. Minor rewording of the docstring. Add #686 to the changelog. Squashed 'json/' changes from 17fa9589..6327a3bc Squashed 'json/' changes from 6327a3bc..fd0aa9f8 Tidy the docstring slightly. Fix missing trailing commas. Squashed 'json/' changes from fd0aa9f8..f9acc454 Squashed 'json/' changes from f9acc454..bb2a20d3 Fix the UUID format. Remove some u prefixes leftover from Py2. Fix the names of internal test cases for newer drafts. Freenode is dead. Spelling Bump doc requirements. Don't check schemas in test suite runs. Fix Draft2020-12Validator's name to be Draft202012Validator. And add it to the docs. Remove the $defs validator. May as well add support for Draft 2019 as well. Update the draft info in the README. Unnecessary `len`s. Add the drafts to the changelog. Add a linter to ensure single quotes aren't added. And a linter to forbid slash-line-continuation. Remove more unneeded u prefixes. Squashed 'json/' changes from bb2a20d3e..878b0ad5f Run the unicode and float-overflow optional tests on all drafts. Tidy up validation error messages, particularly using f-strings. Remove types_msg which implements really old draft-3 behavior. Reimplement contains. More strict style, now via bugbear. Squashed 'json/' changes from 878b0ad5f..eb619047f yield from everywhere, saving precious lines Minor style. Let format_index handle the container too. Deprecate jsonschema.__version__. Drop support for Python 3.6. Build RTD with 3.8 And deprecate importing ErrorTree from jsonschema.validators. Sigh, flake8. Fix the schema path used by prefixItems errors. Remove a test that is only relevant for Py2+3 combined codebases. Slightly nicer error message for not. And simplify items as well. Fix items' instance path as well. Unskip more passing tests. Be furoious. Minor restructure of which html sphinx builder we build in the tox.ini. Remove resolve_local. Squashed 'json/' changes from eb619047f..ab0b1ae71 Skip more new leap second tests. Minor local variable tweaking. Add a pre-commit.ci badge. Actually add the badge. Squashed 'json/' changes from ab0b1ae71..20c1bb1d9 Depend on rfc3339-validator for format, even for non-nonGPL. Remove 3.6-related code. Add an explicit ASCII check. Always depend on the newer webcolors API. Use contextmanager.suppress to kill a bit of boilerplate. Kill an old testing helper now that it mostly lives in contextlib. Add a test for the 2019-09 $id lookup. Ensure message_for allows only one error. Properly set the failing validator for min/maxContains. Minor tweak to the OSSFuzz workflow. FileNotFoundError and FileExistsError in more places. Minor tweak of local variables. Remove 3.6-related code. Remove dead code. Remove more dead code. Deprecate jsonschema.RefResolver.in_scope. Bit of coverage tweaking. Remove RefResolver.scopes_stack_copy. Temporarily simplify _finditem, and unskip some tests. Suppress the KeyError in unknown type exception tracebacks. Set __qualname__ for validator classes. Test iter_errors independent of a draft validator. Remove 2-arg-using form of is_valid from tests. Add Validator.evolve, deprecating passing _schema to methods. Add test cases for error details hidden behind a $ref Style Deprecate jsonschema.validators.validators and .meta_schemas. Make it clear that support for draft2020-12 is partial unfortunately. Remove the added argument to jsonschema.validators.create. julian@Airm ● Style Add the Zenodo badge. Add the missing format dependency documentation. Re-allow the fuzz to fail. Squashed 'json/' changes from 20c1bb1d9..54440eab4 Skip the tests which tickle known bugs. Combine the CI and precommit workflows. Add support for Python 3.10. Ignore distutils warnings coming from pip which needs a release. Skip tests on 3.10 + Windows which fail for annoying compilation reasons. Try autocreating release notes. Sigh, back to full clones. Add 4.1.0 to the changelog. Slightly reword the tagline. Squashed 'json/' changes from 54440eab4..ba3a90534 Skip more more new leap second tests. Add v4.1.1 to the CHANGELOG. Remove the Patreon link. Squashed 'json/' changes from ba3a90534..329efe59c Add v4.1.2 to the CHANGELOG. in-tree-build is now the default in pip Set PYTHONWARNINGS only for the test run itself. Remove uses of SynchronousTestCase. Add some other links which will show up on PyPI. Squashed 'json/' changes from 329efe59c..9263b5250 Temporarily skip the failing tests from #866. Add in some missing internal draft2019-09 tests. v4.2.0 -> CHANGELOG v4.2.1 -> CHANGELOG Karthikeyan Singaravelan (1): Move python_requires to options for correct METADATA generation. Martin Zugnoni (1): Remove demo links from README file Milly (1): Fix test to windows path matching Rob Herring (1): validators: Fix dependentSchemas when instance is not an object Romain Taprest (14): [CLI] Remove heading-style comments [CLI] Improve --help message about --instance [CLI] Change write_valid_* into write_validation_*, less confusing. [tests] replace assertTrue by assertIn for nicer error [CLI] Remove mandatory \n at the end of plain error. [tests] Revert test_unsuccessful_validation_multiple_instances to its original behaviour. [CLI] Split CliOutputWriter to use object polymorphism [tests] Fix test_unsuccessful_validation [tests] Simplify check in test_none_instance [CLI] Fix compatibility with Python2 (about metaclass) [tests] Add test_unknown_output_format [CLI] Forbid --error-format if --output is not plain [tests] Add test_schema_validation [CLI] Switch public methods to private. RomainTT (24): [CLI] Improve the default display of the errors [CLI] Remove Linux-specific command for error delimiter [CLI] Remove incompatible character, replaced by '=' [CLI] General improvement of CLI output readability [CLI] Remove --human and add --output. Add more helper functions. [CLI] Improve stdin management and factorize more code [CLI] Add newline at end of oneline error [tests] Update existing CLI tests for the new implementation. [tests] remove external files for CLI tests [CLI] Fix STDIN management. [CLI] Replace JSONDecodeError by ValueError for 2.7 compat [CLI] Replace FileNotFoundError by IOError for 2.7 compat [tests] Remove unused import SchemaError [tests] Remove unused import os [tests] Finish to fix existing tests. [tests] Add new tests for the new CLI output formatting [CLI] Add pragma no cover for some safenet code [tests] Add some test to the cli parser, about None arguments Fix some flake8 style errors [CLI] Remove abstract class for output writers [CLI] Fix coding style errors in parse_args [tests] Remove use of unittest mocks. Add contextmanager capture_output instead [tests] Fix some linter errors [tests] Improve test_unknown_output and test_useless_error_format Sergey Fedoseev (2): remove uneeded backtick from docstring of validators.extend() Add release note about dropping support for Py 3.6 Talha Malik (4): Get input from commandline when instance(s) not provided Add mock for pypy Text stdin without mock Refactor to not leak global state Tomas Hrnciar (1): Remove shebangs from nonexecutable scripts Zac-HD (1): Handle multipleOf overflow davkor (13): Added fuzzer to be run with OSS-Fuzz Fix up syntax Removed os import fuzzer: fix remaining style CI complaints Add CI-fuzz to ensure fuzzers are run. Set CI fuzz to be 30 seconds. set continue on error in fuzzing CI job. Move continue-on-error to build step. Try adding an success statement in CI switch to checking steps output. Add suggestions from Zac Make fuzzer friendly for pytest. fixed fuzzer. dependabot[bot] (5): Bump lxml from 4.6.1 to 4.6.2 in /docs Bump urllib3 from 1.26.2 to 1.26.3 in /docs Bump jinja2 from 2.11.2 to 2.11.3 in /docs Bump pygments from 2.7.2 to 2.7.4 in /docs Bump urllib3 from 1.26.4 to 1.26.5 in /docs johnthagen (3): Add license file (COPYING) metadata to packaged distributions Rename COPYING file to LICENSE to allow pip-licenses to locate it Add tox/CI test for license file pre-commit-ci[bot] (2): [pre-commit.ci] pre-commit autoupdate [pre-commit.ci] auto fixes from pre-commit.com hooks willson-chen (13): fix bug about hostname by import fqdn regenerated the requirements.txt fix issue_669 --base-uri flag instead -r Add the specified base-uri function in the CLI modify style issues Fix the bug of processing arguments[validator] in parse_args Delete the failed test case add test case support for cli specifying --base-uri local or remote and add test cases Support --base-uri. and local full path and remote URI Optimize the input parameters of '--base-uri' Optimizing test cases and add invalid '--base-uri' test wilson chen (2): Modify the code based on review comments Resolve conflicts 杨鹏 (1): Update setup.cfg
…ersion 4.4.0 AleksaC (1): Add pre-commit hook config Bastien Vallet (1): [compat] Drop support of PY2 Damien Tardy-Panis (1): add json_path error attribute Dmitry Dygalo (6): perf: Undesired fallback to brute force container uniqueness check on certain input types perf: Cache reference lookups for subschemas perf: Use cached lookups for resolving fragments if the referent document is known perf: Replace the `Validator.evolve` method with an equivalent class attribute docs: Update changelog perf: Cache subschemas DrGFreeman (2): Revert "Temporarily skip the failing tests from #866." Ensure all items of array are checked for uniqueness Francisco Couzo (1): Delete unused dependency GermanoGuerrini (1): Avoid setup_requires offline installation issues Harald Nezbeda (34): Fixes validation for uri-template format python-jsonschema/jsonschema#686: Fixes unique and equal checks Add test for list_equal and dict_equal Add test case with custom sequance type Extend sequance and mapping check Use python 3.9 for coverage Remove pathlib2 compatibility code. python-jsonschema/jsonschema#782: Enable draft2020-12 test suite python-jsonschema/jsonschema#782: Split format and regular test cases on draft2020-12 python-jsonschema/jsonschema#782: Add dependentRequired and dependentSchemas validation python-jsonschema/jsonschema#782: Extend format check for draft2020-12, add duration format check python-jsonschema/jsonschema#782: Add checks for prefixItems, basic check for unevaluatedItems python-jsonschema/jsonschema#782: Adapt items to work with prefixItems python-jsonschema/jsonschema#782: Extend contains with minContains and maxContaints, add contains legacy validator python-jsonschema/jsonschema#782: Implements unevaluatedItems validations python-jsonschema/jsonschema#782: Implements unevaluatedProperties validations python-jsonschema/jsonschema#782: Extend implementation of ref python-jsonschema/jsonschema#782: Fixes ref validation priority python-jsonschema/jsonschema#782: Fixes ref resolver for folders python-jsonschema/jsonschema#782: Extend resolver for anchor python-jsonschema/jsonschema#782: Implements defs validations python-jsonschema/jsonschema#782: Add validation for uuid format python-jsonschema/jsonschema#782: Implements dynamicRef validations python-jsonschema/jsonschema#782: Load dependencies from legacy validators python-jsonschema/jsonschema#782: Fixes relative json pointer format validation for leading zero on digit python-jsonschema/jsonschema#782: Adapt validator test for draft2020-12, fixes code styles python-jsonschema/jsonschema#782: Fixes failing styles python-jsonschema/jsonschema#782: Update validation message for unevaluatedProperties and unevaluatedItems python-jsonschema/jsonschema#782: Refactor items behavior with prefixItems python-jsonschema/jsonschema#782: Resolve meta schema vocabularies from local cache python-jsonschema/jsonschema#782: Extend format tests python-jsonschema/jsonschema#782: Code clenaup, fixes validation messages python-jsonschema/jsonschema#782: Add compatibility to draft7 and older python-jsonschema/jsonschema#782: Remove ecmascript validation, extend dynamicRef skip description Hillel Arnold (7): improve date parsing unskip tests skip tests on python 3.6 fix formatting error better handling for Python 3.6 renames message and function use correct format check globally Hugo van Kemenade (2): No need to build universal wheels for Python 3-only Ignore build files Jacob D. Moorman (2): Remove outdated instructions for benching. Remove old instructions for comparing benchmarks. Jacob Moorman (1): Add test test-requirements to perf deps. Jesús García Crespo (2): Load schemas via importlib.resources Add version constraint to importlib_resources Jonathan Hashkes (1): fix prefixItems index reporting in ValidationError Julian Berman (378): Add setuptools-scm to the pyproject.toml. Squashed 'json/' changes from 689d2f28..0f344a69 Stop depending on setuptools. Include the pyproject.toml in sdists. Add a packaging GHA. And a coverage GHA. Hacky running of tox in CI. tox-venv for windows python -m pip install everywhere. Run on pull request. Development stuff isn't supported on Windows More python -m. Run daily. Use runner, which always exists even if we are not matrixed. Do this only on Windows, since 3.5's venv is super old. {envbindir}/python -> {envpython} Skip the rest of the obscurely failing Windows builds. Squashed 'json/' changes from 0f344a69..6c00de64 More -ms. Remove the appveyor badge. Just rely on pep517.check. Set a user agent for the Sphinx role. Bump doc requirements (via pip-compile) Tighten up the wording here. Might as well just inline it. Move to twine check. Fix the warnings emitted by twine check. Either twine check or pep517 doesn't work on Windows. Give up and make the coverage token public. Test directly with pip show. Sigh, bytes everywhere... Sigh, Windows somewhere... setup.py is dead. The Windows 3.6 is so old its pip/venv don't support PEP517. 2 is more than 1. Squashed 'json/' changes from 6c00de64..a863dbab Newer webcolors has a new API apparently. Sigh... but also drops Py2 compat. Squashed 'json/' changes from a863dbab..d52866b3 Maybe fix RTD. Check the changelog for valid reST. A 406 HTTP error, so hipster. Sigh, no shell. Squashed 'json/' changes from d52866b3..b70c5626 Py2 new-style class. Share the parsing error message. Minor style. assertTrue -> assertIn. attrs'ed. Bit clearer display of the error message in the actual source via dedent. Specify the type of error in pretty error messages. julian@Air ● Py3. Add/update some info on why format works the way it does. Add the upstream link here too. Squashed 'json/' changes from b70c5626..33791274 HTTP -> HTTPS for specification URIs. Test parsing errors for the plain output writer. Test parsing errors for stdin + the pretty output writer. Move where errors are written outside of cli writers. Only used in one place now. Follow how other places tend to indicate the path for stdin. Call all the args 'error' consistently. Clarify what parts of the CLI output are public. Slightly less exception for flow control. Move compat code to compat. Temporarily inline these, there will be a better way to combine them. Sigh, remove -q from spelling which is required to see the misspelled words. Sigh, remove -q from spelling which is required to see the misspelled words. Spelling. type=str is the default. Move the asserts out of the with block. Minor safety guard. Equivalent but consistent. Don't even bother keeping the whole list of valid/invalid. Minor style. Squash. Show full tracebacks for parsing errors in pretty output. And now bundle up stdout/stderr into an object. The validation already can handle not having instances. Error rather than fail for miswritten tests. Document that non-zero error codes are also not public. Make fake_open work the same across both test cases. DRY up cli.run calls. OK TestParser doesn't actually open files at all... Clarify the test case name. Transparent fixture names. DRY up asserting about exit codes. And dry up calling .getvalue. repr paths in plain CLI outputted errors. Note that --error-format is for schema and validation errors specifically. argparse does funny wrapping by default, so no need for continuations. Reorder the CLI tests. Squashed 'json/' changes from 33791274..8e2a05a9 Only the draft2019-09 draft actually uses an HTTPS URI. Remove the rest of the incorrectly added HTTPS for older metaschemas. Put the more important test case first. Separate out the tests that spawn subprocesses. Introduce TestCLI.assertOutput. Fill in the remaining missing tests. Mostly centralize the error handling for loading files. Less nest. Keep going when encountering invalid instance files. Bit shorter. Make sure no args shows help info. Fix Py3. Drop support for python3.5. Everything can cd now. Reorder the draft3 metaschema to match the upstream version. Reorder the draft4 metaschema to match the upstream version. Squashed 'json/' changes from 8e2a05a9..d17e1ba2 Squashed 'json/' changes from d17e1ba2..2576db4d Squashed 'json/' changes from 2576db4df..71f55b36b zeroTerminatedFloats moved to required. 2 is more than 1. Squashed 'json/' changes from 71f55b36b..361620ecf non-bmp-regex moved to optional Squashed 'json/' changes from 361620ecf..9d0e0eb31 Fix the broken reST. Just require full coverage from codecov. Maybe GHA doesn't actually run apt-get update before runs... Just remove the codecov badge entirely. Flail again on running update. Bump the docs requirements. Fix the benchmark runner for the whole suite. FilePath -> pathlib Sigh. Windows... Use utf-8 everywhere. Squashed 'json/' changes from 9d0e0eb..817b724 Add support for the comment field in upstream tests. Cope with the format test structure change upstream. Handle broken punycode in IDN hostnames. Skip some additional tests. Squashed 'json/' changes from 817b724b7..57001d26b Squashed 'json/' changes from 57001d26b..fc05651cc Don't include `if` in the schema_path of errors. Squashed 'json/' changes from fc05651cc..40601f628 Shorten the lead-in sentence. The mailing list isn't really monitored, so remove it from the README. Squashed 'json/' changes from 40601f6..ea41553 Skip the complex email validation tests. Format passes by default, so only skip invalid tests when missing the checker. Same for content type validation, skip only the invalid ones. Remove the 3 :: Only classifier. Drop building the package on Py2 in CI. No more need for pathlib2 without Py2. Ref Py3 in the docs. Kill jsonschema.compat as well. Remove the reference to jsonschema.compat in the compatibility policy. Enable automatic section heading labels in the docs. Pick a format checker that has no external dep now that fqdn exists. Run CI against all setuptools extras separately. Unbreak non-format-setuptools-extra-installed jsonschema. isorted. Kill Py2 in the sphinx role. Trailing whitespace pre-commit setup. Bump the version in the notebooks.io requirements. Squashed 'json/' changes from ea415537..86f52b87 Skip more tests for #686. Validate IP addresses using the ipaddress module. Squashed 'json/' changes from 86f52b87..fce9e9b3 Temporarily skip the tests that will be unskipped by #722. Simplify the schemas in the tests for CLI validator detection. Move the latest validator CLI test to where it must go now. Remove the rest of the notebooks.ai related resources. And two last ones... Update pre-commit hooks. Sigh, this appears to be a regex, not exact match, so it was ignoring everything. Minor doc formatting. Remove docformatter, it's too unwieldy. Run pre-commit in CI. Remove the Py2 coding declaration. Bump doc requirements (via pip-compile) Use the longer form of the CLI option for clarity. Remove outdated release notes. Be able to run coverage on all toxenvs. Whoops, send coverage to codecov again. Squashed 'json/' changes from fce9e9b3..21555a85 Squashed 'json/' changes from 21555a85..96742ba3 Sigh, ugly, but assrtRegexpMatches is deprecated. Temporarily skip the failing tests for #743. pep517.build is dead or dying. Don't fail when codecov.io flakes. Minor formatting and wording. And now tidy up the tests. Test on Py39. Tidy up the URLs in the docutils role. Vanilla flake8. Bump the meaningless role version number. Cope with IPv6Address now allowing zone IDs in 3.9. Work around danielrichman/strict-rfc3339#5. Squashed 'json/' changes from 96742ba3..3627cc11 Actually exercise Validator.is_type on an unknown type. Make utils.indent exit stage left. Sigh more spelling. Doc requirements bump. Run more toxenvs on 3.9. Go back to skipping the windows envs that are annoying to fix. Update pre-commit. Update pre-commit. Unskip most of the skipped windows builds. Test via PyPy3.7 No, don't use venv. Try the Twisted prerelease, which hopefully obviates installing IOCP. Reskip the PyPy-on-Windows tests. Minor style fixes. Move the fuzz workflow to fuzz.yml. Add language, remove dry-run: false which is the default. Module docstring Go back to fuzz_* naming. Ignore the fuzz module from coverage for now as well. Extra newline. Minor style fixes. Bump lxml (and the rest of the doc requirements). Squashed 'json/' changes from 3627cc1..15ec577 Allowing leading zeros is allowed by the JSON Schema spec... Skip tests that actually rely on location-independent IDs. Install package for perf toxenvs too. Fix IDs of remotes in the test suite on Windows. Squashed 'json/' changes from 15ec577f..09fd353f Unsupport leap seconds. Style. Remove default types (in favor of the TypeChecker API). Evade the pip safety warning. v4.0.0a1 Add #746 to the changelog. Squashed 'json/' changes from 09fd353f..0aefbb3d Skip the tests which tickle known bugs. Revert an accidentally removed test. Squashed 'json/' changes from 0aefbb3d..1326f36e And skip a few more new ref tests. Squashed 'json/' changes from 1326f36e..17fa9589 Rename the test skip (to match the renamed tests). Install with --in-tree-build in the tox.ini. Don't allow warnings during test runs. Tests, not coverage toxenv. Ignore another warning from importlib_metadata. And one from setuptools_scm from shallow git clones... Another try at filtering the setuptools_scm warning. Twisted 21.2.0 was released. Hopefully the last warning, which seems to only fire on PyPy. Proper syntax. Fix the DeprecationWarning from importing abcs from collections. Test only through _util.equal. Simplify the implementations of the equal checks. Minor rewording of the docstring. Add #686 to the changelog. Squashed 'json/' changes from 17fa9589..6327a3bc Squashed 'json/' changes from 6327a3bc..fd0aa9f8 Tidy the docstring slightly. Fix missing trailing commas. Squashed 'json/' changes from fd0aa9f8..f9acc454 Squashed 'json/' changes from f9acc454..bb2a20d3 Fix the UUID format. Remove some u prefixes leftover from Py2. Fix the names of internal test cases for newer drafts. Freenode is dead. Spelling Bump doc requirements. Don't check schemas in test suite runs. Fix Draft2020-12Validator's name to be Draft202012Validator. And add it to the docs. Remove the $defs validator. May as well add support for Draft 2019 as well. Update the draft info in the README. Unnecessary `len`s. Add the drafts to the changelog. Add a linter to ensure single quotes aren't added. And a linter to forbid slash-line-continuation. Remove more unneeded u prefixes. Squashed 'json/' changes from bb2a20d3e..878b0ad5f Run the unicode and float-overflow optional tests on all drafts. Tidy up validation error messages, particularly using f-strings. Remove types_msg which implements really old draft-3 behavior. Reimplement contains. More strict style, now via bugbear. Squashed 'json/' changes from 878b0ad5f..eb619047f yield from everywhere, saving precious lines Minor style. Let format_index handle the container too. Deprecate jsonschema.__version__. Drop support for Python 3.6. Build RTD with 3.8 And deprecate importing ErrorTree from jsonschema.validators. Sigh, flake8. Fix the schema path used by prefixItems errors. Remove a test that is only relevant for Py2+3 combined codebases. Slightly nicer error message for not. And simplify items as well. Fix items' instance path as well. Unskip more passing tests. Be furoious. Minor restructure of which html sphinx builder we build in the tox.ini. Remove resolve_local. Squashed 'json/' changes from eb619047f..ab0b1ae71 Skip more new leap second tests. Minor local variable tweaking. Add a pre-commit.ci badge. Actually add the badge. Squashed 'json/' changes from ab0b1ae71..20c1bb1d9 Depend on rfc3339-validator for format, even for non-nonGPL. Remove 3.6-related code. Add an explicit ASCII check. Always depend on the newer webcolors API. Use contextmanager.suppress to kill a bit of boilerplate. Kill an old testing helper now that it mostly lives in contextlib. Add a test for the 2019-09 $id lookup. Ensure message_for allows only one error. Properly set the failing validator for min/maxContains. Minor tweak to the OSSFuzz workflow. FileNotFoundError and FileExistsError in more places. Minor tweak of local variables. Remove 3.6-related code. Remove dead code. Remove more dead code. Deprecate jsonschema.RefResolver.in_scope. Bit of coverage tweaking. Remove RefResolver.scopes_stack_copy. Temporarily simplify _finditem, and unskip some tests. Suppress the KeyError in unknown type exception tracebacks. Set __qualname__ for validator classes. Test iter_errors independent of a draft validator. Remove 2-arg-using form of is_valid from tests. Add Validator.evolve, deprecating passing _schema to methods. Add test cases for error details hidden behind a $ref Style Deprecate jsonschema.validators.validators and .meta_schemas. Make it clear that support for draft2020-12 is partial unfortunately. Remove the added argument to jsonschema.validators.create. julian@Airm ● Style Add the Zenodo badge. Add the missing format dependency documentation. Re-allow the fuzz to fail. Squashed 'json/' changes from 20c1bb1d9..54440eab4 Skip the tests which tickle known bugs. Combine the CI and precommit workflows. Add support for Python 3.10. Ignore distutils warnings coming from pip which needs a release. Skip tests on 3.10 + Windows which fail for annoying compilation reasons. Try autocreating release notes. Sigh, back to full clones. Add 4.1.0 to the changelog. Slightly reword the tagline. Squashed 'json/' changes from 54440eab4..ba3a90534 Skip more more new leap second tests. Add v4.1.1 to the CHANGELOG. Remove the Patreon link. Squashed 'json/' changes from ba3a90534..329efe59c Add v4.1.2 to the CHANGELOG. in-tree-build is now the default in pip Set PYTHONWARNINGS only for the test run itself. Remove uses of SynchronousTestCase. Add some other links which will show up on PyPI. Squashed 'json/' changes from 329efe59c..9263b5250 Temporarily skip the failing tests from #866. Add in some missing internal draft2019-09 tests. v4.2.0 -> CHANGELOG v4.2.1 -> CHANGELOG Update requirements. Update the doc requirements. Minor CHANGELOG twiddling in prep for v4.3.0. Remove a last use of 'interface' instead of 'protocol'. Schemas can be bools too in newer drafts. Remove relative imports Shorten the protocol test. v4.3.1 -> CHANGELOG Privated. Add v4.3.2 to the changelog. v4.3.3 -> CHANGELOG Squashed 'json/' changes from 9263b5250..20fb14bde Skip the vocabulary tests that don't pass yet. Bump doc requirements. Squashed 'json/' changes from 20fb14bde..3731ed32a Run more things with 3.10 in CI. pypy3.7 -> 3.8 Run 3.11 in CI. Move the skips for Windows to the right version (3.10) Add the 3.11 classifier. v4.4.0 -> CHANGELOG Karthikeyan Singaravelan (1): Move python_requires to options for correct METADATA generation. Martin Zugnoni (1): Remove demo links from README file Milly (1): Fix test to windows path matching Nikita Kniazev (1): Move warnings to user context Rob Herring (1): validators: Fix dependentSchemas when instance is not an object Romain Taprest (14): [CLI] Remove heading-style comments [CLI] Improve --help message about --instance [CLI] Change write_valid_* into write_validation_*, less confusing. [tests] replace assertTrue by assertIn for nicer error [CLI] Remove mandatory \n at the end of plain error. [tests] Revert test_unsuccessful_validation_multiple_instances to its original behaviour. [CLI] Split CliOutputWriter to use object polymorphism [tests] Fix test_unsuccessful_validation [tests] Simplify check in test_none_instance [CLI] Fix compatibility with Python2 (about metaclass) [tests] Add test_unknown_output_format [CLI] Forbid --error-format if --output is not plain [tests] Add test_schema_validation [CLI] Switch public methods to private. RomainTT (24): [CLI] Improve the default display of the errors [CLI] Remove Linux-specific command for error delimiter [CLI] Remove incompatible character, replaced by '=' [CLI] General improvement of CLI output readability [CLI] Remove --human and add --output. Add more helper functions. [CLI] Improve stdin management and factorize more code [CLI] Add newline at end of oneline error [tests] Update existing CLI tests for the new implementation. [tests] remove external files for CLI tests [CLI] Fix STDIN management. [CLI] Replace JSONDecodeError by ValueError for 2.7 compat [CLI] Replace FileNotFoundError by IOError for 2.7 compat [tests] Remove unused import SchemaError [tests] Remove unused import os [tests] Finish to fix existing tests. [tests] Add new tests for the new CLI output formatting [CLI] Add pragma no cover for some safenet code [tests] Add some test to the cli parser, about None arguments Fix some flake8 style errors [CLI] Remove abstract class for output writers [CLI] Fix coding style errors in parse_args [tests] Remove use of unittest mocks. Add contextmanager capture_output instead [tests] Fix some linter errors [tests] Improve test_unknown_output and test_useless_error_format Sergey Fedoseev (2): remove uneeded backtick from docstring of validators.extend() Add release note about dropping support for Py 3.6 Stephen Rosen (13): Add `jsonschema.protocols.IValidator` Update docs/validate.rst Apply suggestions from code review Fix references to IValidator; add protocol tests Fix doc linting build Setup mypy in `tox -e typing` and get it to pass Fix typing_extensions import handling for mypy Parenthesize dict-tuple to pacify pypy3.7 parser Use future import for type annotations Fix nitpick error on type annotation Fix sphinx nitpick error arising from annotations Cleanup internal type annotation variables Omit 'if TYPE_CHECKING' blocks from coverage Talha Malik (4): Get input from commandline when instance(s) not provided Add mock for pypy Text stdin without mock Refactor to not leak global state Tomas Hrnciar (1): Remove shebangs from nonexecutable scripts Zac-HD (1): Handle multipleOf overflow davkor (13): Added fuzzer to be run with OSS-Fuzz Fix up syntax Removed os import fuzzer: fix remaining style CI complaints Add CI-fuzz to ensure fuzzers are run. Set CI fuzz to be 30 seconds. set continue on error in fuzzing CI job. Move continue-on-error to build step. Try adding an success statement in CI switch to checking steps output. Add suggestions from Zac Make fuzzer friendly for pytest. fixed fuzzer. dependabot[bot] (5): Bump lxml from 4.6.1 to 4.6.2 in /docs Bump urllib3 from 1.26.2 to 1.26.3 in /docs Bump jinja2 from 2.11.2 to 2.11.3 in /docs Bump pygments from 2.7.2 to 2.7.4 in /docs Bump urllib3 from 1.26.4 to 1.26.5 in /docs johnthagen (3): Add license file (COPYING) metadata to packaged distributions Rename COPYING file to LICENSE to allow pip-licenses to locate it Add tox/CI test for license file pre-commit-ci[bot] (5): [pre-commit.ci] pre-commit autoupdate [pre-commit.ci] auto fixes from pre-commit.com hooks [pre-commit.ci] pre-commit autoupdate [pre-commit.ci] pre-commit autoupdate [pre-commit.ci] pre-commit autoupdate willson-chen (13): fix bug about hostname by import fqdn regenerated the requirements.txt fix issue_669 --base-uri flag instead -r Add the specified base-uri function in the CLI modify style issues Fix the bug of processing arguments[validator] in parse_args Delete the failed test case add test case support for cli specifying --base-uri local or remote and add test cases Support --base-uri. and local full path and remote URI Optimize the input parameters of '--base-uri' Optimizing test cases and add invalid '--base-uri' test wilson chen (2): Modify the code based on review comments Resolve conflicts 杨鹏 (1): Update setup.cfg
…ersion 4.4.0 AleksaC (1): Add pre-commit hook config Bastien Vallet (1): [compat] Drop support of PY2 Damien Tardy-Panis (1): add json_path error attribute Dmitry Dygalo (6): perf: Undesired fallback to brute force container uniqueness check on certain input types perf: Cache reference lookups for subschemas perf: Use cached lookups for resolving fragments if the referent document is known perf: Replace the `Validator.evolve` method with an equivalent class attribute docs: Update changelog perf: Cache subschemas DrGFreeman (2): Revert "Temporarily skip the failing tests from #866." Ensure all items of array are checked for uniqueness Francisco Couzo (1): Delete unused dependency GermanoGuerrini (1): Avoid setup_requires offline installation issues Harald Nezbeda (34): Fixes validation for uri-template format python-jsonschema/jsonschema#686: Fixes unique and equal checks Add test for list_equal and dict_equal Add test case with custom sequance type Extend sequance and mapping check Use python 3.9 for coverage Remove pathlib2 compatibility code. python-jsonschema/jsonschema#782: Enable draft2020-12 test suite python-jsonschema/jsonschema#782: Split format and regular test cases on draft2020-12 python-jsonschema/jsonschema#782: Add dependentRequired and dependentSchemas validation python-jsonschema/jsonschema#782: Extend format check for draft2020-12, add duration format check python-jsonschema/jsonschema#782: Add checks for prefixItems, basic check for unevaluatedItems python-jsonschema/jsonschema#782: Adapt items to work with prefixItems python-jsonschema/jsonschema#782: Extend contains with minContains and maxContaints, add contains legacy validator python-jsonschema/jsonschema#782: Implements unevaluatedItems validations python-jsonschema/jsonschema#782: Implements unevaluatedProperties validations python-jsonschema/jsonschema#782: Extend implementation of ref python-jsonschema/jsonschema#782: Fixes ref validation priority python-jsonschema/jsonschema#782: Fixes ref resolver for folders python-jsonschema/jsonschema#782: Extend resolver for anchor python-jsonschema/jsonschema#782: Implements defs validations python-jsonschema/jsonschema#782: Add validation for uuid format python-jsonschema/jsonschema#782: Implements dynamicRef validations python-jsonschema/jsonschema#782: Load dependencies from legacy validators python-jsonschema/jsonschema#782: Fixes relative json pointer format validation for leading zero on digit python-jsonschema/jsonschema#782: Adapt validator test for draft2020-12, fixes code styles python-jsonschema/jsonschema#782: Fixes failing styles python-jsonschema/jsonschema#782: Update validation message for unevaluatedProperties and unevaluatedItems python-jsonschema/jsonschema#782: Refactor items behavior with prefixItems python-jsonschema/jsonschema#782: Resolve meta schema vocabularies from local cache python-jsonschema/jsonschema#782: Extend format tests python-jsonschema/jsonschema#782: Code clenaup, fixes validation messages python-jsonschema/jsonschema#782: Add compatibility to draft7 and older python-jsonschema/jsonschema#782: Remove ecmascript validation, extend dynamicRef skip description Hillel Arnold (7): improve date parsing unskip tests skip tests on python 3.6 fix formatting error better handling for Python 3.6 renames message and function use correct format check globally Hugo van Kemenade (2): No need to build universal wheels for Python 3-only Ignore build files Jacob D. Moorman (2): Remove outdated instructions for benching. Remove old instructions for comparing benchmarks. Jacob Moorman (1): Add test test-requirements to perf deps. Jesús García Crespo (2): Load schemas via importlib.resources Add version constraint to importlib_resources Jonathan Hashkes (1): fix prefixItems index reporting in ValidationError Julian Berman (378): Add setuptools-scm to the pyproject.toml. Squashed 'json/' changes from 689d2f28..0f344a69 Stop depending on setuptools. Include the pyproject.toml in sdists. Add a packaging GHA. And a coverage GHA. Hacky running of tox in CI. tox-venv for windows python -m pip install everywhere. Run on pull request. Development stuff isn't supported on Windows More python -m. Run daily. Use runner, which always exists even if we are not matrixed. Do this only on Windows, since 3.5's venv is super old. {envbindir}/python -> {envpython} Skip the rest of the obscurely failing Windows builds. Squashed 'json/' changes from 0f344a69..6c00de64 More -ms. Remove the appveyor badge. Just rely on pep517.check. Set a user agent for the Sphinx role. Bump doc requirements (via pip-compile) Tighten up the wording here. Might as well just inline it. Move to twine check. Fix the warnings emitted by twine check. Either twine check or pep517 doesn't work on Windows. Give up and make the coverage token public. Test directly with pip show. Sigh, bytes everywhere... Sigh, Windows somewhere... setup.py is dead. The Windows 3.6 is so old its pip/venv don't support PEP517. 2 is more than 1. Squashed 'json/' changes from 6c00de64..a863dbab Newer webcolors has a new API apparently. Sigh... but also drops Py2 compat. Squashed 'json/' changes from a863dbab..d52866b3 Maybe fix RTD. Check the changelog for valid reST. A 406 HTTP error, so hipster. Sigh, no shell. Squashed 'json/' changes from d52866b3..b70c5626 Py2 new-style class. Share the parsing error message. Minor style. assertTrue -> assertIn. attrs'ed. Bit clearer display of the error message in the actual source via dedent. Specify the type of error in pretty error messages. julian@Air ● Py3. Add/update some info on why format works the way it does. Add the upstream link here too. Squashed 'json/' changes from b70c5626..33791274 HTTP -> HTTPS for specification URIs. Test parsing errors for the plain output writer. Test parsing errors for stdin + the pretty output writer. Move where errors are written outside of cli writers. Only used in one place now. Follow how other places tend to indicate the path for stdin. Call all the args 'error' consistently. Clarify what parts of the CLI output are public. Slightly less exception for flow control. Move compat code to compat. Temporarily inline these, there will be a better way to combine them. Sigh, remove -q from spelling which is required to see the misspelled words. Sigh, remove -q from spelling which is required to see the misspelled words. Spelling. type=str is the default. Move the asserts out of the with block. Minor safety guard. Equivalent but consistent. Don't even bother keeping the whole list of valid/invalid. Minor style. Squash. Show full tracebacks for parsing errors in pretty output. And now bundle up stdout/stderr into an object. The validation already can handle not having instances. Error rather than fail for miswritten tests. Document that non-zero error codes are also not public. Make fake_open work the same across both test cases. DRY up cli.run calls. OK TestParser doesn't actually open files at all... Clarify the test case name. Transparent fixture names. DRY up asserting about exit codes. And dry up calling .getvalue. repr paths in plain CLI outputted errors. Note that --error-format is for schema and validation errors specifically. argparse does funny wrapping by default, so no need for continuations. Reorder the CLI tests. Squashed 'json/' changes from 33791274..8e2a05a9 Only the draft2019-09 draft actually uses an HTTPS URI. Remove the rest of the incorrectly added HTTPS for older metaschemas. Put the more important test case first. Separate out the tests that spawn subprocesses. Introduce TestCLI.assertOutput. Fill in the remaining missing tests. Mostly centralize the error handling for loading files. Less nest. Keep going when encountering invalid instance files. Bit shorter. Make sure no args shows help info. Fix Py3. Drop support for python3.5. Everything can cd now. Reorder the draft3 metaschema to match the upstream version. Reorder the draft4 metaschema to match the upstream version. Squashed 'json/' changes from 8e2a05a9..d17e1ba2 Squashed 'json/' changes from d17e1ba2..2576db4d Squashed 'json/' changes from 2576db4df..71f55b36b zeroTerminatedFloats moved to required. 2 is more than 1. Squashed 'json/' changes from 71f55b36b..361620ecf non-bmp-regex moved to optional Squashed 'json/' changes from 361620ecf..9d0e0eb31 Fix the broken reST. Just require full coverage from codecov. Maybe GHA doesn't actually run apt-get update before runs... Just remove the codecov badge entirely. Flail again on running update. Bump the docs requirements. Fix the benchmark runner for the whole suite. FilePath -> pathlib Sigh. Windows... Use utf-8 everywhere. Squashed 'json/' changes from 9d0e0eb..817b724 Add support for the comment field in upstream tests. Cope with the format test structure change upstream. Handle broken punycode in IDN hostnames. Skip some additional tests. Squashed 'json/' changes from 817b724b7..57001d26b Squashed 'json/' changes from 57001d26b..fc05651cc Don't include `if` in the schema_path of errors. Squashed 'json/' changes from fc05651cc..40601f628 Shorten the lead-in sentence. The mailing list isn't really monitored, so remove it from the README. Squashed 'json/' changes from 40601f6..ea41553 Skip the complex email validation tests. Format passes by default, so only skip invalid tests when missing the checker. Same for content type validation, skip only the invalid ones. Remove the 3 :: Only classifier. Drop building the package on Py2 in CI. No more need for pathlib2 without Py2. Ref Py3 in the docs. Kill jsonschema.compat as well. Remove the reference to jsonschema.compat in the compatibility policy. Enable automatic section heading labels in the docs. Pick a format checker that has no external dep now that fqdn exists. Run CI against all setuptools extras separately. Unbreak non-format-setuptools-extra-installed jsonschema. isorted. Kill Py2 in the sphinx role. Trailing whitespace pre-commit setup. Bump the version in the notebooks.io requirements. Squashed 'json/' changes from ea415537..86f52b87 Skip more tests for #686. Validate IP addresses using the ipaddress module. Squashed 'json/' changes from 86f52b87..fce9e9b3 Temporarily skip the tests that will be unskipped by #722. Simplify the schemas in the tests for CLI validator detection. Move the latest validator CLI test to where it must go now. Remove the rest of the notebooks.ai related resources. And two last ones... Update pre-commit hooks. Sigh, this appears to be a regex, not exact match, so it was ignoring everything. Minor doc formatting. Remove docformatter, it's too unwieldy. Run pre-commit in CI. Remove the Py2 coding declaration. Bump doc requirements (via pip-compile) Use the longer form of the CLI option for clarity. Remove outdated release notes. Be able to run coverage on all toxenvs. Whoops, send coverage to codecov again. Squashed 'json/' changes from fce9e9b3..21555a85 Squashed 'json/' changes from 21555a85..96742ba3 Sigh, ugly, but assrtRegexpMatches is deprecated. Temporarily skip the failing tests for #743. pep517.build is dead or dying. Don't fail when codecov.io flakes. Minor formatting and wording. And now tidy up the tests. Test on Py39. Tidy up the URLs in the docutils role. Vanilla flake8. Bump the meaningless role version number. Cope with IPv6Address now allowing zone IDs in 3.9. Work around danielrichman/strict-rfc3339#5. Squashed 'json/' changes from 96742ba3..3627cc11 Actually exercise Validator.is_type on an unknown type. Make utils.indent exit stage left. Sigh more spelling. Doc requirements bump. Run more toxenvs on 3.9. Go back to skipping the windows envs that are annoying to fix. Update pre-commit. Update pre-commit. Unskip most of the skipped windows builds. Test via PyPy3.7 No, don't use venv. Try the Twisted prerelease, which hopefully obviates installing IOCP. Reskip the PyPy-on-Windows tests. Minor style fixes. Move the fuzz workflow to fuzz.yml. Add language, remove dry-run: false which is the default. Module docstring Go back to fuzz_* naming. Ignore the fuzz module from coverage for now as well. Extra newline. Minor style fixes. Bump lxml (and the rest of the doc requirements). Squashed 'json/' changes from 3627cc1..15ec577 Allowing leading zeros is allowed by the JSON Schema spec... Skip tests that actually rely on location-independent IDs. Install package for perf toxenvs too. Fix IDs of remotes in the test suite on Windows. Squashed 'json/' changes from 15ec577f..09fd353f Unsupport leap seconds. Style. Remove default types (in favor of the TypeChecker API). Evade the pip safety warning. v4.0.0a1 Add #746 to the changelog. Squashed 'json/' changes from 09fd353f..0aefbb3d Skip the tests which tickle known bugs. Revert an accidentally removed test. Squashed 'json/' changes from 0aefbb3d..1326f36e And skip a few more new ref tests. Squashed 'json/' changes from 1326f36e..17fa9589 Rename the test skip (to match the renamed tests). Install with --in-tree-build in the tox.ini. Don't allow warnings during test runs. Tests, not coverage toxenv. Ignore another warning from importlib_metadata. And one from setuptools_scm from shallow git clones... Another try at filtering the setuptools_scm warning. Twisted 21.2.0 was released. Hopefully the last warning, which seems to only fire on PyPy. Proper syntax. Fix the DeprecationWarning from importing abcs from collections. Test only through _util.equal. Simplify the implementations of the equal checks. Minor rewording of the docstring. Add #686 to the changelog. Squashed 'json/' changes from 17fa9589..6327a3bc Squashed 'json/' changes from 6327a3bc..fd0aa9f8 Tidy the docstring slightly. Fix missing trailing commas. Squashed 'json/' changes from fd0aa9f8..f9acc454 Squashed 'json/' changes from f9acc454..bb2a20d3 Fix the UUID format. Remove some u prefixes leftover from Py2. Fix the names of internal test cases for newer drafts. Freenode is dead. Spelling Bump doc requirements. Don't check schemas in test suite runs. Fix Draft2020-12Validator's name to be Draft202012Validator. And add it to the docs. Remove the $defs validator. May as well add support for Draft 2019 as well. Update the draft info in the README. Unnecessary `len`s. Add the drafts to the changelog. Add a linter to ensure single quotes aren't added. And a linter to forbid slash-line-continuation. Remove more unneeded u prefixes. Squashed 'json/' changes from bb2a20d3e..878b0ad5f Run the unicode and float-overflow optional tests on all drafts. Tidy up validation error messages, particularly using f-strings. Remove types_msg which implements really old draft-3 behavior. Reimplement contains. More strict style, now via bugbear. Squashed 'json/' changes from 878b0ad5f..eb619047f yield from everywhere, saving precious lines Minor style. Let format_index handle the container too. Deprecate jsonschema.__version__. Drop support for Python 3.6. Build RTD with 3.8 And deprecate importing ErrorTree from jsonschema.validators. Sigh, flake8. Fix the schema path used by prefixItems errors. Remove a test that is only relevant for Py2+3 combined codebases. Slightly nicer error message for not. And simplify items as well. Fix items' instance path as well. Unskip more passing tests. Be furoious. Minor restructure of which html sphinx builder we build in the tox.ini. Remove resolve_local. Squashed 'json/' changes from eb619047f..ab0b1ae71 Skip more new leap second tests. Minor local variable tweaking. Add a pre-commit.ci badge. Actually add the badge. Squashed 'json/' changes from ab0b1ae71..20c1bb1d9 Depend on rfc3339-validator for format, even for non-nonGPL. Remove 3.6-related code. Add an explicit ASCII check. Always depend on the newer webcolors API. Use contextmanager.suppress to kill a bit of boilerplate. Kill an old testing helper now that it mostly lives in contextlib. Add a test for the 2019-09 $id lookup. Ensure message_for allows only one error. Properly set the failing validator for min/maxContains. Minor tweak to the OSSFuzz workflow. FileNotFoundError and FileExistsError in more places. Minor tweak of local variables. Remove 3.6-related code. Remove dead code. Remove more dead code. Deprecate jsonschema.RefResolver.in_scope. Bit of coverage tweaking. Remove RefResolver.scopes_stack_copy. Temporarily simplify _finditem, and unskip some tests. Suppress the KeyError in unknown type exception tracebacks. Set __qualname__ for validator classes. Test iter_errors independent of a draft validator. Remove 2-arg-using form of is_valid from tests. Add Validator.evolve, deprecating passing _schema to methods. Add test cases for error details hidden behind a $ref Style Deprecate jsonschema.validators.validators and .meta_schemas. Make it clear that support for draft2020-12 is partial unfortunately. Remove the added argument to jsonschema.validators.create. julian@Airm ● Style Add the Zenodo badge. Add the missing format dependency documentation. Re-allow the fuzz to fail. Squashed 'json/' changes from 20c1bb1d9..54440eab4 Skip the tests which tickle known bugs. Combine the CI and precommit workflows. Add support for Python 3.10. Ignore distutils warnings coming from pip which needs a release. Skip tests on 3.10 + Windows which fail for annoying compilation reasons. Try autocreating release notes. Sigh, back to full clones. Add 4.1.0 to the changelog. Slightly reword the tagline. Squashed 'json/' changes from 54440eab4..ba3a90534 Skip more more new leap second tests. Add v4.1.1 to the CHANGELOG. Remove the Patreon link. Squashed 'json/' changes from ba3a90534..329efe59c Add v4.1.2 to the CHANGELOG. in-tree-build is now the default in pip Set PYTHONWARNINGS only for the test run itself. Remove uses of SynchronousTestCase. Add some other links which will show up on PyPI. Squashed 'json/' changes from 329efe59c..9263b5250 Temporarily skip the failing tests from #866. Add in some missing internal draft2019-09 tests. v4.2.0 -> CHANGELOG v4.2.1 -> CHANGELOG Update requirements. Update the doc requirements. Minor CHANGELOG twiddling in prep for v4.3.0. Remove a last use of 'interface' instead of 'protocol'. Schemas can be bools too in newer drafts. Remove relative imports Shorten the protocol test. v4.3.1 -> CHANGELOG Privated. Add v4.3.2 to the changelog. v4.3.3 -> CHANGELOG Squashed 'json/' changes from 9263b5250..20fb14bde Skip the vocabulary tests that don't pass yet. Bump doc requirements. Squashed 'json/' changes from 20fb14bde..3731ed32a Run more things with 3.10 in CI. pypy3.7 -> 3.8 Run 3.11 in CI. Move the skips for Windows to the right version (3.10) Add the 3.11 classifier. v4.4.0 -> CHANGELOG Karthikeyan Singaravelan (1): Move python_requires to options for correct METADATA generation. Martin Zugnoni (1): Remove demo links from README file Milly (1): Fix test to windows path matching Nikita Kniazev (1): Move warnings to user context Rob Herring (1): validators: Fix dependentSchemas when instance is not an object Romain Taprest (14): [CLI] Remove heading-style comments [CLI] Improve --help message about --instance [CLI] Change write_valid_* into write_validation_*, less confusing. [tests] replace assertTrue by assertIn for nicer error [CLI] Remove mandatory \n at the end of plain error. [tests] Revert test_unsuccessful_validation_multiple_instances to its original behaviour. [CLI] Split CliOutputWriter to use object polymorphism [tests] Fix test_unsuccessful_validation [tests] Simplify check in test_none_instance [CLI] Fix compatibility with Python2 (about metaclass) [tests] Add test_unknown_output_format [CLI] Forbid --error-format if --output is not plain [tests] Add test_schema_validation [CLI] Switch public methods to private. RomainTT (24): [CLI] Improve the default display of the errors [CLI] Remove Linux-specific command for error delimiter [CLI] Remove incompatible character, replaced by '=' [CLI] General improvement of CLI output readability [CLI] Remove --human and add --output. Add more helper functions. [CLI] Improve stdin management and factorize more code [CLI] Add newline at end of oneline error [tests] Update existing CLI tests for the new implementation. [tests] remove external files for CLI tests [CLI] Fix STDIN management. [CLI] Replace JSONDecodeError by ValueError for 2.7 compat [CLI] Replace FileNotFoundError by IOError for 2.7 compat [tests] Remove unused import SchemaError [tests] Remove unused import os [tests] Finish to fix existing tests. [tests] Add new tests for the new CLI output formatting [CLI] Add pragma no cover for some safenet code [tests] Add some test to the cli parser, about None arguments Fix some flake8 style errors [CLI] Remove abstract class for output writers [CLI] Fix coding style errors in parse_args [tests] Remove use of unittest mocks. Add contextmanager capture_output instead [tests] Fix some linter errors [tests] Improve test_unknown_output and test_useless_error_format Sergey Fedoseev (2): remove uneeded backtick from docstring of validators.extend() Add release note about dropping support for Py 3.6 Stephen Rosen (13): Add `jsonschema.protocols.IValidator` Update docs/validate.rst Apply suggestions from code review Fix references to IValidator; add protocol tests Fix doc linting build Setup mypy in `tox -e typing` and get it to pass Fix typing_extensions import handling for mypy Parenthesize dict-tuple to pacify pypy3.7 parser Use future import for type annotations Fix nitpick error on type annotation Fix sphinx nitpick error arising from annotations Cleanup internal type annotation variables Omit 'if TYPE_CHECKING' blocks from coverage Talha Malik (4): Get input from commandline when instance(s) not provided Add mock for pypy Text stdin without mock Refactor to not leak global state Tomas Hrnciar (1): Remove shebangs from nonexecutable scripts Zac-HD (1): Handle multipleOf overflow davkor (13): Added fuzzer to be run with OSS-Fuzz Fix up syntax Removed os import fuzzer: fix remaining style CI complaints Add CI-fuzz to ensure fuzzers are run. Set CI fuzz to be 30 seconds. set continue on error in fuzzing CI job. Move continue-on-error to build step. Try adding an success statement in CI switch to checking steps output. Add suggestions from Zac Make fuzzer friendly for pytest. fixed fuzzer. dependabot[bot] (5): Bump lxml from 4.6.1 to 4.6.2 in /docs Bump urllib3 from 1.26.2 to 1.26.3 in /docs Bump jinja2 from 2.11.2 to 2.11.3 in /docs Bump pygments from 2.7.2 to 2.7.4 in /docs Bump urllib3 from 1.26.4 to 1.26.5 in /docs johnthagen (3): Add license file (COPYING) metadata to packaged distributions Rename COPYING file to LICENSE to allow pip-licenses to locate it Add tox/CI test for license file pre-commit-ci[bot] (5): [pre-commit.ci] pre-commit autoupdate [pre-commit.ci] auto fixes from pre-commit.com hooks [pre-commit.ci] pre-commit autoupdate [pre-commit.ci] pre-commit autoupdate [pre-commit.ci] pre-commit autoupdate willson-chen (13): fix bug about hostname by import fqdn regenerated the requirements.txt fix issue_669 --base-uri flag instead -r Add the specified base-uri function in the CLI modify style issues Fix the bug of processing arguments[validator] in parse_args Delete the failed test case add test case support for cli specifying --base-uri local or remote and add test cases Support --base-uri. and local full path and remote URI Optimize the input parameters of '--base-uri' Optimizing test cases and add invalid '--base-uri' test wilson chen (2): Modify the code based on review comments Resolve conflicts 杨鹏 (1): Update setup.cfg
…ersion 4.6.0 AleksaC (1): Add pre-commit hook config Andrew Scheller (1): Remove stray double-quote Bastien Vallet (1): [compat] Drop support of PY2 Damien Tardy-Panis (1): add json_path error attribute Dmitry Dygalo (6): perf: Undesired fallback to brute force container uniqueness check on certain input types perf: Cache reference lookups for subschemas perf: Use cached lookups for resolving fragments if the referent document is known perf: Replace the `Validator.evolve` method with an equivalent class attribute docs: Update changelog perf: Cache subschemas DrGFreeman (2): Revert "Temporarily skip the failing tests from #866." Ensure all items of array are checked for uniqueness Floyd Hightower (1): Add package_url for changelog Francisco Couzo (1): Delete unused dependency GermanoGuerrini (1): Avoid setup_requires offline installation issues Harald Nezbeda (35): Fixes validation for uri-template format python-jsonschema/jsonschema#686: Fixes unique and equal checks Add test for list_equal and dict_equal Add test case with custom sequance type Extend sequance and mapping check Use python 3.9 for coverage Remove pathlib2 compatibility code. python-jsonschema/jsonschema#782: Enable draft2020-12 test suite python-jsonschema/jsonschema#782: Split format and regular test cases on draft2020-12 python-jsonschema/jsonschema#782: Add dependentRequired and dependentSchemas validation python-jsonschema/jsonschema#782: Extend format check for draft2020-12, add duration format check python-jsonschema/jsonschema#782: Add checks for prefixItems, basic check for unevaluatedItems python-jsonschema/jsonschema#782: Adapt items to work with prefixItems python-jsonschema/jsonschema#782: Extend contains with minContains and maxContaints, add contains legacy validator python-jsonschema/jsonschema#782: Implements unevaluatedItems validations python-jsonschema/jsonschema#782: Implements unevaluatedProperties validations python-jsonschema/jsonschema#782: Extend implementation of ref python-jsonschema/jsonschema#782: Fixes ref validation priority python-jsonschema/jsonschema#782: Fixes ref resolver for folders python-jsonschema/jsonschema#782: Extend resolver for anchor python-jsonschema/jsonschema#782: Implements defs validations python-jsonschema/jsonschema#782: Add validation for uuid format python-jsonschema/jsonschema#782: Implements dynamicRef validations python-jsonschema/jsonschema#782: Load dependencies from legacy validators python-jsonschema/jsonschema#782: Fixes relative json pointer format validation for leading zero on digit python-jsonschema/jsonschema#782: Adapt validator test for draft2020-12, fixes code styles python-jsonschema/jsonschema#782: Fixes failing styles python-jsonschema/jsonschema#782: Update validation message for unevaluatedProperties and unevaluatedItems python-jsonschema/jsonschema#782: Refactor items behavior with prefixItems python-jsonschema/jsonschema#782: Resolve meta schema vocabularies from local cache python-jsonschema/jsonschema#782: Extend format tests python-jsonschema/jsonschema#782: Code clenaup, fixes validation messages python-jsonschema/jsonschema#782: Add compatibility to draft7 and older python-jsonschema/jsonschema#782: Remove ecmascript validation, extend dynamicRef skip description Extend dynamicRef keyword Hillel Arnold (7): improve date parsing unskip tests skip tests on python 3.6 fix formatting error better handling for Python 3.6 renames message and function use correct format check globally Hugo van Kemenade (2): No need to build universal wheels for Python 3-only Ignore build files Jacob D. Moorman (2): Remove outdated instructions for benching. Remove old instructions for comparing benchmarks. Jacob Moorman (1): Add test test-requirements to perf deps. Jesús García Crespo (2): Load schemas via importlib.resources Add version constraint to importlib_resources Jonathan Hashkes (1): fix prefixItems index reporting in ValidationError Julian Berman (406): Add setuptools-scm to the pyproject.toml. Squashed 'json/' changes from 689d2f28..0f344a69 Stop depending on setuptools. Include the pyproject.toml in sdists. Add a packaging GHA. And a coverage GHA. Hacky running of tox in CI. tox-venv for windows python -m pip install everywhere. Run on pull request. Development stuff isn't supported on Windows More python -m. Run daily. Use runner, which always exists even if we are not matrixed. Do this only on Windows, since 3.5's venv is super old. {envbindir}/python -> {envpython} Skip the rest of the obscurely failing Windows builds. Squashed 'json/' changes from 0f344a69..6c00de64 More -ms. Remove the appveyor badge. Just rely on pep517.check. Set a user agent for the Sphinx role. Bump doc requirements (via pip-compile) Tighten up the wording here. Might as well just inline it. Move to twine check. Fix the warnings emitted by twine check. Either twine check or pep517 doesn't work on Windows. Give up and make the coverage token public. Test directly with pip show. Sigh, bytes everywhere... Sigh, Windows somewhere... setup.py is dead. The Windows 3.6 is so old its pip/venv don't support PEP517. 2 is more than 1. Squashed 'json/' changes from 6c00de64..a863dbab Newer webcolors has a new API apparently. Sigh... but also drops Py2 compat. Squashed 'json/' changes from a863dbab..d52866b3 Maybe fix RTD. Check the changelog for valid reST. A 406 HTTP error, so hipster. Sigh, no shell. Squashed 'json/' changes from d52866b3..b70c5626 Py2 new-style class. Share the parsing error message. Minor style. assertTrue -> assertIn. attrs'ed. Bit clearer display of the error message in the actual source via dedent. Specify the type of error in pretty error messages. julian@Air ● Py3. Add/update some info on why format works the way it does. Add the upstream link here too. Squashed 'json/' changes from b70c5626..33791274 HTTP -> HTTPS for specification URIs. Test parsing errors for the plain output writer. Test parsing errors for stdin + the pretty output writer. Move where errors are written outside of cli writers. Only used in one place now. Follow how other places tend to indicate the path for stdin. Call all the args 'error' consistently. Clarify what parts of the CLI output are public. Slightly less exception for flow control. Move compat code to compat. Temporarily inline these, there will be a better way to combine them. Sigh, remove -q from spelling which is required to see the misspelled words. Sigh, remove -q from spelling which is required to see the misspelled words. Spelling. type=str is the default. Move the asserts out of the with block. Minor safety guard. Equivalent but consistent. Don't even bother keeping the whole list of valid/invalid. Minor style. Squash. Show full tracebacks for parsing errors in pretty output. And now bundle up stdout/stderr into an object. The validation already can handle not having instances. Error rather than fail for miswritten tests. Document that non-zero error codes are also not public. Make fake_open work the same across both test cases. DRY up cli.run calls. OK TestParser doesn't actually open files at all... Clarify the test case name. Transparent fixture names. DRY up asserting about exit codes. And dry up calling .getvalue. repr paths in plain CLI outputted errors. Note that --error-format is for schema and validation errors specifically. argparse does funny wrapping by default, so no need for continuations. Reorder the CLI tests. Squashed 'json/' changes from 33791274..8e2a05a9 Only the draft2019-09 draft actually uses an HTTPS URI. Remove the rest of the incorrectly added HTTPS for older metaschemas. Put the more important test case first. Separate out the tests that spawn subprocesses. Introduce TestCLI.assertOutput. Fill in the remaining missing tests. Mostly centralize the error handling for loading files. Less nest. Keep going when encountering invalid instance files. Bit shorter. Make sure no args shows help info. Fix Py3. Drop support for python3.5. Everything can cd now. Reorder the draft3 metaschema to match the upstream version. Reorder the draft4 metaschema to match the upstream version. Squashed 'json/' changes from 8e2a05a9..d17e1ba2 Squashed 'json/' changes from d17e1ba2..2576db4d Squashed 'json/' changes from 2576db4df..71f55b36b zeroTerminatedFloats moved to required. 2 is more than 1. Squashed 'json/' changes from 71f55b36b..361620ecf non-bmp-regex moved to optional Squashed 'json/' changes from 361620ecf..9d0e0eb31 Fix the broken reST. Just require full coverage from codecov. Maybe GHA doesn't actually run apt-get update before runs... Just remove the codecov badge entirely. Flail again on running update. Bump the docs requirements. Fix the benchmark runner for the whole suite. FilePath -> pathlib Sigh. Windows... Use utf-8 everywhere. Squashed 'json/' changes from 9d0e0eb..817b724 Add support for the comment field in upstream tests. Cope with the format test structure change upstream. Handle broken punycode in IDN hostnames. Skip some additional tests. Squashed 'json/' changes from 817b724b7..57001d26b Squashed 'json/' changes from 57001d26b..fc05651cc Don't include `if` in the schema_path of errors. Squashed 'json/' changes from fc05651cc..40601f628 Shorten the lead-in sentence. The mailing list isn't really monitored, so remove it from the README. Squashed 'json/' changes from 40601f6..ea41553 Skip the complex email validation tests. Format passes by default, so only skip invalid tests when missing the checker. Same for content type validation, skip only the invalid ones. Remove the 3 :: Only classifier. Drop building the package on Py2 in CI. No more need for pathlib2 without Py2. Ref Py3 in the docs. Kill jsonschema.compat as well. Remove the reference to jsonschema.compat in the compatibility policy. Enable automatic section heading labels in the docs. Pick a format checker that has no external dep now that fqdn exists. Run CI against all setuptools extras separately. Unbreak non-format-setuptools-extra-installed jsonschema. isorted. Kill Py2 in the sphinx role. Trailing whitespace pre-commit setup. Bump the version in the notebooks.io requirements. Squashed 'json/' changes from ea415537..86f52b87 Skip more tests for #686. Validate IP addresses using the ipaddress module. Squashed 'json/' changes from 86f52b87..fce9e9b3 Temporarily skip the tests that will be unskipped by #722. Simplify the schemas in the tests for CLI validator detection. Move the latest validator CLI test to where it must go now. Remove the rest of the notebooks.ai related resources. And two last ones... Update pre-commit hooks. Sigh, this appears to be a regex, not exact match, so it was ignoring everything. Minor doc formatting. Remove docformatter, it's too unwieldy. Run pre-commit in CI. Remove the Py2 coding declaration. Bump doc requirements (via pip-compile) Use the longer form of the CLI option for clarity. Remove outdated release notes. Be able to run coverage on all toxenvs. Whoops, send coverage to codecov again. Squashed 'json/' changes from fce9e9b3..21555a85 Squashed 'json/' changes from 21555a85..96742ba3 Sigh, ugly, but assrtRegexpMatches is deprecated. Temporarily skip the failing tests for #743. pep517.build is dead or dying. Don't fail when codecov.io flakes. Minor formatting and wording. And now tidy up the tests. Test on Py39. Tidy up the URLs in the docutils role. Vanilla flake8. Bump the meaningless role version number. Cope with IPv6Address now allowing zone IDs in 3.9. Work around danielrichman/strict-rfc3339#5. Squashed 'json/' changes from 96742ba3..3627cc11 Actually exercise Validator.is_type on an unknown type. Make utils.indent exit stage left. Sigh more spelling. Doc requirements bump. Run more toxenvs on 3.9. Go back to skipping the windows envs that are annoying to fix. Update pre-commit. Update pre-commit. Unskip most of the skipped windows builds. Test via PyPy3.7 No, don't use venv. Try the Twisted prerelease, which hopefully obviates installing IOCP. Reskip the PyPy-on-Windows tests. Minor style fixes. Move the fuzz workflow to fuzz.yml. Add language, remove dry-run: false which is the default. Module docstring Go back to fuzz_* naming. Ignore the fuzz module from coverage for now as well. Extra newline. Minor style fixes. Bump lxml (and the rest of the doc requirements). Squashed 'json/' changes from 3627cc1..15ec577 Allowing leading zeros is allowed by the JSON Schema spec... Skip tests that actually rely on location-independent IDs. Install package for perf toxenvs too. Fix IDs of remotes in the test suite on Windows. Squashed 'json/' changes from 15ec577f..09fd353f Unsupport leap seconds. Style. Remove default types (in favor of the TypeChecker API). Evade the pip safety warning. v4.0.0a1 Add #746 to the changelog. Squashed 'json/' changes from 09fd353f..0aefbb3d Skip the tests which tickle known bugs. Revert an accidentally removed test. Squashed 'json/' changes from 0aefbb3d..1326f36e And skip a few more new ref tests. Squashed 'json/' changes from 1326f36e..17fa9589 Rename the test skip (to match the renamed tests). Install with --in-tree-build in the tox.ini. Don't allow warnings during test runs. Tests, not coverage toxenv. Ignore another warning from importlib_metadata. And one from setuptools_scm from shallow git clones... Another try at filtering the setuptools_scm warning. Twisted 21.2.0 was released. Hopefully the last warning, which seems to only fire on PyPy. Proper syntax. Fix the DeprecationWarning from importing abcs from collections. Test only through _util.equal. Simplify the implementations of the equal checks. Minor rewording of the docstring. Add #686 to the changelog. Squashed 'json/' changes from 17fa9589..6327a3bc Squashed 'json/' changes from 6327a3bc..fd0aa9f8 Tidy the docstring slightly. Fix missing trailing commas. Squashed 'json/' changes from fd0aa9f8..f9acc454 Squashed 'json/' changes from f9acc454..bb2a20d3 Fix the UUID format. Remove some u prefixes leftover from Py2. Fix the names of internal test cases for newer drafts. Freenode is dead. Spelling Bump doc requirements. Don't check schemas in test suite runs. Fix Draft2020-12Validator's name to be Draft202012Validator. And add it to the docs. Remove the $defs validator. May as well add support for Draft 2019 as well. Update the draft info in the README. Unnecessary `len`s. Add the drafts to the changelog. Add a linter to ensure single quotes aren't added. And a linter to forbid slash-line-continuation. Remove more unneeded u prefixes. Squashed 'json/' changes from bb2a20d3e..878b0ad5f Run the unicode and float-overflow optional tests on all drafts. Tidy up validation error messages, particularly using f-strings. Remove types_msg which implements really old draft-3 behavior. Reimplement contains. More strict style, now via bugbear. Squashed 'json/' changes from 878b0ad5f..eb619047f yield from everywhere, saving precious lines Minor style. Let format_index handle the container too. Deprecate jsonschema.__version__. Drop support for Python 3.6. Build RTD with 3.8 And deprecate importing ErrorTree from jsonschema.validators. Sigh, flake8. Fix the schema path used by prefixItems errors. Remove a test that is only relevant for Py2+3 combined codebases. Slightly nicer error message for not. And simplify items as well. Fix items' instance path as well. Unskip more passing tests. Be furoious. Minor restructure of which html sphinx builder we build in the tox.ini. Remove resolve_local. Squashed 'json/' changes from eb619047f..ab0b1ae71 Skip more new leap second tests. Minor local variable tweaking. Add a pre-commit.ci badge. Actually add the badge. Squashed 'json/' changes from ab0b1ae71..20c1bb1d9 Depend on rfc3339-validator for format, even for non-nonGPL. Remove 3.6-related code. Add an explicit ASCII check. Always depend on the newer webcolors API. Use contextmanager.suppress to kill a bit of boilerplate. Kill an old testing helper now that it mostly lives in contextlib. Add a test for the 2019-09 $id lookup. Ensure message_for allows only one error. Properly set the failing validator for min/maxContains. Minor tweak to the OSSFuzz workflow. FileNotFoundError and FileExistsError in more places. Minor tweak of local variables. Remove 3.6-related code. Remove dead code. Remove more dead code. Deprecate jsonschema.RefResolver.in_scope. Bit of coverage tweaking. Remove RefResolver.scopes_stack_copy. Temporarily simplify _finditem, and unskip some tests. Suppress the KeyError in unknown type exception tracebacks. Set __qualname__ for validator classes. Test iter_errors independent of a draft validator. Remove 2-arg-using form of is_valid from tests. Add Validator.evolve, deprecating passing _schema to methods. Add test cases for error details hidden behind a $ref Style Deprecate jsonschema.validators.validators and .meta_schemas. Make it clear that support for draft2020-12 is partial unfortunately. Remove the added argument to jsonschema.validators.create. julian@Airm ● Style Add the Zenodo badge. Add the missing format dependency documentation. Re-allow the fuzz to fail. Squashed 'json/' changes from 20c1bb1d9..54440eab4 Skip the tests which tickle known bugs. Combine the CI and precommit workflows. Add support for Python 3.10. Ignore distutils warnings coming from pip which needs a release. Skip tests on 3.10 + Windows which fail for annoying compilation reasons. Try autocreating release notes. Sigh, back to full clones. Add 4.1.0 to the changelog. Slightly reword the tagline. Squashed 'json/' changes from 54440eab4..ba3a90534 Skip more more new leap second tests. Add v4.1.1 to the CHANGELOG. Remove the Patreon link. Squashed 'json/' changes from ba3a90534..329efe59c Add v4.1.2 to the CHANGELOG. in-tree-build is now the default in pip Set PYTHONWARNINGS only for the test run itself. Remove uses of SynchronousTestCase. Add some other links which will show up on PyPI. Squashed 'json/' changes from 329efe59c..9263b5250 Temporarily skip the failing tests from #866. Add in some missing internal draft2019-09 tests. v4.2.0 -> CHANGELOG v4.2.1 -> CHANGELOG Update requirements. Update the doc requirements. Minor CHANGELOG twiddling in prep for v4.3.0. Remove a last use of 'interface' instead of 'protocol'. Schemas can be bools too in newer drafts. Remove relative imports Shorten the protocol test. v4.3.1 -> CHANGELOG Privated. Add v4.3.2 to the changelog. v4.3.3 -> CHANGELOG Squashed 'json/' changes from 9263b5250..20fb14bde Skip the vocabulary tests that don't pass yet. Bump doc requirements. Squashed 'json/' changes from 20fb14bde..3731ed32a Run more things with 3.10 in CI. pypy3.7 -> 3.8 Run 3.11 in CI. Move the skips for Windows to the right version (3.10) Add the 3.11 classifier. v4.4.0 -> CHANGELOG Minor style. Bump the default type checker and format checker. Fix style issues. Update hyperlinks from the GitHub organization move. Ignore a style warning from bugbear. Skip annoying compiling Windows builds on 3.11 as well. Update pre-commit hooks. Squashed 'json/' changes from 3731ed32a..060caae0d Skip more complex email validation tests. Add sponsorship links to the PyPI page. Unskip two passing tests. Disable 3.11 CI until pypa/setuptools#3274 is fixed. v4.5.0 -> CHANGELOG Revert "Extend dynamicRef keyword" Squashed 'json/' changes from 060caae0d..387d690ae Skip the failing unevaluated* tests until #949 is merged. Revert "Merge pull request #954 from ssbarnea/fix/py.typed" Update docs requirements. Update various GHA versions. Modernize the packaging setup via PEP 621 and Hatch. Re-enable Python 3.11 testing in CI. Let RTD be authoritative about what the default doc version is. Combine the CI and packaging workflows. Make project.urls be valid URLs. Add basic CONTRIBUTING guidelines. Ignore a deprecation warning coming from pkg_resources on 3.11 Ignore the badge URLs, they seem super unreliable from CI. v4.6.0 -> CHANGELOG Karthikeyan Singaravelan (1): Move python_requires to options for correct METADATA generation. Laurie O (2): Only validate unevaluated props/items on applicable types Revert "Skip the failing unevaluated* tests until #949 is merged." Martin Zugnoni (1): Remove demo links from README file Milly (1): Fix test to windows path matching Nikita Kniazev (1): Move warnings to user context Rob Herring (1): validators: Fix dependentSchemas when instance is not an object Romain Taprest (14): [CLI] Remove heading-style comments [CLI] Improve --help message about --instance [CLI] Change write_valid_* into write_validation_*, less confusing. [tests] replace assertTrue by assertIn for nicer error [CLI] Remove mandatory \n at the end of plain error. [tests] Revert test_unsuccessful_validation_multiple_instances to its original behaviour. [CLI] Split CliOutputWriter to use object polymorphism [tests] Fix test_unsuccessful_validation [tests] Simplify check in test_none_instance [CLI] Fix compatibility with Python2 (about metaclass) [tests] Add test_unknown_output_format [CLI] Forbid --error-format if --output is not plain [tests] Add test_schema_validation [CLI] Switch public methods to private. RomainTT (24): [CLI] Improve the default display of the errors [CLI] Remove Linux-specific command for error delimiter [CLI] Remove incompatible character, replaced by '=' [CLI] General improvement of CLI output readability [CLI] Remove --human and add --output. Add more helper functions. [CLI] Improve stdin management and factorize more code [CLI] Add newline at end of oneline error [tests] Update existing CLI tests for the new implementation. [tests] remove external files for CLI tests [CLI] Fix STDIN management. [CLI] Replace JSONDecodeError by ValueError for 2.7 compat [CLI] Replace FileNotFoundError by IOError for 2.7 compat [tests] Remove unused import SchemaError [tests] Remove unused import os [tests] Finish to fix existing tests. [tests] Add new tests for the new CLI output formatting [CLI] Add pragma no cover for some safenet code [tests] Add some test to the cli parser, about None arguments Fix some flake8 style errors [CLI] Remove abstract class for output writers [CLI] Fix coding style errors in parse_args [tests] Remove use of unittest mocks. Add contextmanager capture_output instead [tests] Fix some linter errors [tests] Improve test_unknown_output and test_useless_error_format Sergey Fedoseev (2): remove uneeded backtick from docstring of validators.extend() Add release note about dropping support for Py 3.6 Sorin Sbarnea (2): Ensure proper sorting of list in error message Mark library as typed (PEP-561) Stephen Rosen (14): Add `jsonschema.protocols.IValidator` Update docs/validate.rst Apply suggestions from code review Fix references to IValidator; add protocol tests Fix doc linting build Setup mypy in `tox -e typing` and get it to pass Fix typing_extensions import handling for mypy Parenthesize dict-tuple to pacify pypy3.7 parser Use future import for type annotations Fix nitpick error on type annotation Fix sphinx nitpick error arising from annotations Cleanup internal type annotation variables Omit 'if TYPE_CHECKING' blocks from coverage Add v4.5.1 to changelog Talha Malik (4): Get input from commandline when instance(s) not provided Add mock for pypy Text stdin without mock Refactor to not leak global state Tibor Völcker (2): Use standard .gitignore Add FORMAT_CHECKER Tomas Hrnciar (1): Remove shebangs from nonexecutable scripts Zac-HD (1): Handle multipleOf overflow davkor (13): Added fuzzer to be run with OSS-Fuzz Fix up syntax Removed os import fuzzer: fix remaining style CI complaints Add CI-fuzz to ensure fuzzers are run. Set CI fuzz to be 30 seconds. set continue on error in fuzzing CI job. Move continue-on-error to build step. Try adding an success statement in CI switch to checking steps output. Add suggestions from Zac Make fuzzer friendly for pytest. fixed fuzzer. dependabot[bot] (5): Bump lxml from 4.6.1 to 4.6.2 in /docs Bump urllib3 from 1.26.2 to 1.26.3 in /docs Bump jinja2 from 2.11.2 to 2.11.3 in /docs Bump pygments from 2.7.2 to 2.7.4 in /docs Bump urllib3 from 1.26.4 to 1.26.5 in /docs johnthagen (3): Add license file (COPYING) metadata to packaged distributions Rename COPYING file to LICENSE to allow pip-licenses to locate it Add tox/CI test for license file pre-commit-ci[bot] (6): [pre-commit.ci] pre-commit autoupdate [pre-commit.ci] auto fixes from pre-commit.com hooks [pre-commit.ci] pre-commit autoupdate [pre-commit.ci] pre-commit autoupdate [pre-commit.ci] pre-commit autoupdate [pre-commit.ci] auto fixes from pre-commit.com hooks willson-chen (13): fix bug about hostname by import fqdn regenerated the requirements.txt fix issue_669 --base-uri flag instead -r Add the specified base-uri function in the CLI modify style issues Fix the bug of processing arguments[validator] in parse_args Delete the failed test case add test case support for cli specifying --base-uri local or remote and add test cases Support --base-uri. and local full path and remote URI Optimize the input parameters of '--base-uri' Optimizing test cases and add invalid '--base-uri' test wilson chen (2): Modify the code based on review comments Resolve conflicts 杨鹏 (1): Update setup.cfg
Would be great to have support for the v2020-12 draft. 😄
The text was updated successfully, but these errors were encountered: