# mypy: ignore-errors
from __future__ import annotations
+from types import ModuleType
from typing import Any
from typing import Optional
from typing import Type
from ...sql.ddl import InvokeDropDDLBase
if TYPE_CHECKING:
+ from ...sql._typing import _CreateDropBind
from ...sql._typing import _TypeEngineArgument
DDLDropper: Type[NamedTypeDropper]
create_type: bool
- def create(self, bind, checkfirst=True, **kw):
+ def create(self, bind: _CreateDropBind, checkfirst: bool = True, **kw: Any) -> None:
"""Emit ``CREATE`` DDL for this type.
:param bind: a connectable :class:`_engine.Engine`,
"""
bind._run_ddl_visitor(self.DDLGenerator, self, checkfirst=checkfirst)
- def drop(self, bind, checkfirst=True, **kw):
+ def drop(self, bind: _CreateDropBind, checkfirst: bool = True, **kw: Any) -> None:
"""Emit ``DROP`` DDL for this type.
:param bind: a connectable :class:`_engine.Engine`,
"""
bind._run_ddl_visitor(self.DDLDropper, self, checkfirst=checkfirst)
- def _check_for_name_in_memos(self, checkfirst, kw):
+ def _check_for_name_in_memos(self, checkfirst: bool, **kw: Any) -> None:
"""Look in the 'ddl runner' for 'memos', then
note our name in that collection.
else:
return False
- def _on_table_create(self, target, bind, checkfirst=False, **kw):
+ def _on_table_create(self, target, bind: _CreateDropBind, checkfirst: bool = False, **kw: Any) -> None:
if (
checkfirst
or (
) and not self._check_for_name_in_memos(checkfirst, kw):
self.create(bind=bind, checkfirst=checkfirst)
- def _on_table_drop(self, target, bind, checkfirst=False, **kw):
+ def _on_table_drop(self, target, bind: _CreateDropBind, checkfirst: bool = False, **kw: Any) -> None:
if (
not self.metadata
and not kw.get("_is_metadata_operation", False)
):
self.drop(bind=bind, checkfirst=checkfirst)
- def _on_metadata_create(self, target, bind, checkfirst=False, **kw):
+ def _on_metadata_create(self, target, bind: _CreateDropBind, checkfirst: bool = False, **kw: Any) -> None:
if not self._check_for_name_in_memos(checkfirst, kw):
self.create(bind=bind, checkfirst=checkfirst)
- def _on_metadata_drop(self, target, bind, checkfirst=False, **kw):
+ def _on_metadata_drop(self, target, bind: _CreateDropBind, checkfirst: bool = False, **kw: Any) -> None:
if not self._check_for_name_in_memos(checkfirst, kw):
self.drop(bind=bind, checkfirst=checkfirst)
return cls(**kw)
- def create(self, bind=None, checkfirst=True):
+ def create(self, bind: _CreateDropBind, checkfirst: bool = True) -> None:
"""Emit ``CREATE TYPE`` for this
:class:`_postgresql.ENUM`.
super().create(bind, checkfirst=checkfirst)
- def drop(self, bind=None, checkfirst=True):
+ def drop(self, bind: _CreateDropBind, checkfirst: bool = True) -> None:
"""Emit ``DROP TYPE`` for this
:class:`_postgresql.ENUM`.
super().drop(bind, checkfirst=checkfirst)
- def get_dbapi_type(self, dbapi):
+ def get_dbapi_type(self, dbapi: ModuleType) -> None:
"""dont return dbapi.STRING for ENUM in PostgreSQL, since that's
a different type"""
from .sqltypes import TableValueType
from .sqltypes import TupleType
from .type_api import TypeEngine
+ from ..engine import Connection
from ..engine import Dialect
+ from ..engine import Engine
+ from ..engine.mock import MockConnection
from ..util.typing import TypeGuard
_T = TypeVar("_T", bound=Any)
_AutoIncrementType = Union[bool, Literal["auto", "ignore_fk"]]
+_CreateDropBind = Union["Engine", "Connection", "MockConnection"]
+
if TYPE_CHECKING:
def is_sql_compiler(c: Compiled) -> TypeGuard[SQLCompiler]: ...
if typing.TYPE_CHECKING:
from ._typing import _AutoIncrementType
+ from ._typing import _CreateDropBind
from ._typing import _DDLColumnArgument
from ._typing import _DDLColumnReferenceArgument
from ._typing import _InfoType
_TAB = TypeVar("_TAB", bound="Table")
-_CreateDropBind = Union["Engine", "Connection", "MockConnection"]
-
_ConstraintNameArgument = Optional[Union[str, _NoneName]]
_ServerDefaultArgument = Union[
if TYPE_CHECKING:
from ._typing import _ColumnExpressionArgument
+ from ._typing import _CreateDropBind
from ._typing import _TypeEngineArgument
from .elements import ColumnElement
from .operators import OperatorType
kw.setdefault("_adapted_from", self)
return super().adapt(cls, **kw)
- def create(self, bind, checkfirst=False):
+ def create(self, bind: _CreateDropBind, checkfirst: bool = False) -> None:
"""Issue CREATE DDL for this type, if applicable."""
t = self.dialect_impl(bind.dialect)
if isinstance(t, SchemaType) and t.__class__ is not self.__class__:
t.create(bind, checkfirst=checkfirst)
- def drop(self, bind, checkfirst=False):
+ def drop(self, bind: _CreateDropBind, checkfirst: bool = False) -> None:
"""Issue DROP DDL for this type, if applicable."""
t = self.dialect_impl(bind.dialect)
if isinstance(t, SchemaType) and t.__class__ is not self.__class__:
t.drop(bind, checkfirst=checkfirst)
- def _on_table_create(self, target, bind, **kw):
+ def _on_table_create(self, target, bind: _CreateDropBind, **kw: Any) -> None:
if not self._is_impl_for_variant(bind.dialect, kw):
return
if isinstance(t, SchemaType) and t.__class__ is not self.__class__:
t._on_table_create(target, bind, **kw)
- def _on_table_drop(self, target, bind, **kw):
+ def _on_table_drop(self, target, bind: _CreateDropBind, **kw: Any) -> None:
if not self._is_impl_for_variant(bind.dialect, kw):
return
if isinstance(t, SchemaType) and t.__class__ is not self.__class__:
t._on_table_drop(target, bind, **kw)
- def _on_metadata_create(self, target, bind, **kw):
+ def _on_metadata_create(self, target, bind: _CreateDropBind, **kw: Any) -> None:
if not self._is_impl_for_variant(bind.dialect, kw):
return
if isinstance(t, SchemaType) and t.__class__ is not self.__class__:
t._on_metadata_create(target, bind, **kw)
- def _on_metadata_drop(self, target, bind, **kw):
+ def _on_metadata_drop(self, target, bind: _CreateDropBind, **kw: Any) -> None:
if not self._is_impl_for_variant(bind.dialect, kw):
return
if isinstance(t, SchemaType) and t.__class__ is not self.__class__:
t._on_metadata_drop(target, bind, **kw)
- def _is_impl_for_variant(self, dialect, kw):
+ def _is_impl_for_variant(self, dialect: Dialect, **kw: Any) -> Optional[bool]:
variant_mapping = kw.pop("variant_mapping", None)
if not variant_mapping: