Commit Graph

572 Commits

Author SHA1 Message Date
Dmitry Dygalo abeae1eb25 refactor: Clarify lifetime naming in `Validate::validate` 2021-12-07 12:28:47 +01:00
Dmitry Dygalo 64792f39c4 perf: Remove the `schema` argument from all methods of the `Validate` trait 2021-12-07 11:43:48 +01:00
Dmitry Dygalo e2b77fc705 perf: Add special cases for arrays with 2 and 3 items in the `uniqueItems` keyword implementation 2021-12-06 21:50:22 +01:00
Dmitry Dygalo 87bce86efe perf: Optimize the `multipleOf` implementation 2021-12-06 18:25:23 +01:00
Dmitry Dygalo 691ec3e2ac perf: Remove unused private field in `JSONSchema` 2021-12-06 18:07:18 +01:00
Dmitry Dygalo 0aaff827b5
chore(python): Release 0.13.1
Signed-off-by: Dmitry Dygalo <dmitry@dygalo.dev>
2021-11-10 16:01:18 +01:00
Blayne Chard 0515c955a4
feat: convert python enum into raw values before validating (#317)
* feat: convert python enum into raw values before validating

* refactor: apply pull request comments
2021-11-09 20:49:04 +01:00
Dmitry Dygalo 527cf797cf
docs(python): Update benchmarks 2021-11-04 13:11:17 +01:00
Dmitry Dygalo 88156ada20
chore(python): Release 0.13.0
Signed-off-by: Dmitry Dygalo <dmitry@dygalo.dev>
2021-11-04 12:35:37 +01:00
Dmitry Dygalo 2ea835a442
chore(rust): Release 0.13.2
Signed-off-by: Dmitry Dygalo <dmitry@dygalo.dev>
2021-11-04 12:32:57 +01:00
Dmitry Dygalo aa7b277933
docs: Add missing changelog entry
Signed-off-by: Dmitry Dygalo <dmitry@dygalo.dev>
2021-11-04 12:29:55 +01:00
Blayne Chard 9867b383a6 refactor: split list and tuple serialization 2021-11-04 12:29:45 +01:00
Blayne Chard b88262bb14 test: validate that named tuples error 2021-11-04 12:29:45 +01:00
Blayne Chard a4dc339635 refactor: expand tests around arrays and tuples 2021-11-04 12:29:45 +01:00
Blayne Chard 3ae1db54de refactor: convert tuple size to 0 2021-11-04 12:29:45 +01:00
Blayne Chard 045d4aaab5 refactor: avoid serialization logic duplication 2021-11-04 12:29:45 +01:00
Blayne Chard 734445856b fix: convert tuples into lists 2021-11-04 12:29:45 +01:00
Alex Good 0f050b860e feat: expose methods to examine OutputUnits
The `Output::basic` method returns a BasicOutput. Prior to this patch the
only way to examine the contents of this data structure was to serialize
it to JSON. This patch adds methods to examine the outputs from Rust, as
well as documentation on how to do so.

Signed-off-by: Alex Good <alex@memoryandthought.me>
2021-11-03 18:50:50 +01:00
Dmitry Dygalo 80c5af90c4
docs: Update support notes
Signed-off-by: Dmitry Dygalo <dmitry@dygalo.dev>
2021-10-29 17:53:44 +02:00
Dmitry Dygalo a95a754496 feat(python): A way to compile schemas from a string
Signed-off-by: Dmitry Dygalo <dmitry@dygalo.dev>
2021-10-29 17:50:43 +02:00
Rafael Caricio 0e150641e1 feat: Implement `prefixItems` keyword 2021-10-29 14:54:13 +02:00
Dmitry Dygalo f8b8ec0d6c
docs: Update README
Signed-off-by: Dmitry Dygalo <dmitry@dygalo.dev>
2021-10-28 11:48:18 +02:00
Dmitry Dygalo 8de1cb3400
fix(python): Wrong path to schemas in benchmarks
Signed-off-by: Dmitry Dygalo <dmitry@dygalo.dev>
2021-10-28 11:46:24 +02:00
Dmitry Dygalo 2ce396b29b
chore(rust): Release 0.13.1
Signed-off-by: Dmitry Dygalo <dmitry@dygalo.dev>
2021-10-28 11:17:27 +02:00
Dmitry Dygalo 14cb8994ae
chore: Replace manual Default impl for JSONPointer with a derived one
Signed-off-by: Dmitry Dygalo <dmitry@dygalo.dev>
2021-10-28 11:12:52 +02:00
Dmitry Dygalo 4f419af154
docs: Missing changelog entry
Signed-off-by: Dmitry Dygalo <dmitry@dygalo.dev>
2021-10-28 11:12:00 +02:00
Dmitry Dygalo 41aece9324
fix: Missing derive from serde
Signed-off-by: Dmitry Dygalo <dmitry@dygalo.dev>
2021-10-28 11:05:42 +02:00
Dmitry Dygalo 617fd21406
docs(rust): Update benchmark data
Signed-off-by: Dmitry Dygalo <dmitry@dygalo.dev>
2021-10-28 10:26:03 +02:00
Dmitry Dygalo 63cdb32485
chore(rust): Release 0.13.0
Signed-off-by: Dmitry Dygalo <dmitry@dygalo.dev>
2021-10-28 09:41:27 +02:00
Dmitry Dygalo fe4ce6703b
docs: Update readme
Signed-off-by: Dmitry Dygalo <dmitry@dygalo.dev>
2021-10-28 09:36:49 +02:00
Dmitry Dygalo c44528d090
docs: Update changelog
Signed-off-by: Dmitry Dygalo <dmitry@dygalo.dev>
2021-10-28 09:26:30 +02:00
LongYinan a8c42bca1c feat(jsonschema): forward reqwest features 2021-10-28 09:22:00 +02:00
Dmitry Dygalo c5dd4f3a47 chore(python): Set proper __module__ attribute to JSONSchema
Signed-off-by: Dmitry Dygalo <dmitry@dygalo.dev>
2021-10-27 21:09:49 +02:00
Dmitry Dygalo 1388a74e74
docs: Adjust changelogs
Signed-off-by: Dmitry Dygalo <dmitry@dygalo.dev>
2021-10-27 20:49:17 +02:00
Dmitry Dygalo cd96cc82c1 perf: Use bytecount for some validators
Signed-off-by: Dmitry Dygalo <dmitry@dygalo.dev>
2021-10-27 17:49:21 +02:00
Dmitry Dygalo 8179513802 chore: Remove unnecessary closures 2021-10-22 17:21:25 +02:00
Dmitry Dygalo b981e589f4 chore: Make tests compile without the draft201909 feature
Signed-off-by: Dmitry Dygalo <dmitry@dygalo.dev>
2021-10-22 09:29:23 +02:00
Blayne Chard 0430432957
feat(python): support iterating all errors with `iter_errors` (#296)
* feat(python): support iterating all errors with iter_errors

* docs: move changelog into the python changelog

* test: parameterise tests to validate both iter_errors functions

* refactor: fixup pr comments

* docs: remove excess line
2021-10-22 08:50:20 +02:00
Dmitry Dygalo 1fb8f3c4c7
docs: Add a missing changelog entry
Signed-off-by: Dmitry Dygalo <dmitry@dygalo.dev>
2021-10-21 11:47:52 +02:00
Dmitry Dygalo 4992676eb5 chore: Update dependencies
Signed-off-by: Dmitry Dygalo <dmitry@dygalo.dev>
2021-10-21 11:45:28 +02:00
plaxi0s d633ba773d feat: implemented dependentRequired and dependentSchemas keywords 2021-10-21 10:34:17 +02:00
Dmitry Dygalo b0d0af1f0b
docs: Add a missing changelog entry
Signed-off-by: Dmitry Dygalo <dmitry@dygalo.dev>
2021-10-21 10:06:55 +02:00
Dmitry Dygalo b57debf7fc chore: Unify benchmark names
Signed-off-by: Dmitry Dygalo <dmitry@dygalo.dev>
2021-10-21 10:03:35 +02:00
Alex Good 625c66ee25 fix: Switch from chrono to time 0.3.3
Due to a CVE in chrono[0] we switch to time 0.3.3. Chrono actually
depends on an older, similarly vulnerable version of `time` but newer
versions of `time` seem to offer everything we need to validate dates
and times anyway.

[0] https://github.com/rustsec/advisory-db/pull/1082

Signed-off-by: Alex Good <alex@memoryandthought.me>
2021-10-20 17:40:03 +02:00
Dmitry Dygalo 8d1d598413
docs: Add a missing changelog entry
Signed-off-by: Dmitry Dygalo <dadygalo@gmail.com>
2021-10-09 09:59:56 +02:00
plaxi0s 70e4d6103d perf: Reduce the size of PrimitiveTypesBitMapIterator 2021-10-09 09:52:17 +02:00
Dmitry Dygalo 6da868dd31 chore: Code simplification
Signed-off-by: Dmitry Dygalo <dadygalo@gmail.com>
2021-10-06 09:49:02 +02:00
Maxim Zhiburt 57c9bca007
chore: Replace `ValidationError::schema` with custom errors
* Replace ValidationError::schema with custom errors

* Fix cargo fmt

* Remove ValidationError::schema function

* Update changelog

* Fix ErrorValidation arguments

Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>

* Fix more ValidationError calls

Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>

* Fix issues found in PR

Co-authored-by: dmitry.dygalo <dadygalo@gmail.com>
Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>

* Fix issues found

Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>
Co-Authored-by: dmitry.dygalo <dadygalo@gmail.com>

Co-authored-by: dmitry.dygalo <dadygalo@gmail.com>
2021-10-06 08:59:54 +02:00
Jacob Mischka aaadd99b2c feat: Add option to disable processing the `format` keyword
Prior to draft versions 2019-09, format validation is enabled by default
(though should be able to be disabled), and vice versa afterword.
This patch adds `should_validate_formats` to CompilationOptions to force
the option one way or another.

If not specified, it will fallback to a default based on the draft
version (enabled by default before draft 2019-09).

Closes #261
2021-10-02 20:46:46 +02:00
Jacob Mischka 86bb87fa66 docs: Fix typo in jsonschema-test-suite README 2021-10-02 20:46:46 +02:00