diff --git a/pydantic/class_validators.py b/pydantic/class_validators.py
--- a/pydantic/class_validators.py
+++ b/pydantic/class_validators.py
@@ -6,7 +6,8 @@
 from typing import TYPE_CHECKING, Any, Callable, Dict, List, Optional, Set, Type
 
 from .errors import ConfigError
-from .utils import AnyCallable, in_ipython
+from .typing import AnyCallable
+from .utils import in_ipython
 
 if TYPE_CHECKING:  # pragma: no cover
     from .main import BaseConfig
diff --git a/pydantic/color.py b/pydantic/color.py
--- a/pydantic/color.py
+++ b/pydantic/color.py
@@ -18,7 +18,7 @@
 from .utils import almost_equal_floats
 
 if TYPE_CHECKING:  # pragma: no cover
-    from .types import CallableGenerator
+    from .typing import CallableGenerator
 
 ColorTuple = Union[Tuple[int, int, int], Tuple[int, int, int, float]]
 ColorType = Union[ColorTuple, str]
diff --git a/pydantic/dataclasses.py b/pydantic/dataclasses.py
--- a/pydantic/dataclasses.py
+++ b/pydantic/dataclasses.py
@@ -6,7 +6,7 @@
 from .errors import DataclassTypeError
 from .fields import Required
 from .main import create_model, validate_model
-from .utils import AnyType
+from .typing import AnyType
 
 if TYPE_CHECKING:  # pragma: no cover
     from .main import BaseConfig, BaseModel  # noqa: F401
diff --git a/pydantic/errors.py b/pydantic/errors.py
--- a/pydantic/errors.py
+++ b/pydantic/errors.py
@@ -2,7 +2,7 @@
 from pathlib import Path
 from typing import Any, Union
 
-from .utils import AnyType, display_as_type
+from .typing import AnyType, display_as_type
 
 
 class PydanticErrorMixin:
diff --git a/pydantic/fields.py b/pydantic/fields.py
--- a/pydantic/fields.py
+++ b/pydantic/fields.py
@@ -22,7 +22,7 @@
 from .class_validators import Validator, make_generic_validator
 from .error_wrappers import ErrorWrapper
 from .types import Json, JsonWrapper
-from .utils import (
+from .typing import (
     AnyCallable,
     AnyType,
     Callable,
@@ -31,8 +31,8 @@
     is_literal_type,
     lenient_issubclass,
     literal_values,
-    sequence_like,
 )
+from .utils import sequence_like
 from .validators import NoneType, constant_validator, dict_validator, find_validators
 
 try:
diff --git a/pydantic/main.py b/pydantic/main.py
--- a/pydantic/main.py
+++ b/pydantic/main.py
@@ -7,22 +7,7 @@
 from functools import partial
 from pathlib import Path
 from types import FunctionType
-from typing import (
-    TYPE_CHECKING,
-    Any,
-    Callable,
-    Dict,
-    Generator,
-    List,
-    Optional,
-    Set,
-    Tuple,
-    Type,
-    TypeVar,
-    Union,
-    cast,
-    no_type_check,
-)
+from typing import TYPE_CHECKING, Any, Callable, Dict, Optional, Tuple, Type, TypeVar, Union, cast, no_type_check
 
 from .class_validators import ValidatorGroup, extract_validators, inherit_validators
 from .error_wrappers import ErrorWrapper, ValidationError
@@ -32,36 +17,18 @@
 from .parse import Protocol, load_file, load_str_bytes
 from .schema import model_schema
 from .types import PyObject, StrBytes
-from .utils import (
-    AnyCallable,
-    AnyType,
-    ForwardRef,
-    GetterDict,
-    ValueItems,
-    change_exception,
-    is_classvar,
-    resolve_annotations,
-    truncate,
-    update_field_forward_refs,
-    validate_field_name,
-)
+from .typing import AnyCallable, AnyType, ForwardRef, is_classvar, resolve_annotations, update_field_forward_refs
+from .utils import GetterDict, ValueItems, change_exception, truncate, validate_field_name
 
 if TYPE_CHECKING:  # pragma: no cover
     from .dataclasses import DataclassType  # noqa: F401
     from .types import CallableGenerator, ModelOrDc
     from .class_validators import ValidatorListDict
 
-    AnyGenerator = Generator[Any, None, None]
-    TupleGenerator = Generator[Tuple[str, Any], None, None]
-    DictStrAny = Dict[str, Any]
+    from .typing import TupleGenerator, DictStrAny, DictAny, SetStr, SetIntStr, DictIntStrAny  # noqa: F401
+
     ConfigType = Type['BaseConfig']
-    DictAny = Dict[Any, Any]
-    SetStr = Set[str]
-    ListStr = List[str]
     Model = TypeVar('Model', bound='BaseModel')
-    IntStr = Union[int, str]
-    SetIntStr = Set[IntStr]
-    DictIntStrAny = Dict[IntStr, Any]
 
 try:
     import cython  # type: ignore
diff --git a/pydantic/schema.py b/pydantic/schema.py
--- a/pydantic/schema.py
+++ b/pydantic/schema.py
@@ -48,7 +48,7 @@
     conlist,
     constr,
 )
