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