Skip to content

Commit 5adc381

Browse files
Import modules/objects directly from v1 namespace (#9162)
Co-authored-by: Sydney Runkle <[email protected]>
1 parent 5476a75 commit 5adc381

27 files changed

+245
-166
lines changed

.github/workflows/ci.yml

+14-5
Original file line numberDiff line numberDiff line change
@@ -194,18 +194,27 @@ jobs:
194194
strategy:
195195
fail-fast: false
196196
matrix:
197-
os: [ubuntu, macos, windows]
197+
os: [ubuntu-latest, macos-13, macos-latest, windows-latest]
198198
python-version: ['3.7', '3.8', '3.9', '3.10']
199-
include:
200-
- os: ubuntu
199+
exclude:
200+
# Python 3.7, 3.8, and 3.9 are not available on macOS 14
201+
- os: macos-13
202+
python-version: '3.10'
203+
- os: macos-latest
204+
python-version: '3.7'
205+
- os: macos-latest
206+
python-version: '3.8'
207+
- os: macos-latest
208+
python-version: '3.9'
209+
210+
runs-on: ${{ matrix.os }}
201211

202212
env:
203213
PYTHON: ${{ matrix.python-version }}
204214
OS: ${{ matrix.os }}
205215
COMPILED: no
206216
DEPS: yes
207217

208-
runs-on: ${{ matrix.os }}-latest
209218
steps:
210219
- uses: actions/checkout@v3
211220

@@ -365,7 +374,7 @@ jobs:
365374
python-version: '3.8'
366375

367376
- name: install
368-
run: pip install -U twine setuptools wheel cibuildwheel
377+
run: pip install -U twine setuptools wheel cibuildwheel==2.17.0
369378

370379
- name: build sdist
371380
if: matrix.os == 'ubuntu' && matrix.python-version == '9'

pydantic/__init__.py

+16-16
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
# flake8: noqa
2-
from . import dataclasses
3-
from .annotated_types import create_model_from_namedtuple, create_model_from_typeddict
4-
from .class_validators import root_validator, validator
5-
from .config import BaseConfig, ConfigDict, Extra
6-
from .decorator import validate_arguments
7-
from .env_settings import BaseSettings
8-
from .error_wrappers import ValidationError
9-
from .errors import *
10-
from .fields import Field, PrivateAttr, Required
11-
from .main import *
12-
from .networks import *
13-
from .parse import Protocol
14-
from .tools import *
15-
from .types import *
16-
from .version import VERSION, compiled
2+
from pydantic import dataclasses
3+
from pydantic.annotated_types import create_model_from_namedtuple, create_model_from_typeddict
4+
from pydantic.class_validators import root_validator, validator
5+
from pydantic.config import BaseConfig, ConfigDict, Extra
6+
from pydantic.decorator import validate_arguments
7+
from pydantic.env_settings import BaseSettings
8+
from pydantic.error_wrappers import ValidationError
9+
from pydantic.errors import *
10+
from pydantic.fields import Field, PrivateAttr, Required
11+
from pydantic.main import *
12+
from pydantic.networks import *
13+
from pydantic.parse import Protocol
14+
from pydantic.tools import *
15+
from pydantic.types import *
16+
from pydantic.version import VERSION, compiled
1717

1818
__version__ = VERSION
1919

20-
# WARNING __all__ from .errors is not included here, it will be removed as an export here in v2
20+
# WARNING __all__ from pydantic.errors is not included here, it will be removed as an export here in v2
2121
# please use "from pydantic.errors import ..." instead
2222
__all__ = [
2323
# annotated types utils

pydantic/annotated_types.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import sys
22
from typing import TYPE_CHECKING, Any, Dict, FrozenSet, NamedTuple, Type
33

4-
from .fields import Required
5-
from .main import BaseModel, create_model
6-
from .typing import is_typeddict, is_typeddict_special
4+
from pydantic.fields import Required
5+
from pydantic.main import BaseModel, create_model
6+
from pydantic.typing import is_typeddict, is_typeddict_special
77

88
if TYPE_CHECKING:
99
from typing_extensions import TypedDict

pydantic/class_validators.py

+7-7
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
from types import FunctionType
66
from typing import TYPE_CHECKING, Any, Callable, Dict, Iterable, List, Optional, Set, Tuple, Type, Union, overload
77

8-
from .errors import ConfigError
9-
from .typing import AnyCallable
10-
from .utils import ROOT_KEY, in_ipython
8+
from pydantic.errors import ConfigError
9+
from pydantic.typing import AnyCallable
10+
from pydantic.utils import ROOT_KEY, in_ipython
1111

1212
if TYPE_CHECKING:
13-
from .typing import AnyClassMethod
13+
from pydantic.typing import AnyClassMethod
1414

1515

1616
class Validator:
@@ -36,9 +36,9 @@ def __init__(
3636
if TYPE_CHECKING:
3737
from inspect import Signature
3838

39-
from .config import BaseConfig
40-
from .fields import ModelField
41-
from .types import ModelOrDc
39+
from pydantic.config import BaseConfig
40+
from pydantic.fields import ModelField
41+
from pydantic.types import ModelOrDc
4242

4343
ValidatorCallable = Callable[[Optional[ModelOrDc], Any, Dict[str, Any], ModelField, Type[BaseConfig]], Any]
4444
ValidatorsList = List[ValidatorCallable]

pydantic/color.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@
1212
from colorsys import hls_to_rgb, rgb_to_hls
1313
from typing import TYPE_CHECKING, Any, Dict, Optional, Tuple, Union, cast
1414

15-
from .errors import ColorError
16-
from .utils import Representation, almost_equal_floats
15+
from pydantic.errors import ColorError
16+
from pydantic.utils import Representation, almost_equal_floats
1717

1818
if TYPE_CHECKING:
19-
from .typing import CallableGenerator, ReprArgs
19+
from pydantic.typing import CallableGenerator, ReprArgs
2020

2121
ColorTuple = Union[Tuple[int, int, int], Tuple[int, int, int, float]]
2222
ColorType = Union[ColorTuple, str]

pydantic/config.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@
44

55
from typing_extensions import Literal, Protocol
66

7-
from .typing import AnyArgTCallable, AnyCallable
8-
from .utils import GetterDict
9-
from .version import compiled
7+
from pydantic.typing import AnyArgTCallable, AnyCallable
8+
from pydantic.utils import GetterDict
9+
from pydantic.version import compiled
1010

1111
if TYPE_CHECKING:
1212
from typing import overload
1313

14-
from .fields import ModelField
15-
from .main import BaseModel
14+
from pydantic.fields import ModelField
15+
from pydantic.main import BaseModel
1616

1717
ConfigType = Type['BaseConfig']
1818

pydantic/dataclasses.py

+9-9
Original file line numberDiff line numberDiff line change
@@ -47,17 +47,17 @@ class M:
4747

4848
from typing_extensions import dataclass_transform
4949

50-
from .class_validators import gather_all_validators
51-
from .config import BaseConfig, ConfigDict, Extra, get_config
52-
from .error_wrappers import ValidationError
53-
from .errors import DataclassTypeError
54-
from .fields import Field, FieldInfo, Required, Undefined
55-
from .main import create_model, validate_model
56-
from .utils import ClassAttribute
50+
from pydantic.class_validators import gather_all_validators
51+
from pydantic.config import BaseConfig, ConfigDict, Extra, get_config
52+
from pydantic.error_wrappers import ValidationError
53+
from pydantic.errors import DataclassTypeError
54+
from pydantic.fields import Field, FieldInfo, Required, Undefined
55+
from pydantic.main import create_model, validate_model
56+
from pydantic.utils import ClassAttribute
5757

5858
if TYPE_CHECKING:
59-
from .main import BaseModel
60-
from .typing import CallableGenerator, NoArgAnyCallable
59+
from pydantic.main import BaseModel
60+
from pydantic.typing import CallableGenerator, NoArgAnyCallable
6161

6262
DataclassT = TypeVar('DataclassT', bound='Dataclass')
6363

pydantic/datetime_parse.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
from datetime import date, datetime, time, timedelta, timezone
1919
from typing import Dict, Optional, Type, Union
2020

21-
from . import errors
21+
from pydantic import errors
2222

2323
date_expr = r'(?P<year>\d{4})-(?P<month>\d{1,2})-(?P<day>\d{1,2})'
2424
time_expr = (

pydantic/decorator.py

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
from functools import wraps
22
from typing import TYPE_CHECKING, Any, Callable, Dict, List, Mapping, Optional, Tuple, Type, TypeVar, Union, overload
33

4-
from . import validator
5-
from .config import Extra
6-
from .errors import ConfigError
7-
from .main import BaseModel, create_model
8-
from .typing import get_all_type_hints
9-
from .utils import to_camel
4+
from pydantic import validator
5+
from pydantic.config import Extra
6+
from pydantic.errors import ConfigError
7+
from pydantic.main import BaseModel, create_model
8+
from pydantic.typing import get_all_type_hints
9+
from pydantic.utils import to_camel
1010

1111
__all__ = ('validate_arguments',)
1212

1313
if TYPE_CHECKING:
14-
from .typing import AnyCallable
14+
from pydantic.typing import AnyCallable
1515

1616
AnyCallableT = TypeVar('AnyCallableT', bound=AnyCallable)
1717
ConfigType = Union[None, Type[Any], Dict[str, Any]]

pydantic/env_settings.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
from pathlib import Path
44
from typing import AbstractSet, Any, Callable, ClassVar, Dict, List, Mapping, Optional, Tuple, Type, Union
55

6-
from .config import BaseConfig, Extra
7-
from .fields import ModelField
8-
from .main import BaseModel
9-
from .types import JsonWrapper
10-
from .typing import StrPath, display_as_type, get_origin, is_union
11-
from .utils import deep_update, lenient_issubclass, path_type, sequence_like
6+
from pydantic.config import BaseConfig, Extra
7+
from pydantic.fields import ModelField
8+
from pydantic.main import BaseModel
9+
from pydantic.types import JsonWrapper
10+
from pydantic.typing import StrPath, display_as_type, get_origin, is_union
11+
from pydantic.utils import deep_update, lenient_issubclass, path_type, sequence_like
1212

1313
env_file_sentinel = str(object())
1414

pydantic/error_wrappers.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
import json
22
from typing import TYPE_CHECKING, Any, Dict, Generator, List, Optional, Sequence, Tuple, Type, Union
33

4-
from .json import pydantic_encoder
5-
from .utils import Representation
4+
from pydantic.json import pydantic_encoder
5+
from pydantic.utils import Representation
66

77
if TYPE_CHECKING:
88
from typing_extensions import TypedDict
99

10-
from .config import BaseConfig
11-
from .types import ModelOrDc
12-
from .typing import ReprArgs
10+
from pydantic.config import BaseConfig
11+
from pydantic.types import ModelOrDc
12+
from pydantic.typing import ReprArgs
1313

1414
Loc = Tuple[Union[int, str], ...]
1515

pydantic/errors.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
from pathlib import Path
33
from typing import TYPE_CHECKING, Any, Callable, Sequence, Set, Tuple, Type, Union
44

5-
from .typing import display_as_type
5+
from pydantic.typing import display_as_type
66

77
if TYPE_CHECKING:
8-
from .typing import DictStrAny
8+
from pydantic.typing import DictStrAny
99

10-
# explicitly state exports to avoid "from .errors import *" also importing Decimal, Path etc.
10+
# explicitly state exports to avoid "from pydantic.errors import *" also importing Decimal, Path etc.
1111
__all__ = (
1212
'PydanticTypeError',
1313
'PydanticValueError',

pydantic/fields.py

+15-15
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@
2828

2929
from typing_extensions import Annotated, Final
3030

31-
from . import errors as errors_
32-
from .class_validators import Validator, make_generic_validator, prep_validators
33-
from .error_wrappers import ErrorWrapper
34-
from .errors import ConfigError, InvalidDiscriminator, MissingDiscriminator, NoneIsNotAllowedError
35-
from .types import Json, JsonWrapper
36-
from .typing import (
31+
from pydantic import errors as errors_
32+
from pydantic.class_validators import Validator, make_generic_validator, prep_validators
33+
from pydantic.error_wrappers import ErrorWrapper
34+
from pydantic.errors import ConfigError, InvalidDiscriminator, MissingDiscriminator, NoneIsNotAllowedError
35+
from pydantic.types import Json, JsonWrapper
36+
from pydantic.typing import (
3737
NoArgAnyCallable,
3838
convert_generics,
3939
display_as_type,
@@ -48,7 +48,7 @@
4848
is_union,
4949
new_type_supertype,
5050
)
51-
from .utils import (
51+
from pydantic.utils import (
5252
PyObjectStr,
5353
Representation,
5454
ValueItems,
@@ -59,7 +59,7 @@
5959
sequence_like,
6060
smart_deepcopy,
6161
)
62-
from .validators import constant_validator, dict_validator, find_validators, validate_json
62+
from pydantic.validators import constant_validator, dict_validator, find_validators, validate_json
6363

6464
Required: Any = Ellipsis
6565

@@ -83,11 +83,11 @@ def __deepcopy__(self: T, _: Any) -> T:
8383
Undefined = UndefinedType()
8484

8585
if TYPE_CHECKING:
86-
from .class_validators import ValidatorsList
87-
from .config import BaseConfig
88-
from .error_wrappers import ErrorList
89-
from .types import ModelOrDc
90-
from .typing import AbstractSetIntStr, MappingIntStrAny, ReprArgs
86+
from pydantic.class_validators import ValidatorsList
87+
from pydantic.config import BaseConfig
88+
from pydantic.error_wrappers import ErrorList
89+
from pydantic.types import ModelOrDc
90+
from pydantic.typing import AbstractSetIntStr, MappingIntStrAny, ReprArgs
9191

9292
ValidateReturn = Tuple[Optional[Any], Optional[ErrorList]]
9393
LocStr = Union[Tuple[Union[int, str], ...], str]
@@ -490,7 +490,7 @@ def infer(
490490
class_validators: Optional[Dict[str, Validator]],
491491
config: Type['BaseConfig'],
492492
) -> 'ModelField':
493-
from .schema import get_annotation_from_field_info
493+
from pydantic.schema import get_annotation_from_field_info
494494

495495
field_info, value = cls._get_field_info(name, annotation, value, config)
496496
required: 'BoolUndefined' = Undefined
@@ -1160,7 +1160,7 @@ def is_complex(self) -> bool:
11601160
"""
11611161
Whether the field is "complex" eg. env variables should be parsed as JSON.
11621162
"""
1163-
from .main import BaseModel
1163+
from pydantic.main import BaseModel
11641164

11651165
return (
11661166
self.shape != SHAPE_SINGLETON

pydantic/generics.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@
2222

2323
from typing_extensions import Annotated, Literal as ExtLiteral
2424

25-
from .class_validators import gather_all_validators
26-
from .fields import DeferredType
27-
from .main import BaseModel, create_model
28-
from .types import JsonWrapper
29-
from .typing import display_as_type, get_all_type_hints, get_args, get_origin, typing_base
30-
from .utils import all_identical, lenient_issubclass
25+
from pydantic.class_validators import gather_all_validators
26+
from pydantic.fields import DeferredType
27+
from pydantic.main import BaseModel, create_model
28+
from pydantic.types import JsonWrapper
29+
from pydantic.typing import display_as_type, get_all_type_hints, get_args, get_origin, typing_base
30+
from pydantic.utils import all_identical, lenient_issubclass
3131

3232
if sys.version_info >= (3, 10):
3333
from typing import _UnionGenericAlias

pydantic/json.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
from typing import Any, Callable, Dict, Type, Union
1010
from uuid import UUID
1111

12-
from .color import Color
13-
from .networks import NameEmail
14-
from .types import SecretBytes, SecretStr
12+
from pydantic.color import Color
13+
from pydantic.networks import NameEmail
14+
from pydantic.types import SecretBytes, SecretStr
1515

1616
__all__ = 'pydantic_encoder', 'custom_pydantic_encoder', 'timedelta_isoformat'
1717

@@ -72,7 +72,7 @@ def decimal_encoder(dec_value: Decimal) -> Union[int, float]:
7272
def pydantic_encoder(obj: Any) -> Any:
7373
from dataclasses import asdict, is_dataclass
7474

75-
from .main import BaseModel
75+
from pydantic.main import BaseModel
7676

7777
if isinstance(obj, BaseModel):
7878
return obj.dict()

0 commit comments

Comments
 (0)