#1678 Add back compatibility with jsonschema <3.0.0
Merged 2 years ago by lsedlar. Opened 2 years ago by lsedlar.
lsedlar/pungi jsonschema-compat  into  master

file modified
+24 -11
@@ -227,9 +227,19 @@ 

      DefaultValidator = _extend_with_default_and_alias(

          jsonschema.Draft4Validator, offline=offline

      )

-     validator = DefaultValidator(

-         schema,

-     )

+ 

+     if hasattr(jsonschema.Draft4Validator, "TYPE_CHECKER"):

+         # jsonschema >= 3.0 has new interface for checking types

+         validator = DefaultValidator(schema)

+     else:

+         validator = DefaultValidator(

+             schema,

+             {

+                 "array": (tuple, list),

+                 "regex": six.string_types,

+                 "url": six.string_types,

+             },

+         )

      errors = []

      warnings = []

      for error in validator.iter_errors(config):
@@ -444,15 +454,18 @@ 

                  context=all_errors,

              )

  

-     def is_array(checker, instance):

-         return isinstance(instance, (tuple, list))

+     kwargs = {}

+     if hasattr(validator_class, "TYPE_CHECKER"):

+         # jsonschema >= 3

+         def is_array(checker, instance):

+             return isinstance(instance, (tuple, list))

  

-     def is_string_type(checker, instance):

-         return isinstance(instance, six.string_types)

+         def is_string_type(checker, instance):

+             return isinstance(instance, six.string_types)

  

-     type_checker = validator_class.TYPE_CHECKER.redefine_many(

-         {"array": is_array, "regex": is_string_type, "url": is_string_type}

-     )

+         kwargs["type_checker"] = validator_class.TYPE_CHECKER.redefine_many(

+             {"array": is_array, "regex": is_string_type, "url": is_string_type}

+         )

  

      return jsonschema.validators.extend(

          validator_class,
@@ -464,7 +477,7 @@ 

              "additionalProperties": _validate_additional_properties,

              "anyOf": _validate_any_of,

          },

-         type_checker=type_checker,

+         **kwargs

      )

  

  

rebased onto 88f8418c460169e9980e1a7416df1eecaf868310

2 years ago

rebased onto 1282f69bbf8023efbcaf4b354fd1e4de0782065d

2 years ago

rebased onto 25c7232239e1bbe5ca46b6aa80275c35659f980e

2 years ago

rebased onto 98c5ae88eb9ce7e07994e6dda1d5fae68283f351

2 years ago

Looks good to me. :thumbsup:

rebased onto e888e76

2 years ago

Pull-Request has been merged by lsedlar

2 years ago
Metadata