from . import roles
from . import type_api
from . import visitors
+from .base import _NoneName
from .base import DedupeColumnCollection
from .base import DialectKWArgs
from .base import Executable
_CreateDropBind = Union["Engine", "Connection", "MockConnection"]
+_ConstraintNameArgument = Optional[Union[str, _NoneName]]
+
class SchemaConst(Enum):
self._proxies = _proxies
else:
# otherwise, add DDL-related events
- if isinstance(self.type, SchemaEventTarget):
- self.type._set_parent_with_dispatch(self)
- for impl in self.type._variant_mapping.values():
- if isinstance(impl, SchemaEventTarget):
- impl._set_parent_with_dispatch(self)
+ self._set_type(self.type)
if default is not None:
if not isinstance(default, (ColumnDefault, Sequence)):
identity: Optional[Identity]
+ def _set_type(self, type_: TypeEngine[Any]) -> None:
+ self.type = type_
+ if isinstance(self.type, SchemaEventTarget):
+ self.type._set_parent_with_dispatch(self)
+ for impl in self.type._variant_mapping.values():
+ if isinstance(impl, SchemaEventTarget):
+ impl._set_parent_with_dispatch(self)
+
@util.memoized_property
def _gen_static_annotations_cache_key(self) -> bool: # type: ignore
"""special attribute used by cache key gen, if true, we will
column: _DDLColumnArgument,
_constraint: Optional[ForeignKeyConstraint] = None,
use_alter: bool = False,
- name: Optional[str] = None,
+ name: _ConstraintNameArgument = None,
onupdate: Optional[str] = None,
ondelete: Optional[str] = None,
deferrable: Optional[bool] = None,
def __init__(
self,
- name: Optional[str] = None,
+ name: _ConstraintNameArgument = None,
deferrable: Optional[bool] = None,
initially: Optional[str] = None,
info: Optional[_InfoType] = None,
def __init__(
self,
*columns: _DDLColumnArgument,
- name: Optional[str] = None,
+ name: _ConstraintNameArgument = None,
deferrable: Optional[bool] = None,
initially: Optional[str] = None,
info: Optional[_InfoType] = None,
def __init__(
self,
sqltext: _TextCoercedExpressionArgument[Any],
- name: Optional[str] = None,
+ name: _ConstraintNameArgument = None,
deferrable: Optional[bool] = None,
initially: Optional[str] = None,
table: Optional[Table] = None,
self,
columns: _typing_Sequence[_DDLColumnArgument],
refcolumns: _typing_Sequence[_DDLColumnArgument],
- name: Optional[str] = None,
+ name: _ConstraintNameArgument = None,
onupdate: Optional[str] = None,
ondelete: Optional[str] = None,
deferrable: Optional[bool] = None,