update pydantic 1.10.16

This commit is contained in:
bobo.yang 2024-11-19 15:45:55 +08:00
parent 8dd91e1c57
commit 893076582d
35 changed files with 375 additions and 228 deletions

View File

@ -1,61 +0,0 @@
pydantic-1.10.14.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
pydantic-1.10.14.dist-info/LICENSE,sha256=njlGaQrIi2tz6PABoFhq8TVovohS_VFOQ5Pzl2F2Q4c,1127
pydantic-1.10.14.dist-info/METADATA,sha256=lYLXr7lOF7BMRkokRnhTeJODH7dv_zlYVTKfw6M_rNg,150189
pydantic-1.10.14.dist-info/RECORD,,
pydantic-1.10.14.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
pydantic-1.10.14.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
pydantic-1.10.14.dist-info/entry_points.txt,sha256=EquH5n3pilIXg-LLa1K4evpu5-6dnvxzi6vwvkoAMns,45
pydantic-1.10.14.dist-info/top_level.txt,sha256=cmo_5n0F_YY5td5nPZBfdjBENkmGg_pE5ShWXYbXxTM,9
pydantic/__init__.py,sha256=iTu8CwWWvn6zM_zYJtqhie24PImW25zokitz_06kDYw,2771
pydantic/__pycache__/__init__.cpython-38.pyc,,
pydantic/__pycache__/_hypothesis_plugin.cpython-38.pyc,,
pydantic/__pycache__/annotated_types.cpython-38.pyc,,
pydantic/__pycache__/class_validators.cpython-38.pyc,,
pydantic/__pycache__/color.cpython-38.pyc,,
pydantic/__pycache__/config.cpython-38.pyc,,
pydantic/__pycache__/dataclasses.cpython-38.pyc,,
pydantic/__pycache__/datetime_parse.cpython-38.pyc,,
pydantic/__pycache__/decorator.cpython-38.pyc,,
pydantic/__pycache__/env_settings.cpython-38.pyc,,
pydantic/__pycache__/error_wrappers.cpython-38.pyc,,
pydantic/__pycache__/errors.cpython-38.pyc,,
pydantic/__pycache__/fields.cpython-38.pyc,,
pydantic/__pycache__/generics.cpython-38.pyc,,
pydantic/__pycache__/json.cpython-38.pyc,,
pydantic/__pycache__/main.cpython-38.pyc,,
pydantic/__pycache__/mypy.cpython-38.pyc,,
pydantic/__pycache__/networks.cpython-38.pyc,,
pydantic/__pycache__/parse.cpython-38.pyc,,
pydantic/__pycache__/schema.cpython-38.pyc,,
pydantic/__pycache__/tools.cpython-38.pyc,,
pydantic/__pycache__/types.cpython-38.pyc,,
pydantic/__pycache__/typing.cpython-38.pyc,,
pydantic/__pycache__/utils.cpython-38.pyc,,
pydantic/__pycache__/validators.cpython-38.pyc,,
pydantic/__pycache__/version.cpython-38.pyc,,
pydantic/_hypothesis_plugin.py,sha256=gILcyAEfZ3u9YfKxtDxkReLpakjMou1VWC3FEcXmJgQ,14844
pydantic/annotated_types.py,sha256=dJTDUyPj4QJj4rDcNkt9xDUMGEkAnuWzDeGE2q7Wxrc,3124
pydantic/class_validators.py,sha256=0BZx0Ft19cREVHEOaA6wf_E3A0bTL4wQIGzeOinVatg,14595
pydantic/color.py,sha256=cGzck7kSD5beBkOMhda4bfTICput6dMx8GGpEU5SK5Y,16811
pydantic/config.py,sha256=h5ceeZ9HzDjUv0IZNYQoza0aNGFVo22iszY-6s0a3eM,6477
pydantic/dataclasses.py,sha256=dO6Slbjc6_PZKi2ZFhDkcmCL1VSPoX44sV-2FBIajRQ,18073
pydantic/datetime_parse.py,sha256=DhGfkbG4Vs5Oyxq3u8jM-7gFrbuUKsn-4aG2DJDJbHw,7714
pydantic/decorator.py,sha256=wzuIuKKHVjaiE97YBctCU0Vho0VRlUO-aVu1IUEczFE,10263
pydantic/env_settings.py,sha256=4PWxPYeK5jt59JJ4QGb90qU8pfC7qgGX44UESTmXdpE,14039
pydantic/error_wrappers.py,sha256=xm128iOK5r0-P-oP0XWq2EqMEfEyjhQlj2aBpECytNc,5141
pydantic/errors.py,sha256=f93z30S4s5bJEl8JXh-zFCAtLDCko9ze2hKTkOimaa8,17693
pydantic/fields.py,sha256=vNZItUcuW6kBhQNQW7wA4LgiZiza4dT2Q6Dx4QvoSgE,50485
pydantic/generics.py,sha256=n5TTgh3EHkG1Xw3eY9A143bUN11_4m57Db5u49hkGJ8,17805
pydantic/json.py,sha256=B0gJ2WmPqw-6fsvPmgu-rwhhOy4E0JpbbYjC8HR01Ho,3346
pydantic/main.py,sha256=5dcT68MxbI3WguS194pyQYUGXb3a3Ukxnq2jzoi_SXg,44376
pydantic/mypy.py,sha256=G8yQLLt6CodoTvGl84MP3ZpdInBtc0QoaLJ7iArHXNU,38745
pydantic/networks.py,sha256=TeV9FvCYg4ALk8j7dU1q6Ntze7yaUrCHQFEDJDnq1NI,22059
pydantic/parse.py,sha256=rrVhaWLK8t03rT3oxvC6uRLuTF5iZ2NKGvGqs4iQEM0,1810
pydantic/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
pydantic/schema.py,sha256=hj0y0U-ooqNnB6kBWg_ybZXOBIjAhI4PgucQYU0MVIc,47614
pydantic/tools.py,sha256=ELC66w6UaU_HzAGfJBSIP47Aq9ZGkGiWPMLkkTs6VrI,2826
pydantic/types.py,sha256=cjZCEd0AjkJcwmDKOP6DlAjQn4aGyBVZHBVWBKt0jI0,35379
pydantic/typing.py,sha256=5_C_fiUvWiAzW3MBJaHeuy2s3Hi52rFMxTfNPHv9_os,18996
pydantic/utils.py,sha256=5w7Q3N_Fqg5H9__JQDaumw9N3EFdlc7galEsCGxEDN0,25809
pydantic/validators.py,sha256=T-t9y9L_68El9p4PYkEVGEjpetNV6luav8Iwu9iTLkM,21887
pydantic/version.py,sha256=pzxJyMSk4aNDW_Gm_GQELKTS5FxVzKC81LqictLj1ZM,1039

