summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql/ddl.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/sql/ddl.py')
-rw-r--r--lib/sqlalchemy/sql/ddl.py20
1 files changed, 15 insertions, 5 deletions
diff --git a/lib/sqlalchemy/sql/ddl.py b/lib/sqlalchemy/sql/ddl.py
index 18931ce67..f622023b0 100644
--- a/lib/sqlalchemy/sql/ddl.py
+++ b/lib/sqlalchemy/sql/ddl.py
@@ -10,6 +10,11 @@ to invoke them for a create/drop call.
"""
import typing
+from typing import Callable
+from typing import List
+from typing import Optional
+from typing import Sequence
+from typing import Tuple
from . import roles
from .base import _generative
@@ -21,6 +26,11 @@ from .. import util
from ..util import topological
+if typing.TYPE_CHECKING:
+ from .schema import ForeignKeyConstraint
+ from .schema import Table
+
+
class _DDLCompiles(ClauseElement):
_hierarchy_supports_caching = False
"""disable cache warnings for all _DDLCompiles subclasses. """
@@ -1007,10 +1017,10 @@ class SchemaDropper(DDLBase):
def sort_tables(
- tables,
- skip_fn=None,
- extra_dependencies=None,
-):
+ tables: Sequence["Table"],
+ skip_fn: Optional[Callable[["ForeignKeyConstraint"], bool]] = None,
+ extra_dependencies: Optional[Sequence[Tuple["Table", "Table"]]] = None,
+) -> List["Table"]:
"""Sort a collection of :class:`_schema.Table` objects based on
dependency.
@@ -1051,7 +1061,7 @@ def sort_tables(
:param tables: a sequence of :class:`_schema.Table` objects.
:param skip_fn: optional callable which will be passed a
- :class:`_schema.ForeignKey` object; if it returns True, this
+ :class:`_schema.ForeignKeyConstraint` object; if it returns True, this
constraint will not be considered as a dependency. Note this is
**different** from the same parameter in
:func:`.sort_tables_and_constraints`, which is