Astroport.ONE/venv/lib/python3.11/site-packages/jsonschema/__init__.py

121 lines
3.8 KiB
Python

"""
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",
]