diff options
Diffstat (limited to 'lib/sqlalchemy/dialects/sqlite/dml.py')
| -rw-r--r-- | lib/sqlalchemy/dialects/sqlite/dml.py | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/lib/sqlalchemy/dialects/sqlite/dml.py b/lib/sqlalchemy/dialects/sqlite/dml.py index e4d8bd943..91f3b7bab 100644 --- a/lib/sqlalchemy/dialects/sqlite/dml.py +++ b/lib/sqlalchemy/dialects/sqlite/dml.py @@ -4,6 +4,8 @@ # This module is part of SQLAlchemy and is released under # the MIT License: https://www.opensource.org/licenses/mit-license.php +import typing + from ... import util from ...sql import coercions from ...sql import roles @@ -18,6 +20,8 @@ from ...util.langhelpers import public_factory __all__ = ("Insert", "insert") +SelfInsert = typing.TypeVar("SelfInsert", bound="Insert") + class Insert(StandardInsert): """SQLite-specific implementation of INSERT. @@ -71,12 +75,12 @@ class Insert(StandardInsert): @_generative @_on_conflict_exclusive def on_conflict_do_update( - self, + self: SelfInsert, index_elements=None, index_where=None, set_=None, where=None, - ): + ) -> SelfInsert: r""" Specifies a DO UPDATE SET action for ON CONFLICT clause. @@ -120,10 +124,13 @@ class Insert(StandardInsert): self._post_values_clause = OnConflictDoUpdate( index_elements, index_where, set_, where ) + return self @_generative @_on_conflict_exclusive - def on_conflict_do_nothing(self, index_elements=None, index_where=None): + def on_conflict_do_nothing( + self: SelfInsert, index_elements=None, index_where=None + ) -> SelfInsert: """ Specifies a DO NOTHING action for ON CONFLICT clause. @@ -141,6 +148,7 @@ class Insert(StandardInsert): self._post_values_clause = OnConflictDoNothing( index_elements, index_where ) + return self insert = public_factory( |
