diff options
Diffstat (limited to 'lib/sqlalchemy')
| -rw-r--r-- | lib/sqlalchemy/sql/schema.py | 12 | ||||
| -rw-r--r-- | lib/sqlalchemy/util/compat.py | 15 |
2 files changed, 21 insertions, 6 deletions
diff --git a/lib/sqlalchemy/sql/schema.py b/lib/sqlalchemy/sql/schema.py index f2c1c86ec..6ab58c301 100644 --- a/lib/sqlalchemy/sql/schema.py +++ b/lib/sqlalchemy/sql/schema.py @@ -2138,10 +2138,10 @@ class ForeignKey(DialectKWArgs, SchemaItem): "The :meth:`_schema.ForeignKey.copy` method is deprecated " "and will be removed in a future release.", ) - def copy(self, schema=None): - return self._copy(schema) + def copy(self, schema=None, **kw): + return self._copy(schema=schema, **kw) - def _copy(self, schema=None): + def _copy(self, schema=None, **kw): """Produce a copy of this :class:`_schema.ForeignKey` object. The new :class:`_schema.ForeignKey` will not be bound @@ -3309,7 +3309,7 @@ class ColumnCollectionConstraint(ColumnCollectionMixin, Constraint): "is deprecated and will be removed in a future release.", ) def copy(self, target_table=None, **kw): - return self._copy(target_table, **kw) + return self._copy(target_table=target_table, **kw) def _copy(self, target_table=None, **kw): # ticket #5276 @@ -3439,7 +3439,7 @@ class CheckConstraint(ColumnCollectionConstraint): "and will be removed in a future release.", ) def copy(self, target_table=None, **kw): - return self._copy(target_table, **kw) + return self._copy(target_table=target_table, **kw) def _copy(self, target_table=None, **kw): if target_table is not None: @@ -3732,7 +3732,7 @@ class ForeignKeyConstraint(ColumnCollectionConstraint): "and will be removed in a future release.", ) def copy(self, schema=None, target_table=None, **kw): - return self._copy(target_table, **kw) + return self._copy(schema=schema, target_table=target_table, **kw) def _copy(self, schema=None, target_table=None, **kw): fkc = ForeignKeyConstraint( diff --git a/lib/sqlalchemy/util/compat.py b/lib/sqlalchemy/util/compat.py index ca92fb125..727b77f7e 100644 --- a/lib/sqlalchemy/util/compat.py +++ b/lib/sqlalchemy/util/compat.py @@ -228,6 +228,10 @@ if py3k: from abc import ABC + def _qualname(fn): + return fn.__qualname__ + + else: import base64 import ConfigParser as configparser # noqa @@ -338,6 +342,17 @@ else: TYPE_CHECKING = False + def _qualname(meth): + """return __qualname__ equivalent for a method on a class""" + + for cls in meth.im_class.__mro__: + if meth.__name__ in cls.__dict__: + break + else: + return meth.__name__ + + return "%s.%s" % (cls.__name__, meth.__name__) + if py3k: |