View File

@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: pydantic
Version: 1.10.14
Version: 1.10.16
Summary: Data validation and settings management using python type hints
Home-page: https://github.com/pydantic/pydantic
Author: Samuel Colvin
@ -30,11 +30,11 @@ Classifier: Topic :: Internet
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: typing-extensions>=4.2.0
Requires-Dist: typing-extensions >=4.2.0
Provides-Extra: dotenv
Requires-Dist: python-dotenv>=0.10.4; extra == "dotenv"
Requires-Dist: python-dotenv >=0.10.4 ; extra == 'dotenv'
Provides-Extra: email
Requires-Dist: email-validator>=1.0.3; extra == "email"
Requires-Dist: email-validator >=1.0.3 ; extra == 'email'
# pydantic
@ -98,6 +98,18 @@ contribution to *pydantic*, see
See our [security policy](https://github.com/pydantic/pydantic/security/policy).
## v1.10.16 (2024-06-11)
* Specify recursive_guard as kwarg in FutureRef._evaluate by [@vfazio](https://github.com/vfazio) in https://github.com/pydantic/pydantic/pull/#961
* Fix mypy v1 plugin for upcoming mypy release by @ cdce8p in https://github.com/pydantic/pydantic/pull/9586
* Import modules/objects directly from v1 namespace by [@exs-dwoodward](https://github.com/exs-dwoodward) in https://github.com/pydantic/pydantic/pull/9162
## v1.10.15 (2024-04-03)
* Add pydantic.v1 namespace to Pydantic v1 by [@exs-dmiketa](https://github.com/exs-dmiketa) in https://github.com/pydantic/pydantic/pull/9042
* Relax version of typing-extensions for V1 by [@SonOfLilit](https://github.com/SonOfLilit) in https://github.com/pydantic/pydantic/pull/8819
* patch fix for mypy by [@sydney-runkle](https://github.com/sydney-runkle) in https://github.com/pydantic/pydantic/pull/8765
## v1.10.14 (2024-01-19)
* Update install.md by [@dmontagu](https://github.com/dmontagu) in https://github.com/pydantic/pydantic/pull/7690

View File

@ -0,0 +1,63 @@
pydantic-1.10.16.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
pydantic-1.10.16.dist-info/LICENSE,sha256=njlGaQrIi2tz6PABoFhq8TVovohS_VFOQ5Pzl2F2Q4c,1127
pydantic-1.10.16.dist-info/METADATA,sha256=heGOr2oDDNuf4s6BaBgy8DfMqEHUmpFsA8SZdG0ssEo,151071
pydantic-1.10.16.dist-info/RECORD,,
pydantic-1.10.16.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
pydantic-1.10.16.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
pydantic-1.10.16.dist-info/entry_points.txt,sha256=EquH5n3pilIXg-LLa1K4evpu5-6dnvxzi6vwvkoAMns,45
pydantic-1.10.16.dist-info/top_level.txt,sha256=cmo_5n0F_YY5td5nPZBfdjBENkmGg_pE5ShWXYbXxTM,9
pydantic/__init__.py,sha256=TeIqU1PmJdMH0ztvKf781k_e0ziVkpDNMD6Rx1BAPi0,2898
pydantic/__pycache__/__init__.cpython-312.pyc,,
pydantic/__pycache__/_hypothesis_plugin.cpython-312.pyc,,
pydantic/__pycache__/annotated_types.cpython-312.pyc,,
pydantic/__pycache__/class_validators.cpython-312.pyc,,
pydantic/__pycache__/color.cpython-312.pyc,,
pydantic/__pycache__/config.cpython-312.pyc,,
pydantic/__pycache__/dataclasses.cpython-312.pyc,,
pydantic/__pycache__/datetime_parse.cpython-312.pyc,,
pydantic/__pycache__/decorator.cpython-312.pyc,,
pydantic/__pycache__/env_settings.cpython-312.pyc,,
pydantic/__pycache__/error_wrappers.cpython-312.pyc,,
pydantic/__pycache__/errors.cpython-312.pyc,,
pydantic/__pycache__/fields.cpython-312.pyc,,
pydantic/__pycache__/generics.cpython-312.pyc,,
pydantic/__pycache__/json.cpython-312.pyc,,
pydantic/__pycache__/main.cpython-312.pyc,,
pydantic/__pycache__/mypy.cpython-312.pyc,,
pydantic/__pycache__/networks.cpython-312.pyc,,
pydantic/__pycache__/parse.cpython-312.pyc,,
pydantic/__pycache__/schema.cpython-312.pyc,,
pydantic/__pycache__/tools.cpython-312.pyc,,
pydantic/__pycache__/types.cpython-312.pyc,,
pydantic/__pycache__/typing.cpython-312.pyc,,
pydantic/__pycache__/utils.cpython-312.pyc,,
pydantic/__pycache__/v1.cpython-312.pyc,,
pydantic/__pycache__/validators.cpython-312.pyc,,
pydantic/__pycache__/version.cpython-312.pyc,,
pydantic/_hypothesis_plugin.py,sha256=gILcyAEfZ3u9YfKxtDxkReLpakjMou1VWC3FEcXmJgQ,14844
pydantic/annotated_types.py,sha256=BfEVx8bdMUFK-AlO-LU-fxt2I_7xQwNA_fl-mbuNrbM,3148
pydantic/class_validators.py,sha256=JumZvw-ZPc_EQZAK_qqtgTzz1pcWVShBYM8ghDXpIHA,14651
pydantic/color.py,sha256=AlQ4wBEgeU8-Va-5pV_FObl5lA7r579EF-MHt-nkphI,16835
pydantic/config.py,sha256=1-fak1i6rfrY7iuFC-JcXuC2BkJ5M8v6u62k8BsmZrM,6517
pydantic/dataclasses.py,sha256=_zFFUJIx1hlaI0CT151gzKzjbPFi0gd8adb9POFtWvA,18145
pydantic/datetime_parse.py,sha256=abJc-x71ik-Gz6ofbePDE2zmdgqGTTblStb8U_-s9SU,7721
pydantic/decorator.py,sha256=OuGBAGeL-HYXis2hXKw9dgcks-ZwuttNRMl7hkt8Pbk,10318
pydantic/env_settings.py,sha256=_haBeW4mDyciRenUt4L71vcWevkN68bVgzW7HcSDvr8,14087
pydantic/error_wrappers.py,sha256=HPT2e25KJyMF3qm0nhPUmlso166_OcHxj32NR_rRtII,5181
pydantic/errors.py,sha256=eCC88uVOeX1TacrjDAcpcZd8nxmpLWaTAK9LImWhx6o,17717
pydantic/fields.py,sha256=dOeDmaUxRVywbD8_BBLEsJFPP3HN-mNNdOoHwDPECF0,50604
pydantic/generics.py,sha256=bMBu8urVkYq_MwCjqHA6TPLG1qIe6MoMZZ4zX8FBpFU,17853
pydantic/json.py,sha256=Ia86XPrskWFxCl6Bp9KvKXY56nl3COOPABUuu9bFLKU,3378
pydantic/main.py,sha256=PMkIaXPUPNcju_nNRoDutDvEToMwM0L02K5ypp1jTns,44496
pydantic/mypy.py,sha256=hh_d645pOfcKDeWbuvM10wlEn33aK-wjHcJxRE7sHCs,38771
pydantic/networks.py,sha256=VZFhVZWDeaC71kufxBYQExSuTVQxjSjXFJAzBMAU1QU,22106
pydantic/parse.py,sha256=t09djjmx7CLALG8lg83hAonV6qbRwhIP8PSSzxULZKk,1818
pydantic/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
pydantic/schema.py,sha256=YoReTBcnhzEz6fRj4gQOGHPDfdc65c-X_PtCaV2US3k,47710
pydantic/tools.py,sha256=GNOURtVeWh0RbashriXadzh6G6NQOjvhCKdaoepmV5E,2866
pydantic/types.py,sha256=9nrl-YFHkW6iE8PtteQFWFSmz2pJvsT38poNLSgwPpM,35434
pydantic/typing.py,sha256=OmORFCDRBjBxJoHomOSvNZlIo6Mv4CoL8VK58XzJUDM,19234
pydantic/utils.py,sha256=oXx5P7NRQllgZdoXorFLFh8qij0yKVwiQejUznA5rGI,25889
pydantic/v1.py,sha256=mUdulX-fZ4Kb1URsHRaQLzSSq0beVkL7NuPutO2wftk,2674
pydantic/validators.py,sha256=9N-zeBytOIWUcTqT5aJnNZuwCERmab_5QGLYfKnmFAU,21966
pydantic/version.py,sha256=XJgzOxlJwdKTl32VGaCDtaOBUeG52t2R3Hmqa4bXNkM,1039

View File

@ -1,5 +1,5 @@
Wheel-Version: 1.0
Generator: setuptools (74.1.2)
Generator: bdist_wheel (0.43.0)
Root-Is-Purelib: true
Tag: py3-none-any

View File

@ -1,23 +1,23 @@
# flake8: noqa
from . import dataclasses
from .annotated_types import create_model_from_namedtuple, create_model_from_typeddict
from .class_validators import root_validator, validator
from .config import BaseConfig, ConfigDict, Extra
from .decorator import validate_arguments
from .env_settings import BaseSettings
from .error_wrappers import ValidationError
from .errors import *
from .fields import Field, PrivateAttr, Required
from .main import *
from .networks import *
from .parse import Protocol
from .tools import *
from .types import *
from .version import VERSION, compiled
from pydantic import dataclasses
from pydantic.annotated_types import create_model_from_namedtuple, create_model_from_typeddict
from pydantic.class_validators import root_validator, validator
from pydantic.config import BaseConfig, ConfigDict, Extra
from pydantic.decorator import validate_arguments
from pydantic.env_settings import BaseSettings
from pydantic.error_wrappers import ValidationError
from pydantic.errors import *
from pydantic.fields import Field, PrivateAttr, Required
from pydantic.main import *
from pydantic.networks import *
from pydantic.parse import Protocol
from pydantic.tools import *
from pydantic.types import *
from pydantic.version import VERSION, compiled
__version__ = VERSION
# WARNING __all__ from .errors is not included here, it will be removed as an export here in v2
# WARNING __all__ from pydantic.errors is not included here, it will be removed as an export here in v2
# please use "from pydantic.errors import ..." instead
__all__ = [
# annotated types utils

View File

@ -1,9 +1,9 @@
import sys
from typing import TYPE_CHECKING, Any, Dict, FrozenSet, NamedTuple, Type
from .fields import Required
from .main import BaseModel, create_model
from .typing import is_typeddict, is_typeddict_special
from pydantic.fields import Required
from pydantic.main import BaseModel, create_model
from pydantic.typing import is_typeddict, is_typeddict_special
if TYPE_CHECKING:
from typing_extensions import TypedDict

View File

@ -5,12 +5,12 @@ from itertools import chain
from types import FunctionType
from typing import TYPE_CHECKING, Any, Callable, Dict, Iterable, List, Optional, Set, Tuple, Type, Union, overload
from .errors import ConfigError
from .typing import AnyCallable
from .utils import ROOT_KEY, in_ipython
from pydantic.errors import ConfigError
from pydantic.typing import AnyCallable
from pydantic.utils import ROOT_KEY, in_ipython
if TYPE_CHECKING:
from .typing import AnyClassMethod
from pydantic.typing import AnyClassMethod
class Validator:
@ -36,9 +36,9 @@ class Validator:
if TYPE_CHECKING:
from inspect import Signature
from .config import BaseConfig
from .fields import ModelField
from .types import ModelOrDc
from pydantic.config import BaseConfig
from pydantic.fields import ModelField
from pydantic.types import ModelOrDc
ValidatorCallable = Callable[[Optional[ModelOrDc], Any, Dict[str, Any], ModelField, Type[BaseConfig]], Any]
ValidatorsList = List[ValidatorCallable]

View File

@ -12,11 +12,11 @@ import re
from colorsys import hls_to_rgb, rgb_to_hls
from typing import TYPE_CHECKING, Any, Dict, Optional, Tuple, Union, cast
from .errors import ColorError
from .utils import Representation, almost_equal_floats
from pydantic.errors import ColorError
from pydantic.utils import Representation, almost_equal_floats
if TYPE_CHECKING:
from .typing import CallableGenerator, ReprArgs
from pydantic.typing import CallableGenerator, ReprArgs
ColorTuple = Union[Tuple[int, int, int], Tuple[int, int, int, float]]
ColorType = Union[ColorTuple, str]

View File

@ -4,15 +4,15 @@ from typing import TYPE_CHECKING, Any, Callable, Dict, ForwardRef, Optional, Tup
from typing_extensions import Literal, Protocol
from .typing import AnyArgTCallable, AnyCallable
from .utils import GetterDict
from .version import compiled
from pydantic.typing import AnyArgTCallable, AnyCallable
from pydantic.utils import GetterDict
from pydantic.version import compiled
if TYPE_CHECKING:
from typing import overload
from .fields import ModelField
from .main import BaseModel
from pydantic.fields import ModelField
from pydantic.main import BaseModel
ConfigType = Type['BaseConfig']

View File

@ -47,17 +47,17 @@ from typing import TYPE_CHECKING, Any, Callable, ClassVar, Dict, Generator, Opti
from typing_extensions import dataclass_transform
from .class_validators import gather_all_validators
from .config import BaseConfig, ConfigDict, Extra, get_config
from .error_wrappers import ValidationError
from .errors import DataclassTypeError
from .fields import Field, FieldInfo, Required, Undefined
from .main import create_model, validate_model
from .utils import ClassAttribute
from pydantic.class_validators import gather_all_validators
from pydantic.config import BaseConfig, ConfigDict, Extra, get_config
from pydantic.error_wrappers import ValidationError
from pydantic.errors import DataclassTypeError
from pydantic.fields import Field, FieldInfo, Required, Undefined
from pydantic.main import create_model, validate_model
from pydantic.utils import ClassAttribute
if TYPE_CHECKING:
from .main import BaseModel
from .typing import CallableGenerator, NoArgAnyCallable
from pydantic.main import BaseModel
from pydantic.typing import CallableGenerator, NoArgAnyCallable
DataclassT = TypeVar('DataclassT', bound='Dataclass')

View File

@ -18,7 +18,7 @@ import re
from datetime import date, datetime, time, timedelta, timezone
from typing import Dict, Optional, Type, Union
from . import errors
from pydantic import errors
date_expr = r'(?P<year>\d{4})-(?P<month>\d{1,2})-(?P<day>\d{1,2})'
time_expr = (

View File

@ -1,17 +1,17 @@
from functools import wraps
from typing import TYPE_CHECKING, Any, Callable, Dict, List, Mapping, Optional, Tuple, Type, TypeVar, Union, overload
from . import validator
from .config import Extra
from .errors import ConfigError
from .main import BaseModel, create_model
from .typing import get_all_type_hints
from .utils import to_camel
from pydantic import validator
from pydantic.config import Extra
from pydantic.errors import ConfigError
from pydantic.main import BaseModel, create_model
from pydantic.typing import get_all_type_hints
from pydantic.utils import to_camel
__all__ = ('validate_arguments',)
if TYPE_CHECKING:
from .typing import AnyCallable
from pydantic.typing import AnyCallable
AnyCallableT = TypeVar('AnyCallableT', bound=AnyCallable)
ConfigType = Union[None, Type[Any], Dict[str, Any]]

View File

@ -3,12 +3,12 @@ import warnings
from pathlib import Path
from typing import AbstractSet, Any, Callable, ClassVar, Dict, List, Mapping, Optional, Tuple, Type, Union
from .config import BaseConfig, Extra
from .fields import ModelField
from .main import BaseModel
from .types import JsonWrapper
from .typing import StrPath, display_as_type, get_origin, is_union
from .utils import deep_update, lenient_issubclass, path_type, sequence_like
from pydantic.config import BaseConfig, Extra
from pydantic.fields import ModelField
from pydantic.main import BaseModel
from pydantic.types import JsonWrapper
from pydantic.typing import StrPath, display_as_type, get_origin, is_union
from pydantic.utils import deep_update, lenient_issubclass, path_type, sequence_like
env_file_sentinel = str(object())

View File

@ -1,15 +1,15 @@
import json
from typing import TYPE_CHECKING, Any, Dict, Generator, List, Optional, Sequence, Tuple, Type, Union
from .json import pydantic_encoder
from .utils import Representation
from pydantic.json import pydantic_encoder
from pydantic.utils import Representation
if TYPE_CHECKING:
from typing_extensions import TypedDict
from .config import BaseConfig
from .types import ModelOrDc
from .typing import ReprArgs
from pydantic.config import BaseConfig
from pydantic.types import ModelOrDc
from pydantic.typing import ReprArgs
Loc = Tuple[Union[int, str], ...]

View File

@ -2,12 +2,12 @@ from decimal import Decimal
from pathlib import Path
from typing import TYPE_CHECKING, Any, Callable, Sequence, Set, Tuple, Type, Union
from .typing import display_as_type
from pydantic.typing import display_as_type
if TYPE_CHECKING:
from .typing import DictStrAny
from pydantic.typing import DictStrAny
# explicitly state exports to avoid "from .errors import *" also importing Decimal, Path etc.
# explicitly state exports to avoid "from pydantic.errors import *" also importing Decimal, Path etc.
__all__ = (
'PydanticTypeError',
'PydanticValueError',

View File

@ -28,12 +28,12 @@ from typing import (
from typing_extensions import Annotated, Final
from . import errors as errors_
from .class_validators import Validator, make_generic_validator, prep_validators
from .error_wrappers import ErrorWrapper
from .errors import ConfigError, InvalidDiscriminator, MissingDiscriminator, NoneIsNotAllowedError
from .types import Json, JsonWrapper
from .typing import (
from pydantic import errors as errors_
from pydantic.class_validators import Validator, make_generic_validator, prep_validators
from pydantic.error_wrappers import ErrorWrapper
from pydantic.errors import ConfigError, InvalidDiscriminator, MissingDiscriminator, NoneIsNotAllowedError
from pydantic.types import Json, JsonWrapper
from pydantic.typing import (
NoArgAnyCallable,
convert_generics,
display_as_type,
@ -48,7 +48,7 @@ from .typing import (
is_union,
new_type_supertype,
)
from .utils import (
from pydantic.utils import (
PyObjectStr,
Representation,
ValueItems,
@ -59,7 +59,7 @@ from .utils import (
sequence_like,
smart_deepcopy,
)
from .validators import constant_validator, dict_validator, find_validators, validate_json
from pydantic.validators import constant_validator, dict_validator, find_validators, validate_json
Required: Any = Ellipsis
@ -83,11 +83,11 @@ class UndefinedType:
Undefined = UndefinedType()
if TYPE_CHECKING:
from .class_validators import ValidatorsList
from .config import BaseConfig
from .error_wrappers import ErrorList
from .types import ModelOrDc
from .typing import AbstractSetIntStr, MappingIntStrAny, ReprArgs
from pydantic.class_validators import ValidatorsList
from pydantic.config import BaseConfig
from pydantic.error_wrappers import ErrorList
from pydantic.types import ModelOrDc
from pydantic.typing import AbstractSetIntStr, MappingIntStrAny, ReprArgs
ValidateReturn = Tuple[Optional[Any], Optional[ErrorList]]
LocStr = Union[Tuple[Union[int, str], ...], str]
@ -490,7 +490,7 @@ class ModelField(Representation):
class_validators: Optional[Dict[str, Validator]],
config: Type['BaseConfig'],
) -> 'ModelField':
from .schema import get_annotation_from_field_info
from pydantic.schema import get_annotation_from_field_info
field_info, value = cls._get_field_info(name, annotation, value, config)
required: 'BoolUndefined' = Undefined
@ -1160,7 +1160,7 @@ class ModelField(Representation):
"""
Whether the field is "complex" eg. env variables should be parsed as JSON.
"""
from .main import BaseModel
from pydantic.main import BaseModel
return (
self.shape != SHAPE_SINGLETON

View File

@ -22,12 +22,12 @@ from weakref import WeakKeyDictionary, WeakValueDictionary
from typing_extensions import Annotated, Literal as ExtLiteral
from .class_validators import gather_all_validators
from .fields import DeferredType
from .main import BaseModel, create_model
from .types import JsonWrapper
from .typing import display_as_type, get_all_type_hints, get_args, get_origin, typing_base
from .utils import all_identical, lenient_issubclass
from pydantic.class_validators import gather_all_validators
from pydantic.fields import DeferredType
from pydantic.main import BaseModel, create_model
from pydantic.types import JsonWrapper
from pydantic.typing import display_as_type, get_all_type_hints, get_args, get_origin, typing_base
from pydantic.utils import all_identical, lenient_issubclass
if sys.version_info >= (3, 10):
from typing import _UnionGenericAlias

View File

@ -9,9 +9,9 @@ from types import GeneratorType
from typing import Any, Callable, Dict, Type, Union
from uuid import UUID
from .color import Color
from .networks import NameEmail
from .types import SecretBytes, SecretStr
from pydantic.color import Color
from pydantic.networks import NameEmail
from pydantic.types import SecretBytes, SecretStr
__all__ = 'pydantic_encoder', 'custom_pydantic_encoder', 'timedelta_isoformat'
@ -72,7 +72,7 @@ ENCODERS_BY_TYPE: Dict[Type[Any], Callable[[Any], Any]] = {
def pydantic_encoder(obj: Any) -> Any:
from dataclasses import asdict, is_dataclass
from .main import BaseModel
from pydantic.main import BaseModel
if isinstance(obj, BaseModel):
return obj.dict()

View File

@ -26,11 +26,11 @@ from typing import (
from typing_extensions import dataclass_transform
from .class_validators import ValidatorGroup, extract_root_validators, extract_validators, inherit_validators
from .config import BaseConfig, Extra, inherit_config, prepare_config
from .error_wrappers import ErrorWrapper, ValidationError
from .errors import ConfigError, DictError, ExtraError, MissingError
from .fields import (
from pydantic.class_validators import ValidatorGroup, extract_root_validators, extract_validators, inherit_validators
from pydantic.config import BaseConfig, Extra, inherit_config, prepare_config
from pydantic.error_wrappers import ErrorWrapper, ValidationError
from pydantic.errors import ConfigError, DictError, ExtraError, MissingError
from pydantic.fields import (
MAPPING_LIKE_SHAPES,
Field,
ModelField,
@ -39,11 +39,11 @@ from .fields import (
Undefined,
is_finalvar_with_default_val,
)
from .json import custom_pydantic_encoder, pydantic_encoder
from .parse import Protocol, load_file, load_str_bytes
from .schema import default_ref_template, model_schema
from .types import PyObject, StrBytes
from .typing import (
from pydantic.json import custom_pydantic_encoder, pydantic_encoder
from pydantic.parse import Protocol, load_file, load_str_bytes
from pydantic.schema import default_ref_template, model_schema
from pydantic.types import PyObject, StrBytes
from pydantic.typing import (
AnyCallable,
get_args,
get_origin,
@ -53,7 +53,7 @@ from .typing import (
resolve_annotations,
update_model_forward_refs,
)
from .utils import (
from pydantic.utils import (
DUNDER_ATTRIBUTES,
ROOT_KEY,
ClassAttribute,
@ -73,9 +73,9 @@ from .utils import (
if TYPE_CHECKING:
from inspect import Signature
from .class_validators import ValidatorListDict
from .types import ModelOrDc
from .typing import (
from pydantic.class_validators import ValidatorListDict
from pydantic.types import ModelOrDc
from pydantic.typing import (
AbstractSetIntStr,
AnyClassMethod,
CallableGenerator,
@ -669,7 +669,7 @@ class BaseModel(Representation, metaclass=ModelMetaclass):
def schema_json(
cls, *, by_alias: bool = True, ref_template: str = default_ref_template, **dumps_kwargs: Any
) -> str:
from .json import pydantic_encoder
from pydantic.json import pydantic_encoder
return cls.__config__.json_dumps(
cls.schema(by_alias=by_alias, ref_template=ref_template), default=pydantic_encoder, **dumps_kwargs

View File

@ -57,6 +57,7 @@ from mypy.types import (
Type,
TypeOfAny,
TypeType,
TypeVarId,
TypeVarType,
UnionType,
get_proper_type,
@ -498,7 +499,7 @@ class PydanticModelTransformer:
tvd = TypeVarType(
self_tvar_name,
tvar_fullname,
-1,
TypeVarId(-1),
[],
obj_type,
AnyType(TypeOfAny.from_omitted_generics), # type: ignore[arg-type]

View File

@ -27,17 +27,17 @@ from typing import (
no_type_check,
)
from . import errors
from .utils import Representation, update_not_none
from .validators import constr_length_validator, str_validator
from pydantic import errors
from pydantic.utils import Representation, update_not_none
from pydantic.validators import constr_length_validator, str_validator
if TYPE_CHECKING:
import email_validator
from typing_extensions import TypedDict
from .config import BaseConfig
from .fields import ModelField
from .typing import AnyCallable
from pydantic.config import BaseConfig
from pydantic.fields import ModelField
from pydantic.typing import AnyCallable
CallableGenerator = Generator[AnyCallable, None, None]

View File

@ -4,7 +4,7 @@ from enum import Enum
from pathlib import Path
from typing import Any, Callable, Union
from .types import StrBytes
from pydantic.types import StrBytes
class Protocol(str, Enum):

View File

@ -31,7 +31,7 @@ from uuid import UUID
from typing_extensions import Annotated, Literal
from .fields import (
from pydantic.fields import (
MAPPING_LIKE_SHAPES,
SHAPE_DEQUE,
SHAPE_FROZENSET,
@ -46,9 +46,9 @@ from .fields import (
FieldInfo,
ModelField,
)
from .json import pydantic_encoder
from .networks import AnyUrl, EmailStr
from .types import (
from pydantic.json import pydantic_encoder
from pydantic.networks import AnyUrl, EmailStr
from pydantic.types import (
ConstrainedDecimal,
ConstrainedFloat,
ConstrainedFrozenSet,
@ -69,7 +69,7 @@ from .types import (
conset,
constr,
)
from .typing import (
from pydantic.typing import (
all_literal_values,
get_args,
get_origin,
@ -80,11 +80,11 @@ from .typing import (
is_none_type,
is_union,
)
from .utils import ROOT_KEY, get_model, lenient_issubclass
from pydantic.utils import ROOT_KEY, get_model, lenient_issubclass
if TYPE_CHECKING:
from .dataclasses import Dataclass
from .main import BaseModel
from pydantic.dataclasses import Dataclass
from pydantic.main import BaseModel
default_prefix = '#/definitions/'
default_ref_template = '#/definitions/{model}'
@ -378,7 +378,7 @@ def get_flat_models_from_field(field: ModelField, known_models: TypeModelSet) ->
:param known_models: used to solve circular references
:return: a set with the model used in the declaration for this field, if any, and all its sub-models
"""
from .main import BaseModel
from pydantic.main import BaseModel
flat_models: TypeModelSet = set()
@ -445,7 +445,7 @@ def field_type_schema(
Take a single ``field`` and generate the schema for its type only, not including additional
information as title, etc. Also return additional schema definitions, from sub-models.
"""
from .main import BaseModel # noqa: F811
from pydantic.main import BaseModel # noqa: F811
definitions = {}
nested_models: Set[str] = set()
@ -838,7 +838,7 @@ def field_singleton_schema( # noqa: C901 (ignore complexity)
Take a single Pydantic ``ModelField``, and return its schema and any additional definitions from sub-models.
"""
from .main import BaseModel
from pydantic.main import BaseModel
definitions: Dict[str, Any] = {}
nested_models: Set[str] = set()
@ -974,7 +974,7 @@ def multitypes_literal_field_for_schema(values: Tuple[Any, ...], field: ModelFie
def encode_default(dft: Any) -> Any:
from .main import BaseModel
from pydantic.main import BaseModel
if isinstance(dft, BaseModel) or is_dataclass(dft):
dft = cast('dict[str, Any]', pydantic_encoder(dft))

View File

@ -3,16 +3,16 @@ from functools import lru_cache
from pathlib import Path
from typing import TYPE_CHECKING, Any, Callable, Optional, Type, TypeVar, Union
from .parse import Protocol, load_file, load_str_bytes
from .types import StrBytes
from .typing import display_as_type
from pydantic.parse import Protocol, load_file, load_str_bytes
from pydantic.types import StrBytes
from pydantic.typing import display_as_type
__all__ = ('parse_file_as', 'parse_obj_as', 'parse_raw_as', 'schema_of', 'schema_json_of')
NameFactory = Union[str, Callable[[Type[Any]], str]]
if TYPE_CHECKING:
from .typing import DictStrAny
from pydantic.typing import DictStrAny
def _generate_parsing_type_name(type_: Any) -> str:
@ -21,7 +21,7 @@ def _generate_parsing_type_name(type_: Any) -> str:
@lru_cache(maxsize=2048)
def _get_parsing_type(type_: Any, *, type_name: Optional[NameFactory] = None) -> Any:
from .main import create_model
from pydantic.main import create_model
if type_name is None:
type_name = _generate_parsing_type_name

View File

@ -28,10 +28,10 @@ from typing import (
from uuid import UUID
from weakref import WeakSet
from . import errors
from .datetime_parse import parse_date
from .utils import import_string, update_not_none
from .validators import (
from pydantic import errors
from pydantic.datetime_parse import parse_date
from pydantic.utils import import_string, update_not_none
from pydantic.validators import (
bytes_validator,
constr_length_validator,
constr_lower,
@ -123,9 +123,9 @@ StrIntFloat = Union[str, int, float]
if TYPE_CHECKING:
from typing_extensions import Annotated
from .dataclasses import Dataclass
from .main import BaseModel
from .typing import CallableGenerator
from pydantic.dataclasses import Dataclass
from pydantic.main import BaseModel
from pydantic.typing import CallableGenerator
ModelOrDc = Type[Union[BaseModel, Dataclass]]

View File

@ -63,7 +63,9 @@ else:
def evaluate_forwardref(type_: ForwardRef, globalns: Any, localns: Any) -> Any:
# Even though it is the right signature for python 3.9, mypy complains with
# `error: Too many arguments for "_evaluate" of "ForwardRef"` hence the cast...
return cast(Any, type_)._evaluate(globalns, localns, set())
# Python 3.13/3.12.4+ made `recursive_guard` a kwarg, so name it explicitly to avoid:
# TypeError: ForwardRef._evaluate() missing 1 required keyword-only argument: 'recursive_guard'
return cast(Any, type_)._evaluate(globalns, localns, recursive_guard=set())
if sys.version_info < (3, 9):
@ -256,7 +258,7 @@ StrPath = Union[str, PathLike]
if TYPE_CHECKING:
from .fields import ModelField
from pydantic.fields import ModelField
TupleGenerator = Generator[Tuple[str, Any], None, None]
DictStrAny = Dict[str, Any]
@ -435,7 +437,7 @@ def is_namedtuple(type_: Type[Any]) -> bool:
Check if a given class is a named tuple.
It can be either a `typing.NamedTuple` or `collections.namedtuple`
"""
from .utils import lenient_issubclass
from pydantic.utils import lenient_issubclass
return lenient_issubclass(type_, tuple) and hasattr(type_, '_fields')
@ -445,7 +447,7 @@ def is_typeddict(type_: Type[Any]) -> bool:
Check if a given class is a typed dict (from `typing` or `typing_extensions`)
In 3.10, there will be a public method (https://docs.python.org/3.10/library/typing.html#typing.is_typeddict)
"""
from .utils import lenient_issubclass
from pydantic.utils import lenient_issubclass
return lenient_issubclass(type_, dict) and hasattr(type_, '__total__')

View File

@ -28,8 +28,8 @@ from typing import (
from typing_extensions import Annotated
from .errors import ConfigError
from .typing import (
from pydantic.errors import ConfigError
from pydantic.typing import (
NoneType,
WithArgsTypes,
all_literal_values,
@ -39,17 +39,17 @@ from .typing import (
is_literal_type,
is_union,
)
from .version import version_info
from pydantic.version import version_info
if TYPE_CHECKING:
from inspect import Signature
from pathlib import Path
from .config import BaseConfig
from .dataclasses import Dataclass
from .fields import ModelField
from .main import BaseModel
from .typing import AbstractSetIntStr, DictIntStrAny, IntStr, MappingIntStrAny, ReprArgs
from pydantic.config import BaseConfig
from pydantic.dataclasses import Dataclass
from pydantic.fields import ModelField
from pydantic.main import BaseModel
from pydantic.typing import AbstractSetIntStr, DictIntStrAny, IntStr, MappingIntStrAny, ReprArgs
RichReprResult = Iterable[Union[Any, Tuple[Any], Tuple[str, Any], Tuple[str, Any, Any]]]
@ -240,7 +240,7 @@ def generate_model_signature(
"""
from inspect import Parameter, Signature, signature
from .config import Extra
from pydantic.config import Extra
present_params = signature(init).parameters.values()
merged_params: Dict[str, Parameter] = {}
@ -298,7 +298,7 @@ def generate_model_signature(
def get_model(obj: Union[Type['BaseModel'], Type['Dataclass']]) -> Type['BaseModel']:
from .main import BaseModel
from pydantic.main import BaseModel
try:
model_cls = obj.__pydantic_model__ # type: ignore

View File

@ -0,0 +1,130 @@
# NOTE This file aliases the pydantic namespace as pydantic.v1 for smoother v1 -> v2 transition
# flake8: noqa
import importlib
import os
from typing import Any
import pydantic
from pydantic import *
# allows importing of objects from modules directly
# i.e. from pydantic.v1.fields import ModelField
def __getattr__(name: str) -> Any:
"""Module level `__getattr__` to allow imports directly from the `pydantic.v1`
namespace for all pydantic modules."""
return getattr(pydantic, name)
# WARNING __all__ from pydantic.errors is not included here, it will be removed as an export here in v2
# please use "from pydantic.errors import ..." instead
__all__ = [
# annotated types utils
"create_model_from_namedtuple",
"create_model_from_typeddict",
# dataclasses
"dataclasses",
# class_validators
"root_validator",
"validator",
# config
"BaseConfig",
"ConfigDict",
"Extra",
# decorator
"validate_arguments",
# env_settings
"BaseSettings",
# error_wrappers
"ValidationError",
# fields
"Field",
"Required",
# main
"BaseModel",
"create_model",
"validate_model",
# network
"AnyUrl",
"AnyHttpUrl",
"FileUrl",
"HttpUrl",
"stricturl",
"EmailStr",
"NameEmail",
"IPvAnyAddress",
"IPvAnyInterface",
"IPvAnyNetwork",
"PostgresDsn",
"CockroachDsn",
"AmqpDsn",
"RedisDsn",
"MongoDsn",
"KafkaDsn",
"validate_email",
# parse
"Protocol",
# tools
"parse_file_as",
"parse_obj_as",
"parse_raw_as",
"schema_of",
"schema_json_of",
# types
"NoneStr",
"NoneBytes",
"StrBytes",
"NoneStrBytes",
"StrictStr",
"ConstrainedBytes",
"conbytes",
"ConstrainedList",
"conlist",
"ConstrainedSet",
"conset",
"ConstrainedFrozenSet",
"confrozenset",
"ConstrainedStr",
"constr",
"PyObject",
"ConstrainedInt",
"conint",
"PositiveInt",
"NegativeInt",
"NonNegativeInt",
"NonPositiveInt",
"ConstrainedFloat",
"confloat",
"PositiveFloat",
"NegativeFloat",
"NonNegativeFloat",
"NonPositiveFloat",
"FiniteFloat",
"ConstrainedDecimal",
"condecimal",
"ConstrainedDate",
"condate",
"UUID1",
"UUID3",
"UUID4",
"UUID5",
"FilePath",
"DirectoryPath",
"Json",
"JsonWrapper",
"SecretField",
"SecretStr",
"SecretBytes",
"StrictBool",
"StrictBytes",
"StrictInt",
"StrictFloat",
"PaymentCardNumber",
"PrivateAttr",
"ByteSize",
"PastDate",
"FutureDate",
# version
"compiled",
"VERSION",
]

View File

@ -28,9 +28,9 @@ from typing import (
)
from uuid import UUID
from . import errors
from .datetime_parse import parse_date, parse_datetime, parse_duration, parse_time
from .typing import (
from pydantic import errors
from pydantic.datetime_parse import parse_date, parse_datetime, parse_duration, parse_time
from pydantic.typing import (
AnyCallable,
all_literal_values,
display_as_type,
@ -41,14 +41,14 @@ from .typing import (
is_none_type,
is_typeddict,
)
from .utils import almost_equal_floats, lenient_issubclass, sequence_like
from pydantic.utils import almost_equal_floats, lenient_issubclass, sequence_like
if TYPE_CHECKING:
from typing_extensions import Literal, TypedDict
from .config import BaseConfig
from .fields import ModelField
from .types import ConstrainedDecimal, ConstrainedFloat, ConstrainedInt
from pydantic.config import BaseConfig
from pydantic.fields import ModelField
from pydantic.types import ConstrainedDecimal, ConstrainedFloat, ConstrainedInt
ConstrainedNumber = Union[ConstrainedDecimal, ConstrainedFloat, ConstrainedInt]
AnyOrderedDict = OrderedDict[Any, Any]
@ -594,7 +594,7 @@ NamedTupleT = TypeVar('NamedTupleT', bound=NamedTuple)
def make_namedtuple_validator(
namedtuple_cls: Type[NamedTupleT], config: Type['BaseConfig']
) -> Callable[[Tuple[Any, ...]], NamedTupleT]:
from .annotated_types import create_model_from_namedtuple
from pydantic.annotated_types import create_model_from_namedtuple
NamedTupleModel = create_model_from_namedtuple(
namedtuple_cls,
@ -619,7 +619,7 @@ def make_namedtuple_validator(
def make_typeddict_validator(
typeddict_cls: Type['TypedDict'], config: Type['BaseConfig'] # type: ignore[valid-type]
) -> Callable[[Any], Dict[str, Any]]:
from .annotated_types import create_model_from_typeddict
from pydantic.annotated_types import create_model_from_typeddict
TypedDictModel = create_model_from_typeddict(
typeddict_cls,
@ -698,7 +698,7 @@ _VALIDATORS: List[Tuple[Type[Any], List[Any]]] = [
def find_validators( # noqa: C901 (ignore complexity)
type_: Type[Any], config: Type['BaseConfig']
) -> Generator[AnyCallable, None, None]:
from .dataclasses import is_builtin_dataclass, make_dataclass_validator
from pydantic.dataclasses import is_builtin_dataclass, make_dataclass_validator
if type_ is Any or type_ is object:
return

View File

@ -1,6 +1,6 @@
__all__ = 'compiled', 'VERSION', 'version_info'
VERSION = '1.10.14'
VERSION = '1.10.16'
try:
import cython # type: ignore