- Support for Draft 6
- Draft 6 is now the default
- New
TypeChecker
object for more complex type definitions (and overrides) - Falling back to isodate for the date-time format checker is no longer attempted, in accordance with the specification
- Support for Python 2.6 has been dropped.
- Improve a few error messages for
uniqueItems
(#224) andadditionalProperties
(#317) - Fix an issue with
ErrorTree
's handling of multiple errors (#288)
- Improved performance on CPython by adding caching around ref resolution (#203)
- Added a CLI (#134)
- Added absolute path and absolute schema path to errors (#120)
- Added
relevance
- Meta-schemas are now loaded via
pkgutil
- Added
by_relevance
andbest_match
(#91) - Fixed
format
to allow adding formats for non-strings (#125) - Fixed the
uri
format to reject URI references (#131)
- Compile the host name regex (#127)
- Allow arbitrary objects to be types (#129)
- Support RFC 3339 datetimes in conformance with the spec
- Fixed error paths for additionalItems + items (#122)
- Fixed wording for min / maxProperties (#117)
- Added
create
andextend
tojsonschema.validators
- Removed
ValidatorMixin
- Fixed array indices ref resolution (#95)
- Fixed unknown scheme defragmenting and handling (#102)
- Better error tracebacks (#83)
- Raise exceptions in
ErrorTree
s for keys not in the instance (#92) - __cause__ (#93)
- More attributes for ValidationError (#86)
- Added
ValidatorMixin.descend
- Fixed bad
RefResolutionError
message (#82)
- Canonicalize URIs (#70)
- Allow attaching exceptions to
format
errors (#77)
- Support for Draft 4
- Support for format
- Longs are ints too!
- Fixed a number of issues with
$ref
support (#66) - Draft4Validator is now the default
ValidationError.path
is now in sequential order- Added
ValidatorMixin
Full support for JSON References
validates
for registering new validatorsDocumentation
Bugfixes
- uniqueItems not so unique (#34)
- Improper any (#47)
- Partial support for (JSON Pointer)
$ref
- Deprecations
Validator
is replaced byDraft3Validator
with a slightly different interfacevalidator(meta_validate=False)
- Bugfixes
- Issue #30 - Wrong behavior for the dependencies property validation
- Fix a miswritten test
- Bugfixes
- Issue #17 - require path for error objects
- Issue #18 - multiple type validation for non-objects
Preliminary support for programmatic access to error details (Issue #5). There are certainly some corner cases that don't do the right thing yet, but this works mostly.
In order to make this happen (and also to clean things up a bit), a number of deprecations are necessary:
stop_on_error
is deprecated inValidator.__init__
. UseValidator.iter_errors()
instead.number_types
andstring_types
are deprecated there as well. Usetypes={"number" : ..., "string" : ...}
instead.meta_validate
is also deprecated, and instead is now accepted as an argument tovalidate
,iter_errors
andis_valid
.
A bugfix or two
- Default for unknown types and properties is now to not error (consistent with the schema).
- Python 3 support
- Removed dependency on SecureTypes now that the hash bug has been resolved.
- "Numerous bug fixes" -- most notably, a divisibleBy error for floats and a bunch of missing typechecks for irrelevant properties.