/ src / evidently / _pydantic_compat.py
_pydantic_compat.py
 1  from typing import TYPE_CHECKING
 2  
 3  import pydantic
 4  
 5  v = 1 if pydantic.__version__.startswith("1") else 2
 6  
 7  if v == 1:
 8      from pydantic import BaseConfig  # type: ignore[assignment]
 9      from pydantic import BaseModel  # type: ignore[assignment]
10      from pydantic import EmailStr  # type: ignore[attr-defined,no-redef]
11      from pydantic import Extra  # type: ignore[assignment]
12      from pydantic import Field  # type: ignore[assignment]
13      from pydantic import PrivateAttr
14      from pydantic import SecretStr  # type: ignore[assignment]
15      from pydantic import StrictBool  # type: ignore[assignment]
16      from pydantic import ValidationError  # type: ignore[assignment]
17      from pydantic import create_model  # type: ignore[attr-defined,no-redef]
18      from pydantic import parse_obj_as
19      from pydantic import root_validator  # type: ignore[attr-defined,no-redef]
20      from pydantic import validator
21      from pydantic.fields import SHAPE_DICT  # type: ignore[attr-defined,no-redef]
22      from pydantic.fields import SHAPE_LIST  # type: ignore[attr-defined,no-redef]
23      from pydantic.fields import SHAPE_SET  # type: ignore[attr-defined,no-redef]
24      from pydantic.fields import SHAPE_SINGLETON  # type: ignore[attr-defined,no-redef]
25      from pydantic.fields import SHAPE_TUPLE  # type: ignore[attr-defined,no-redef]
26      from pydantic.fields import ModelField  # type: ignore[attr-defined,no-redef]
27      from pydantic.main import ModelMetaclass  # type: ignore[attr-defined,no-redef]
28      from pydantic.utils import import_string  # type: ignore[attr-defined,no-redef]
29      from pydantic.validators import _VALIDATORS  # type: ignore[attr-defined,no-redef]
30  
31      if TYPE_CHECKING:
32          from pydantic.main import AbstractSetIntStr  # type: ignore[attr-defined,no-redef]
33          from pydantic.main import MappingIntStrAny  # type: ignore[attr-defined,no-redef]
34          from pydantic.main import Model  # type: ignore[attr-defined,no-redef]
35          from pydantic.typing import DictStrAny  # type: ignore[attr-defined,no-redef]
36  
37  else:
38      from pydantic.v1 import BaseConfig  # type: ignore[assignment,no-redef]
39      from pydantic.v1 import BaseModel  # type: ignore[assignment,no-redef]
40      from pydantic.v1 import EmailStr  # type: ignore[assignment,no-redef]
41      from pydantic.v1 import Extra  # type: ignore[assignment,no-redef]
42      from pydantic.v1 import Field  # type: ignore[assignment,no-redef]
43      from pydantic.v1 import PrivateAttr  # type: ignore[assignment,no-redef]
44      from pydantic.v1 import SecretStr  # type: ignore[assignment,no-redef]
45      from pydantic.v1 import StrictBool  # type: ignore[assignment,no-redef]
46      from pydantic.v1 import ValidationError  # type: ignore[assignment,no-redef]
47      from pydantic.v1 import create_model  # type: ignore[assignment,no-redef]
48      from pydantic.v1 import parse_obj_as  # type: ignore[assignment,no-redef]
49      from pydantic.v1 import root_validator  # type: ignore[assignment,no-redef]
50      from pydantic.v1 import validator  # type: ignore[assignment,no-redef]
51      from pydantic.v1.fields import SHAPE_DICT  # type: ignore[assignment,no-redef]
52      from pydantic.v1.fields import SHAPE_LIST  # type: ignore[assignment,no-redef]
53      from pydantic.v1.fields import SHAPE_SET  # type: ignore[assignment,no-redef]
54      from pydantic.v1.fields import SHAPE_SINGLETON  # type: ignore[assignment,no-redef]
55      from pydantic.v1.fields import SHAPE_TUPLE  # type: ignore[assignment,no-redef]
56      from pydantic.v1.fields import ModelField  # type: ignore[assignment,no-redef]
57      from pydantic.v1.main import ModelMetaclass  # type: ignore[assignment,no-redef]
58      from pydantic.v1.utils import import_string  # type: ignore[assignment,no-redef]
59      from pydantic.v1.validators import _VALIDATORS  # type: ignore[assignment,no-redef]
60  
61      if TYPE_CHECKING:
62          from pydantic.v1.main import AbstractSetIntStr  # type: ignore[assignment,no-redef]
63          from pydantic.v1.main import MappingIntStrAny  # type: ignore[assignment,no-redef]
64          from pydantic.v1.main import Model  # type: ignore[assignment,no-redef]
65          from pydantic.v1.typing import DictStrAny  # type: ignore[assignment,no-redef]
66  
67  __all__ = [
68      "BaseConfig",
69      "BaseModel",
70      "Field",
71      "ValidationError",
72      "parse_obj_as",
73      "validator",
74      "SecretStr",
75      "StrictBool",
76      "SHAPE_DICT",
77      "SHAPE_LIST",
78      "SHAPE_SET",
79      "SHAPE_SINGLETON",
80      "SHAPE_TUPLE",
81      "ModelField",
82      "ModelMetaclass",
83      "import_string",
84      "_VALIDATORS",
85      "Model",
86      "MappingIntStrAny",
87      "AbstractSetIntStr",
88      "DictStrAny",
89      "PrivateAttr",
90      "Extra",
91      "create_model",
92      "EmailStr",
93      "root_validator",
94  ]