Added
- Support for custom meta-schemas. Schemas with custom
$schemaURIs can now be used by registering their meta-schemas via theregistryparameter invalidator_for(). #664 registryparameter tometa.is_valid()andmeta.validate()for validating schemas against custom meta-schemas.- Type stubs for the
metamodule. - PyPy 3.11 support. #309
- Support for arbitrary-precision numbers, including large integers and high-precision decimals that exceed standard floating-point limits. #103
- Support for HTTPS
$schemaURIs for drafts 04, 06, and 07 (e.g.,https://json-schema.org/draft-07/schema). #802
Changed
- BREAKING:
meta.is_valid()andmeta.validate()now raiseReferencingErrorfor unknown$schemavalues instead of defaulting to Draft 2020-12. Use theregistryparameter to validate against custom meta-schemas. - Migrated to abi3, so a single wheel per platform works on all supported 3.10+ interpreters.
Removed
- Support for Python 3.8 & 3.9.
Performance
required: short-circuit when the instance object has fewer properties than required keys.- Arbitrary precision support is always enabled. Performance impact is negligible for most schemas, with ~2x slowdown only for number-heavy instances (e.g., GeoJSON).