Spaces:
Runtime error
Runtime error
File size: 3,941 Bytes
2d1874a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
"""
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",
]
|