summaryrefslogtreecommitdiff
path: root/jsonschema/__init__.py
blob: 7e3b91e74506c611cf4deada1ede4bbfa8170df0 (plain)
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
"""
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,
    draft3_format_checker,
    draft4_format_checker,
    draft6_format_checker,
    draft7_format_checker,
    draft201909_format_checker,
    draft202012_format_checker,
)
from jsonschema._types import TypeChecker
from jsonschema.exceptions import (
    ErrorTree,
    FormatError,
    RefResolutionError,
    SchemaError,
    ValidationError,
)
from jsonschema.protocols import Validator
from jsonschema.validators import (
    Draft3Validator,
    Draft4Validator,
    Draft6Validator,
    Draft7Validator,
    Draft201909Validator,
    Draft202012Validator,
    RefResolver,
    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,
        )

        try:
            from importlib import metadata
        except ImportError:
            import importlib_metadata as metadata

        return metadata.version("jsonschema")
    raise AttributeError(f"module {__name__} has no attribute {name}")