Spaces:
Paused
Paused
| """ | |
| An implementation of JSON Schema for Python. | |
| The main functionality is provided by the validator classes for each of the | |
| supported JSON Schema versions. | |
| Most commonly, `jsonschema.validators.validate` is the quickest way to simply | |
| validate a given instance under a schema, and will create a validator | |
| for you. | |
| """ | |
| import warnings | |
| from jsonschema._format import FormatChecker | |
| from jsonschema._types import TypeChecker | |
| from jsonschema.exceptions import SchemaError, ValidationError | |
| from jsonschema.validators import ( | |
| Draft3Validator, | |
| Draft4Validator, | |
| Draft6Validator, | |
| Draft7Validator, | |
| Draft201909Validator, | |
| Draft202012Validator, | |
| validate, | |
| ) | |
| def __getattr__(name): | |
| if name == "__version__": | |
| warnings.warn( | |
| "Accessing jsonschema.__version__ is deprecated and will be " | |
| "removed in a future release. Use importlib.metadata directly " | |
| "to query for jsonschema's version.", | |
| DeprecationWarning, | |
| stacklevel=2, | |
| ) | |
| from importlib import metadata | |
| return metadata.version("jsonschema") | |
| elif name == "RefResolver": | |
| from jsonschema.validators import _RefResolver | |
| warnings.warn( | |
| _RefResolver._DEPRECATION_MESSAGE, | |
| DeprecationWarning, | |
| stacklevel=2, | |
| ) | |
| return _RefResolver | |
| elif name == "ErrorTree": | |
| warnings.warn( | |
| "Importing ErrorTree directly from the jsonschema package " | |
| "is deprecated and will become an ImportError. Import it from " | |
| "jsonschema.exceptions instead.", | |
| DeprecationWarning, | |
| stacklevel=2, | |
| ) | |
| from jsonschema.exceptions import ErrorTree | |
| return ErrorTree | |
| elif name == "FormatError": | |
| warnings.warn( | |
| "Importing FormatError directly from the jsonschema package " | |
| "is deprecated and will become an ImportError. Import it from " | |
| "jsonschema.exceptions instead.", | |
| DeprecationWarning, | |
| stacklevel=2, | |
| ) | |
| from jsonschema.exceptions import FormatError | |
| return FormatError | |
| elif name == "Validator": | |
| warnings.warn( | |
| "Importing Validator directly from the jsonschema package " | |
| "is deprecated and will become an ImportError. Import it from " | |
| "jsonschema.protocols instead.", | |
| DeprecationWarning, | |
| stacklevel=2, | |
| ) | |
| from jsonschema.protocols import Validator | |
| return Validator | |
| elif name == "RefResolutionError": | |
| from jsonschema.exceptions import _RefResolutionError | |
| warnings.warn( | |
| _RefResolutionError._DEPRECATION_MESSAGE, | |
| DeprecationWarning, | |
| stacklevel=2, | |
| ) | |
| return _RefResolutionError | |
| format_checkers = { | |
| "draft3_format_checker": Draft3Validator, | |
| "draft4_format_checker": Draft4Validator, | |
| "draft6_format_checker": Draft6Validator, | |
| "draft7_format_checker": Draft7Validator, | |
| "draft201909_format_checker": Draft201909Validator, | |
| "draft202012_format_checker": Draft202012Validator, | |
| } | |
| ValidatorForFormat = format_checkers.get(name) | |
| if ValidatorForFormat is not None: | |
| warnings.warn( | |
| f"Accessing jsonschema.{name} is deprecated and will be " | |
| "removed in a future release. Instead, use the FORMAT_CHECKER " | |
| "attribute on the corresponding Validator.", | |
| DeprecationWarning, | |
| stacklevel=2, | |
| ) | |
| return ValidatorForFormat.FORMAT_CHECKER | |
| raise AttributeError(f"module {__name__} has no attribute {name}") | |
| __all__ = [ | |
| "Draft201909Validator", | |
| "Draft202012Validator", | |
| "Draft3Validator", | |
| "Draft4Validator", | |
| "Draft6Validator", | |
| "Draft7Validator", | |
| "FormatChecker", | |
| "SchemaError", | |
| "TypeChecker", | |
| "ValidationError", | |
| "validate", | |
| ] | |