try:
    # pydantic v2
    from pydantic.v1 import (
        BaseModel,
        BaseSettings,
        Extra,
        Field,
        PositiveInt,
        PrivateAttr,
        ValidationError,
        color,
        conlist,
        constr,
        errors,
        main,
        parse_obj_as,
        root_validator,
        types,
        utils,
        validator,
    )
    from pydantic.v1.env_settings import (
        EnvSettingsSource,
        SettingsError,
        SettingsSourceCallable,
    )
    from pydantic.v1.error_wrappers import ErrorWrapper, display_errors
    from pydantic.v1.fields import SHAPE_LIST, ModelField
    from pydantic.v1.generics import GenericModel
    from pydantic.v1.main import ClassAttribute, ModelMetaclass
    from pydantic.v1.utils import ROOT_KEY, sequence_like
except ImportError:
    # pydantic v1
    from pydantic import (
        BaseModel,
        BaseSettings,
        Extra,
        Field,
        PositiveInt,
        PrivateAttr,
        ValidationError,
        color,
        conlist,
        constr,
        errors,
        main,
        parse_obj_as,
        root_validator,
        types,
        utils,
        validator,
    )
    from pydantic.env_settings import (
        EnvSettingsSource,
        SettingsError,
        SettingsSourceCallable,
    )
    from pydantic.error_wrappers import ErrorWrapper, display_errors
    from pydantic.fields import SHAPE_LIST, ModelField
    from pydantic.generics import GenericModel
    from pydantic.main import ClassAttribute, ModelMetaclass
    from pydantic.utils import ROOT_KEY, sequence_like

Color = color.Color

__all__ = (
    "ROOT_KEY",
    "SHAPE_LIST",
    "BaseModel",
    "BaseSettings",
    "ClassAttribute",
    "Color",
    "EnvSettingsSource",
    "ErrorWrapper",
    "Extra",
    "Field",
    "GenericModel",
    "ModelField",
    "ModelMetaclass",
    "PositiveInt",
    "PrivateAttr",
    "SettingsError",
    "SettingsSourceCallable",
    "ValidationError",
    "color",
    "conlist",
    "constr",
    "display_errors",
    "errors",
    "main",
    "parse_obj_as",
    "root_validator",
    "sequence_like",
    "types",
    "utils",
    "validator",
)