-from .utils import (
+from .typing import (
     is_callable_type,
     is_literal_type,
     is_new_type,
diff --git a/pydantic/types.py b/pydantic/types.py
--- a/pydantic/types.py
+++ b/pydantic/types.py
@@ -13,26 +13,12 @@
 )
 from pathlib import Path
 from types import new_class
-from typing import (
-    TYPE_CHECKING,
-    Any,
-    Callable,
-    Dict,
-    Generator,
-    List,
-    Optional,
-    Pattern,
-    Set,
-    Tuple,
-    Type,
-    TypeVar,
-    Union,
-    cast,
-)
+from typing import TYPE_CHECKING, Any, Callable, Dict, List, Optional, Pattern, Set, Tuple, Type, TypeVar, Union, cast
 from uuid import UUID
 
 from . import errors
-from .utils import AnyType, change_exception, import_string, make_dsn, url_regex_generator, validate_email
+from .typing import AnyType
+from .utils import change_exception, import_string, make_dsn, url_regex_generator, validate_email
 from .validators import (
     bytes_validator,
     decimal_validator,
@@ -108,9 +94,8 @@
     from .fields import Field
     from .dataclasses import DataclassType  # noqa: F401
     from .main import BaseModel, BaseConfig  # noqa: F401
-    from .utils import AnyCallable
+    from .typing import CallableGenerator
 
-    CallableGenerator = Generator[AnyCallable, None, None]
     ModelOrDc = Type[Union['BaseModel', 'DataclassType']]
 
 
diff --git a/pydantic/typing.py b/pydantic/typing.py
new file mode 100644
--- /dev/null
+++ b/pydantic/typing.py
@@ -0,0 +1,200 @@
+import sys
+from enum import Enum
+from typing import (  # type: ignore
+    TYPE_CHECKING,
+    Any,
+    ClassVar,
+    Dict,
+    Generator,
+    List,
+    NewType,
+    Optional,
+    Set,
+    Tuple,
+    Type,
+    Union,
+    _eval_type,
+)
+
+try:
+    from typing import _TypingBase as typing_base  # type: ignore
+except ImportError:
+    from typing import _Final as typing_base  # type: ignore
+
+try:
+    from typing import ForwardRef  # type: ignore
+
+    def evaluate_forwardref(type_, globalns, localns):  # type: ignore
+        return type_._evaluate(globalns, localns)
+
+
+except ImportError:
+    # python 3.6
+    from typing import _ForwardRef as ForwardRef  # type: ignore
+
+    def evaluate_forwardref(type_, globalns, localns):  # type: ignore
+        return type_._eval_type(globalns, localns)
+
+
+if sys.version_info < (3, 7):
+    from typing import Callable
+
+    AnyCallable = Callable[..., Any]
+else:
+    from collections.abc import Callable
+    from typing import Callable as TypingCallable
+
+    AnyCallable = TypingCallable[..., Any]
+
+try:
+    from typing_extensions import Literal
+except ImportError:
+    Literal = None  # type: ignore
+
+
+if TYPE_CHECKING:  # pragma: no cover
+    from .fields import Field
+
+    TupleGenerator = Generator[Tuple[str, Any], None, None]
+    DictStrAny = Dict[str, Any]
+    DictAny = Dict[Any, Any]
+    SetStr = Set[str]
+    ListStr = List[str]
+    IntStr = Union[int, str]
+    SetIntStr = Set[IntStr]
+    DictIntStrAny = Dict[IntStr, Any]
+    CallableGenerator = Generator[AnyCallable, None, None]
+
+__all__ = (
+    'ForwardRef',
+    'Callable',
+    'AnyCallable',
+    'AnyType',
+    'display_as_type',
+    'lenient_issubclass',
+    'resolve_annotations',
+    'is_callable_type',
+    'is_literal_type',
+    'literal_values',
+    'Literal',
+    'is_new_type',
+    'new_type_supertype',
+    'is_classvar',
+    'update_field_forward_refs',
+    'TupleGenerator',
+    'DictStrAny',
+    'DictAny',
+    'SetStr',
+    'ListStr',
+    'IntStr',
+    'SetIntStr',
+    'DictIntStrAny',
+    'CallableGenerator',
+)
+
+
+AnyType = Type[Any]
+
+
+def display_as_type(v: AnyType) -> str:
+    if not isinstance(v, typing_base) and not isinstance(v, type):
+        v = type(v)
+
+    if lenient_issubclass(v, Enum):
+        if issubclass(v, int):
+            return 'int'
+        elif issubclass(v, str):
+            return 'str'
+        else:
+            return 'enum'
+
+    try:
+        return v.__name__
+    except AttributeError:
+        # happens with unions
+        return str(v)
+
+
+def lenient_issubclass(cls: Any, class_or_tuple: Union[AnyType, Tuple[AnyType, ...]]) -> bool:
+    return isinstance(cls, type) and issubclass(cls, class_or_tuple)
+
+
+def resolve_annotations(raw_annotations: Dict[str, AnyType], module_name: Optional[str]) -> Dict[str, AnyType]:
+    """
+    Partially taken from typing.get_type_hints.
+
+    Resolve string or ForwardRef annotations into type objects if possible.
+    """
+    if module_name:
+        base_globals: Optional[Dict[str, Any]] = sys.modules[module_name].__dict__
+    else:
+        base_globals = None
+    annotations = {}
+    for name, value in raw_annotations.items():
+        if isinstance(value, str):
+            if sys.version_info >= (3, 7):
+                value = ForwardRef(value, is_argument=False)
+            else:
+                value = ForwardRef(value)
+        try:
+            value = _eval_type(value, base_globals, None)
+        except NameError:
+            # this is ok, it can be fixed with update_forward_refs
+            pass
+        annotations[name] = value
+    return annotations
+
+
+def is_callable_type(type_: AnyType) -> bool:
+    return type_ is Callable or getattr(type_, '__origin__', None) is Callable
+
+
+if sys.version_info >= (3, 7):
+
+    def is_literal_type(type_: AnyType) -> bool:
+        return Literal is not None and getattr(type_, '__origin__', None) is Literal
+
+    def literal_values(type_: AnyType) -> Tuple[Any, ...]:
+        return type_.__args__
+
+
+else:
+
+    def is_literal_type(type_: AnyType) -> bool:
+        return Literal is not None and hasattr(type_, '__values__') and type_ == Literal[type_.__values__]
+
+    def literal_values(type_: AnyType) -> Tuple[Any, ...]:
+        return type_.__values__
+
+
+test_type = NewType('test_type', str)
+
+
+def is_new_type(type_: AnyType) -> bool:
+    return isinstance(type_, type(test_type)) and hasattr(type_, '__supertype__')
+
+
+def new_type_supertype(type_: AnyType) -> AnyType:
+    while hasattr(type_, '__supertype__'):
+        type_ = type_.__supertype__
+    return type_
+
+
+def _check_classvar(v: AnyType) -> bool:
+    return type(v) == type(ClassVar) and (sys.version_info < (3, 7) or getattr(v, '_name', None) == 'ClassVar')
+
+
+def is_classvar(ann_type: AnyType) -> bool:
+    return _check_classvar(ann_type) or _check_classvar(getattr(ann_type, '__origin__', None))
+
+
+def update_field_forward_refs(field: 'Field', globalns: Any, localns: Any) -> None:
+    """
+    Try to update ForwardRefs on fields based on this Field, globalns and localns.
+    """
+    if type(field.type_) == ForwardRef:
+        field.type_ = evaluate_forwardref(field.type_, globalns, localns or None)
+        field.prepare()
+    if field.sub_fields:
+        for sub_f in field.sub_fields:
+            update_field_forward_refs(sub_f, globalns=globalns, localns=localns)
diff --git a/pydantic/utils.py b/pydantic/utils.py
--- a/pydantic/utils.py
+++ b/pydantic/utils.py
@@ -1,79 +1,24 @@
 import inspect
 import re
-import sys
 from contextlib import contextmanager
-from enum import Enum
 from functools import lru_cache
 from importlib import import_module
-from typing import (  # type: ignore
-    TYPE_CHECKING,
-    Any,
-    ClassVar,
-    Dict,
-    Generator,
-    List,
-    NewType,
-    Optional,
-    Pattern,
-    Set,
-    Tuple,
-    Type,
-    Union,
-    _eval_type,
-    no_type_check,
-)
-
-import pydantic
+from typing import TYPE_CHECKING, Any, Dict, Generator, List, Optional, Pattern, Set, Tuple, Type, Union, no_type_check
 
-try:
-    from typing_extensions import Literal
-except ImportError:
-    Literal = None  # type: ignore
+from . import errors
+from .typing import AnyType
 
 try:
     import email_validator
 except ImportError:
     email_validator = None
 
-try:
-    from typing import _TypingBase as typing_base  # type: ignore
-except ImportError:
-    from typing import _Final as typing_base  # type: ignore
-
-try:
-    from typing import ForwardRef  # type: ignore
-
-    def evaluate_forwardref(type_, globalns, localns):  # type: ignore
-        return type_._evaluate(globalns, localns)
-
-
-except ImportError:
-    # python 3.6
-    from typing import _ForwardRef as ForwardRef  # type: ignore
-
-    def evaluate_forwardref(type_, globalns, localns):  # type: ignore
-        return type_._eval_type(globalns, localns)
-
-
 if TYPE_CHECKING:  # pragma: no cover
     from .main import BaseModel  # noqa: F401
-    from .main import Field  # noqa: F401
-    from .main import SetIntStr, DictIntStrAny, IntStr  # noqa: F401
-    from . import errors  # noqa: F401
-
-if sys.version_info < (3, 7):
-    from typing import Callable
-
-    AnyCallable = Callable[..., Any]
-else:
-    from collections.abc import Callable
-    from typing import Callable as TypingCallable
-
-    AnyCallable = TypingCallable[..., Any]
+    from .typing import SetIntStr, DictIntStrAny, IntStr  # noqa: F401
 
 
 PRETTY_REGEX = re.compile(r'([\w ]*?) *<(.*)> *')
-AnyType = Type[Any]
 
 
 def validate_email(value: str) -> Tuple[str, str]:
@@ -100,7 +45,7 @@ def validate_email(value: str) -> Tuple[str, str]:
     try:
         email_validator.validate_email(email, check_deliverability=False)
     except email_validator.EmailNotValidError as e:
-        raise pydantic.errors.EmailError() from e
+        raise errors.EmailError() from e
 
     return name or email[: email.index('@')], email.lower()
 
@@ -180,25 +125,6 @@ def truncate(v: Union[str], *, max_len: int = 80) -> str:
     return v
 
 
-def display_as_type(v: AnyType) -> str:
-    if not isinstance(v, typing_base) and not isinstance(v, type):
-        v = type(v)
-
-    if lenient_issubclass(v, Enum):
-        if issubclass(v, int):
-            return 'int'
-        elif issubclass(v, str):
-            return 'str'
-        else:
-            return 'enum'
-
-    try:
-        return v.__name__
-    except AttributeError:
-        # happens with unions
-        return str(v)
-
-
 ExcType = Type[Exception]
 
 
@@ -257,10 +183,6 @@ def url_regex_generator(*, relative: bool, require_tld: bool) -> Pattern[str]:
     )
 
 
-def lenient_issubclass(cls: Any, class_or_tuple: Union[AnyType, Tuple[AnyType, ...]]) -> bool:
-    return isinstance(cls, type) and issubclass(cls, class_or_tuple)
-
-
 def in_ipython() -> bool:
     """
     Check whether we're in an ipython environment, including jupyter notebooks.
@@ -273,87 +195,6 @@ def in_ipython() -> bool:
         return True
 
 
-def resolve_annotations(raw_annotations: Dict[str, AnyType], module_name: Optional[str]) -> Dict[str, AnyType]:
-    """
-    Partially taken from typing.get_type_hints.
-
-    Resolve string or ForwardRef annotations into type objects if possible.
-    """
-    if module_name:
-        base_globals: Optional[Dict[str, Any]] = sys.modules[module_name].__dict__
-    else:
-        base_globals = None
-    annotations = {}
-    for name, value in raw_annotations.items():
-        if isinstance(value, str):
-            if sys.version_info >= (3, 7):
-                value = ForwardRef(value, is_argument=False)
-            else:
-                value = ForwardRef(value)
-        try:
-            value = _eval_type(value, base_globals, None)
-        except NameError:
-            # this is ok, it can be fixed with update_forward_refs
-            pass
-        annotations[name] = value
-    return annotations
-
-
-def is_callable_type(type_: AnyType) -> bool:
-    return type_ is Callable or getattr(type_, '__origin__', None) is Callable
-
-
-if sys.version_info >= (3, 7):
-
-    def is_literal_type(type_: AnyType) -> bool:
-        return Literal is not None and getattr(type_, '__origin__', None) is Literal
-
-    def literal_values(type_: AnyType) -> Tuple[Any, ...]:
-        return type_.__args__
-
-
-else:
-
-    def is_literal_type(type_: AnyType) -> bool:
-        return Literal is not None and hasattr(type_, '__values__') and type_ == Literal[type_.__values__]
-
-    def literal_values(type_: AnyType) -> Tuple[Any, ...]:
-        return type_.__values__
-
-
-test_type = NewType('test_type', str)
-
-
-def is_new_type(type_: AnyType) -> bool:
-    return isinstance(type_, type(test_type)) and hasattr(type_, '__supertype__')
-
-
-def new_type_supertype(type_: AnyType) -> AnyType:
-    while hasattr(type_, '__supertype__'):
-        type_ = type_.__supertype__
-    return type_
-
-
-def _check_classvar(v: AnyType) -> bool:
-    return type(v) == type(ClassVar) and (sys.version_info < (3, 7) or getattr(v, '_name', None) == 'ClassVar')
-
-
-def is_classvar(ann_type: AnyType) -> bool:
-    return _check_classvar(ann_type) or _check_classvar(getattr(ann_type, '__origin__', None))
-
-
-def update_field_forward_refs(field: 'Field', globalns: Any, localns: Any) -> None:
-    """
-    Try to update ForwardRefs on fields based on this Field, globalns and localns.
-    """
-    if type(field.type_) == ForwardRef:
-        field.type_ = evaluate_forwardref(field.type_, globalns, localns or None)
-        field.prepare()
-    if field.sub_fields:
-        for sub_f in field.sub_fields:
-            update_field_forward_refs(sub_f, globalns=globalns, localns=localns)
-
-
 def almost_equal_floats(value_1: float, value_2: float, *, delta: float = 1e-8) -> bool:
     """
     Return True if two floats are almost equal
diff --git a/pydantic/validators.py b/pydantic/validators.py
--- a/pydantic/validators.py
+++ b/pydantic/validators.py
@@ -25,17 +25,8 @@
 
 from . import errors
 from .datetime_parse import parse_date, parse_datetime, parse_duration, parse_time
-from .utils import (
-    AnyCallable,
-    AnyType,
-    ForwardRef,
-    almost_equal_floats,
-    change_exception,
-    display_as_type,
-    is_callable_type,
-    is_literal_type,
-    sequence_like,
-)
+from .typing import AnyCallable, AnyType, ForwardRef, display_as_type, is_callable_type, is_literal_type
+from .utils import almost_equal_floats, change_exception, sequence_like
 
 if TYPE_CHECKING:  # pragma: no cover
     from .fields import Field

diff --git a/tests/test_forward_ref.py b/tests/test_forward_ref.py
--- a/tests/test_forward_ref.py
+++ b/tests/test_forward_ref.py
@@ -43,7 +43,7 @@ def test_basic_forward_ref(create_module):
         """
 from typing import Optional
 from pydantic import BaseModel
-from pydantic.utils import ForwardRef
+from pydantic.typing import ForwardRef
 
 class Foo(BaseModel):
     a: int
@@ -63,7 +63,7 @@ def test_self_forward_ref_module(create_module):
     module = create_module(
         """
 from pydantic import BaseModel
-from pydantic.utils import ForwardRef
+from pydantic.typing import ForwardRef
 
 Foo = ForwardRef('Foo')
 
@@ -84,7 +84,7 @@ def test_self_forward_ref_collection(create_module):
         """
 from typing import List, Dict
 from pydantic import BaseModel
-from pydantic.utils import ForwardRef
+from pydantic.typing import ForwardRef
 
 Foo = ForwardRef('Foo')
 
@@ -117,7 +117,7 @@ def test_self_forward_ref_local(create_module):
     module = create_module(
         """
 from pydantic import BaseModel
-from pydantic.utils import ForwardRef
+from pydantic.typing import ForwardRef
 
 def main():
     Foo = ForwardRef('Foo')
@@ -139,7 +139,7 @@ def test_missing_update_forward_refs(create_module):
     module = create_module(
         """
 from pydantic import BaseModel
-from pydantic.utils import ForwardRef
+from pydantic.typing import ForwardRef
 
 Foo = ForwardRef('Foo')
 
@@ -190,7 +190,7 @@ def test_forward_ref_sub_types(create_module):
         """
 from typing import Union
 from pydantic import BaseModel
-from pydantic.utils import ForwardRef
+from pydantic.typing import ForwardRef
 
 class Leaf(BaseModel):
     a: str
@@ -222,7 +222,7 @@ def test_forward_ref_nested_sub_types(create_module):
         """
 from typing import Tuple, Union
 from pydantic import BaseModel
-from pydantic.utils import ForwardRef
+from pydantic.typing import ForwardRef
 
 class Leaf(BaseModel):
     a: str
diff --git a/tests/test_schema.py b/tests/test_schema.py
--- a/tests/test_schema.py
+++ b/tests/test_schema.py
@@ -65,7 +65,7 @@
     constr,
     urlstr,
 )
-from pydantic.utils import Literal
+from pydantic.typing import Literal
 
 try:
     import email_validator
diff --git a/tests/test_utils.py b/tests/test_utils.py
--- a/tests/test_utils.py
+++ b/tests/test_utils.py
@@ -4,17 +4,8 @@
 
 import pytest
 
-from pydantic.utils import (
-    ValueItems,
-    display_as_type,
-    import_string,
-    is_new_type,
-    lenient_issubclass,
-    make_dsn,
-    new_type_supertype,
-    truncate,
-    validate_email,
-)
+from pydantic.typing import display_as_type, is_new_type, lenient_issubclass, new_type_supertype
+from pydantic.utils import ValueItems, import_string, make_dsn, truncate, validate_email
 
 try:
     import email_validator

typing aliases should go in to pydantic.typing
We have quite a few aliases for standard lib `typing` to support both 3.6 and 3.7.

Upon version 1 we should move all these into a new module `pydantic.typing`.

tests/test_forward_ref.py::test_postponed_annotations tests/test_forward_ref.py::test_postponed_annotations_optional tests/test_forward_ref.py::test_basic_forward_ref tests/test_forward_ref.py::test_missing_update_forward_refs tests/test_forward_ref.py::test_forward_ref_dataclass tests/test_forward_ref.py::test_forward_ref_dataclass_with_future_annotations tests/test_schema.py::test_key tests/test_schema.py::test_by_alias tests/test_schema.py::test_sub_model tests/test_schema.py::test_schema_class tests/test_schema.py::test_schema_repr tests/test_schema.py::test_schema_class_by_alias tests/test_schema.py::test_choices tests/test_schema.py::test_json_schema tests/test_schema.py::test_list_sub_model tests/test_schema.py::test_optional tests/test_schema.py::test_any tests/test_schema.py::test_set tests/test_schema.py::test_const_str tests/test_schema.py::test_const_false tests/test_schema.py::test_tuple[tuple-expected_schema0] tests/test_schema.py::test_tuple[field_type1-expected_schema1] tests/test_schema.py::test_tuple[field_type2-expected_schema2] tests/test_schema.py::test_bool tests/test_schema.py::test_strict_bool tests/test_schema.py::test_dict tests/test_schema.py::test_list tests/test_schema.py::test_list_union_dict[field_type0-expected_schema0] tests/test_schema.py::test_list_union_dict[field_type1-expected_schema1] tests/test_schema.py::test_list_union_dict[field_type2-expected_schema2] tests/test_schema.py::test_list_union_dict[field_type3-expected_schema3] tests/test_schema.py::test_list_union_dict[field_type4-expected_schema4] tests/test_schema.py::test_date_types[datetime-expected_schema0] tests/test_schema.py::test_date_types[date-expected_schema1] tests/test_schema.py::test_date_types[time-expected_schema2] tests/test_schema.py::test_date_types[timedelta-expected_schema3] tests/test_schema.py::test_str_basic_types[field_type0-expected_schema0] tests/test_schema.py::test_str_basic_types[field_type1-expected_schema1] tests/test_schema.py::test_str_basic_types[field_type2-expected_schema2] tests/test_schema.py::test_str_basic_types[field_type3-expected_schema3] tests/test_schema.py::test_str_constrained_types[StrictStr-expected_schema0] tests/test_schema.py::test_str_constrained_types[ConstrainedStr-expected_schema1] tests/test_schema.py::test_str_constrained_types[ConstrainedStrValue-expected_schema2] tests/test_schema.py::test_special_str_types[UrlStr-expected_schema0] tests/test_schema.py::test_special_str_types[UrlStrValue-expected_schema1] tests/test_schema.py::test_special_str_types[DSN-expected_schema2] tests/test_schema.py::test_email_str_types[EmailStr-email] tests/test_schema.py::test_email_str_types[NameEmail-name-email] tests/test_schema.py::test_secret_types[SecretBytes-string] tests/test_schema.py::test_secret_types[SecretStr-string] tests/test_schema.py::test_special_int_types[ConstrainedInt-expected_schema0] tests/test_schema.py::test_special_int_types[ConstrainedIntValue-expected_schema1] tests/test_schema.py::test_special_int_types[ConstrainedIntValue-expected_schema2] tests/test_schema.py::test_special_int_types[ConstrainedIntValue-expected_schema3] tests/test_schema.py::test_special_int_types[PositiveInt-expected_schema4] tests/test_schema.py::test_special_int_types[NegativeInt-expected_schema5] tests/test_schema.py::test_special_float_types[ConstrainedFloat-expected_schema0] tests/test_schema.py::test_special_float_types[ConstrainedFloatValue-expected_schema1] tests/test_schema.py::test_special_float_types[ConstrainedFloatValue-expected_schema2] tests/test_schema.py::test_special_float_types[ConstrainedFloatValue-expected_schema3] tests/test_schema.py::test_special_float_types[PositiveFloat-expected_schema4] tests/test_schema.py::test_special_float_types[NegativeFloat-expected_schema5] tests/test_schema.py::test_special_float_types[ConstrainedDecimal-expected_schema6] tests/test_schema.py::test_special_float_types[ConstrainedDecimalValue-expected_schema7] tests/test_schema.py::test_special_float_types[ConstrainedDecimalValue-expected_schema8] tests/test_schema.py::test_special_float_types[ConstrainedDecimalValue-expected_schema9] tests/test_schema.py::test_uuid_types[UUID-uuid] tests/test_schema.py::test_uuid_types[UUID1-uuid1] tests/test_schema.py::test_uuid_types[UUID3-uuid3] tests/test_schema.py::test_uuid_types[UUID4-uuid4] tests/test_schema.py::test_uuid_types[UUID5-uuid5] tests/test_schema.py::test_path_types[FilePath-file-path] tests/test_schema.py::test_path_types[DirectoryPath-directory-path] tests/test_schema.py::test_path_types[Path-path] tests/test_schema.py::test_json_type tests/test_schema.py::test_ipv4address_type tests/test_schema.py::test_ipv6address_type tests/test_schema.py::test_ipvanyaddress_type tests/test_schema.py::test_ipv4interface_type tests/test_schema.py::test_ipv6interface_type tests/test_schema.py::test_ipvanyinterface_type tests/test_schema.py::test_ipv4network_type tests/test_schema.py::test_ipv6network_type tests/test_schema.py::test_ipvanynetwork_type tests/test_schema.py::test_callable_type[annotation0] tests/test_schema.py::test_callable_type[annotation1] tests/test_schema.py::test_error_non_supported_types tests/test_schema.py::test_flat_models_unique_models tests/test_schema.py::test_flat_models_with_submodels tests/test_schema.py::test_flat_models_with_submodels_from_sequence tests/test_schema.py::test_model_name_maps tests/test_schema.py::test_schema_overrides tests/test_schema.py::test_schema_from_models tests/test_schema.py::test_schema_with_ref_prefix tests/test_schema.py::test_schema_no_definitions tests/test_schema.py::test_list_default tests/test_schema.py::test_dict_default tests/test_schema.py::test_constraints_schema[kwargs0-str-expected_extra0] tests/test_schema.py::test_constraints_schema[kwargs1-ConstrainedStrValue-expected_extra1] tests/test_schema.py::test_constraints_schema[kwargs2-str-expected_extra2] tests/test_schema.py::test_constraints_schema[kwargs3-bytes-expected_extra3] tests/test_schema.py::test_constraints_schema[kwargs4-str-expected_extra4] tests/test_schema.py::test_constraints_schema[kwargs5-int-expected_extra5] tests/test_schema.py::test_constraints_schema[kwargs6-int-expected_extra6] tests/test_schema.py::test_constraints_schema[kwargs7-int-expected_extra7] tests/test_schema.py::test_constraints_schema[kwargs8-int-expected_extra8] tests/test_schema.py::test_constraints_schema[kwargs9-int-expected_extra9] tests/test_schema.py::test_constraints_schema[kwargs10-float-expected_extra10] tests/test_schema.py::test_constraints_schema[kwargs11-float-expected_extra11] tests/test_schema.py::test_constraints_schema[kwargs12-float-expected_extra12] tests/test_schema.py::test_constraints_schema[kwargs13-float-expected_extra13] tests/test_schema.py::test_constraints_schema[kwargs14-float-expected_extra14] tests/test_schema.py::test_constraints_schema[kwargs15-Decimal-expected_extra15] tests/test_schema.py::test_constraints_schema[kwargs16-Decimal-expected_extra16] tests/test_schema.py::test_constraints_schema[kwargs17-Decimal-expected_extra17] tests/test_schema.py::test_constraints_schema[kwargs18-Decimal-expected_extra18] tests/test_schema.py::test_constraints_schema[kwargs19-Decimal-expected_extra19] tests/test_schema.py::test_not_constraints_schema[kwargs0-int-expected0] tests/test_schema.py::test_not_constraints_schema[kwargs1-float-expected1] tests/test_schema.py::test_not_constraints_schema[kwargs2-Decimal-expected2] tests/test_schema.py::test_not_constraints_schema[kwargs3-int-expected3] tests/test_schema.py::test_not_constraints_schema[kwargs4-str-expected4] tests/test_schema.py::test_not_constraints_schema[kwargs5-bytes-expected5] tests/test_schema.py::test_not_constraints_schema[kwargs6-str-expected6] tests/test_schema.py::test_not_constraints_schema[kwargs7-bool-expected7] tests/test_schema.py::test_constraints_schema_validation[kwargs0-str-foo] tests/test_schema.py::test_constraints_schema_validation[kwargs1-ConstrainedStrValue-foo] tests/test_schema.py::test_constraints_schema_validation[kwargs2-str-foo] tests/test_schema.py::test_constraints_schema_validation[kwargs3-bytes-foo] tests/test_schema.py::test_constraints_schema_validation[kwargs4-str-foo] tests/test_schema.py::test_constraints_schema_validation[kwargs5-bool-True] tests/test_schema.py::test_constraints_schema_validation[kwargs6-int-3] tests/test_schema.py::test_constraints_schema_validation[kwargs7-int-3] tests/test_schema.py::test_constraints_schema_validation[kwargs8-int-3] tests/test_schema.py::test_constraints_schema_validation[kwargs9-int-2] tests/test_schema.py::test_constraints_schema_validation[kwargs10-int-3] tests/test_schema.py::test_constraints_schema_validation[kwargs11-int-3] tests/test_schema.py::test_constraints_schema_validation[kwargs12-int-5] tests/test_schema.py::test_constraints_schema_validation[kwargs13-float-3.0] tests/test_schema.py::test_constraints_schema_validation[kwargs14-float-2.1] tests/test_schema.py::test_constraints_schema_validation[kwargs15-float-3.0] tests/test_schema.py::test_constraints_schema_validation[kwargs16-float-4.9] tests/test_schema.py::test_constraints_schema_validation[kwargs17-float-3.0] tests/test_schema.py::test_constraints_schema_validation[kwargs18-float-2.0] tests/test_schema.py::test_constraints_schema_validation[kwargs19-float-3.0] tests/test_schema.py::test_constraints_schema_validation[kwargs20-float-5.0] tests/test_schema.py::test_constraints_schema_validation[kwargs21-float-3] tests/test_schema.py::test_constraints_schema_validation[kwargs22-float-3] tests/test_schema.py::test_constraints_schema_validation[kwargs23-Decimal-value23] tests/test_schema.py::test_constraints_schema_validation[kwargs24-Decimal-value24] tests/test_schema.py::test_constraints_schema_validation[kwargs25-Decimal-value25] tests/test_schema.py::test_constraints_schema_validation[kwargs26-Decimal-value26] tests/test_schema.py::test_constraints_schema_validation[kwargs27-Decimal-value27] tests/test_schema.py::test_constraints_schema_validation[kwargs28-Decimal-value28] tests/test_schema.py::test_constraints_schema_validation_raises[kwargs0-str-foobar] tests/test_schema.py::test_constraints_schema_validation_raises[kwargs1-str-f] tests/test_schema.py::test_constraints_schema_validation_raises[kwargs2-str-bar] tests/test_schema.py::test_constraints_schema_validation_raises[kwargs3-int-2] tests/test_schema.py::test_constraints_schema_validation_raises[kwargs4-int-5] tests/test_schema.py::test_constraints_schema_validation_raises[kwargs5-int-1] tests/test_schema.py::test_constraints_schema_validation_raises[kwargs6-int-6] tests/test_schema.py::test_constraints_schema_validation_raises[kwargs7-float-2.0] tests/test_schema.py::test_constraints_schema_validation_raises[kwargs8-float-5.0] tests/test_schema.py::test_constraints_schema_validation_raises[kwargs9-float-1.9] tests/test_schema.py::test_constraints_schema_validation_raises[kwargs10-float-5.1] tests/test_schema.py::test_constraints_schema_validation_raises[kwargs11-Decimal-value11] tests/test_schema.py::test_constraints_schema_validation_raises[kwargs12-Decimal-value12] tests/test_schema.py::test_constraints_schema_validation_raises[kwargs13-Decimal-value13] tests/test_schema.py::test_constraints_schema_validation_raises[kwargs14-Decimal-value14] tests/test_schema.py::test_schema_kwargs tests/test_schema.py::test_schema_dict_constr tests/test_schema.py::test_bytes_constrained_types[ConstrainedBytes-expected_schema0] tests/test_schema.py::test_bytes_constrained_types[ConstrainedBytesValue-expected_schema1] tests/test_schema.py::test_optional_dict tests/test_schema.py::test_field_with_validator tests/test_schema.py::test_known_model_optimization tests/test_schema.py::test_root tests/test_schema.py::test_root_list tests/test_schema.py::test_root_nested_model tests/test_schema.py::test_new_type_schema tests/test_schema.py::test_literal_schema tests/test_schema.py::test_color_type tests/test_schema.py::test_model_with_schema_extra tests/test_utils.py::test_address_valid[foobar@example.com-foobar-foobar@example.com] tests/test_utils.py::test_address_valid[s@muelcolvin.com-s-s@muelcolvin.com] tests/test_utils.py::test_address_valid[Samuel tests/test_utils.py::test_address_valid[foobar tests/test_utils.py::test_address_valid[ tests/test_utils.py::test_address_valid[foo.bar@example.com tests/test_utils.py::test_address_valid[foo tests/test_utils.py::test_address_valid[FOO tests/test_utils.py::test_address_valid[<FOOBAR@example.com> tests/test_utils.py::test_address_valid[\xf1o\xf1\xf3@example.com-\xf1o\xf1\xf3-\xf1o\xf1\xf3@example.com] tests/test_utils.py::test_address_valid[\u6211\u8cb7@example.com-\u6211\u8cb7-\u6211\u8cb7@example.com] tests/test_utils.py::test_address_valid[\u7532\u6590\u9ed2\u5ddd\u65e5\u672c@example.com-\u7532\u6590\u9ed2\u5ddd\u65e5\u672c-\u7532\u6590\u9ed2\u5ddd\u65e5\u672c@example.com] tests/test_utils.py::test_address_valid[\u0447\u0435\u0431\u0443\u0440\u0430\u0448\u043a\u0430\u044f\u0449\u0438\u043a-\u0441-\u0430\u043f\u0435\u043b\u044c\u0441\u0438\u043d\u0430\u043c\u0438.\u0440\u0444@example.com-\u0447\u0435\u0431\u0443\u0440\u0430\u0448\u043a\u0430\u044f\u0449\u0438\u043a-\u0441-\u0430\u043f\u0435\u043b\u044c\u0441\u0438\u043d\u0430\u043c\u0438.\u0440\u0444-\u0447\u0435\u0431\u0443\u0440\u0430\u0448\u043a\u0430\u044f\u0449\u0438\u043a-\u0441-\u0430\u043f\u0435\u043b\u044c\u0441\u0438\u043d\u0430\u043c\u0438.\u0440\u0444@example.com] tests/test_utils.py::test_address_valid[\u0909\u0926\u093e\u0939\u0930\u0923.\u092a\u0930\u0940\u0915\u094d\u0937@domain.with.idn.tld-\u0909\u0926\u093e\u0939\u0930\u0923.\u092a\u0930\u0940\u0915\u094d\u0937-\u0909\u0926\u093e\u0939\u0930\u0923.\u092a\u0930\u0940\u0915\u094d\u0937@domain.with.idn.tld] tests/test_utils.py::test_address_valid[foo.bar@example.com-foo.bar-foo.bar@example.com] tests/test_utils.py::test_address_valid[foo.bar@exam-ple.com tests/test_utils.py::test_address_valid[\u03b9\u03c9\u03ac\u03bd\u03bd\u03b7\u03c2@\u03b5\u03b5\u03c4\u03c4.gr-\u03b9\u03c9\u03ac\u03bd\u03bd\u03b7\u03c2-\u03b9\u03c9\u03ac\u03bd\u03bd\u03b7\u03c2@\u03b5\u03b5\u03c4\u03c4.gr] tests/test_utils.py::test_address_invalid[f tests/test_utils.py::test_address_invalid[foo.bar@exam\nple.com tests/test_utils.py::test_address_invalid[foobar] tests/test_utils.py::test_address_invalid[foobar tests/test_utils.py::test_address_invalid[@example.com] tests/test_utils.py::test_address_invalid[foobar@.example.com] tests/test_utils.py::test_address_invalid[foobar@.com] tests/test_utils.py::test_address_invalid[foo tests/test_utils.py::test_address_invalid[foo@bar@example.com] tests/test_utils.py::test_address_invalid[\n@example.com] tests/test_utils.py::test_address_invalid[\r@example.com] tests/test_utils.py::test_address_invalid[\x0c@example.com] tests/test_utils.py::test_address_invalid[ tests/test_utils.py::test_address_invalid[\x1f@example.com] tests/test_utils.py::test_address_invalid["@example.com0] tests/test_utils.py::test_address_invalid["@example.com1] tests/test_utils.py::test_address_invalid[,@example.com] tests/test_utils.py::test_empty_dsn tests/test_utils.py::test_dsn_odd_user tests/test_utils.py::test_import_module tests/test_utils.py::test_import_module_invalid tests/test_utils.py::test_import_no_attr tests/test_utils.py::test_display_as_type[str-str] tests/test_utils.py::test_display_as_type[string-str] tests/test_utils.py::test_display_as_type[value2-typing.Union[str, tests/test_utils.py::test_display_as_type_enum tests/test_utils.py::test_display_as_type_enum_int tests/test_utils.py::test_display_as_type_enum_str tests/test_utils.py::test_lenient_issubclass tests/test_utils.py::test_lenient_issubclass_is_lenient tests/test_utils.py::test_truncate_type tests/test_utils.py::test_value_items tests/test_utils.py::test_value_items_error tests/test_utils.py::test_is_new_type tests/test_utils.py::test_new_type_supertype