summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/dialects/sqlite/dml.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/dialects/sqlite/dml.py')
-rw-r--r--lib/sqlalchemy/dialects/sqlite/dml.py14
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(