From 29ad5e95f6a90c4ad07d45bbdbb387eb28ee80b5 Mon Sep 17 00:00:00 2001 From: Stefan Binder Date: Sat, 7 Jan 2023 16:04:23 +0000 Subject: [PATCH] Fix regression introduced in #2771 for older jsonschema versions which did not yet make format checker accessible on validator class --- altair/utils/schemapi.py | 7 ++++--- tools/schemapi/schemapi.py | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/altair/utils/schemapi.py b/altair/utils/schemapi.py index c09144ddc..b94017c94 100644 --- a/altair/utils/schemapi.py +++ b/altair/utils/schemapi.py @@ -62,9 +62,10 @@ def validate_jsonschema(spec, schema, rootschema=None): # No resolver is necessary if the schema is already the full schema resolver = None - validator = validator_cls( - schema, format_checker=validator_cls.FORMAT_CHECKER, resolver=resolver - ) + validator_kwargs = {"resolver": resolver} + if hasattr(validator_cls, "FORMAT_CHECKER"): + validator_kwargs["format_checker"] = validator_cls.FORMAT_CHECKER + validator = validator_cls(schema, **validator_kwargs) error = jsonschema.exceptions.best_match(validator.iter_errors(spec)) if error is not None: raise error diff --git a/tools/schemapi/schemapi.py b/tools/schemapi/schemapi.py index 70aed2224..73e530fc8 100644 --- a/tools/schemapi/schemapi.py +++ b/tools/schemapi/schemapi.py @@ -60,9 +60,10 @@ def validate_jsonschema(spec, schema, rootschema=None): # No resolver is necessary if the schema is already the full schema resolver = None - validator = validator_cls( - schema, format_checker=validator_cls.FORMAT_CHECKER, resolver=resolver - ) + validator_kwargs = {"resolver": resolver} + if hasattr(validator_cls, "FORMAT_CHECKER"): + validator_kwargs["format_checker"] = validator_cls.FORMAT_CHECKER + validator = validator_cls(schema, **validator_kwargs) error = jsonschema.exceptions.best_match(validator.iter_errors(spec)) if error is not None: raise error