Spaces:
Runtime error
Runtime error
""" | |
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", | |
] | |