diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2022-07-23 10:07:58 -0400 |
|---|---|---|
| committer | mike bayer <mike_mp@zzzcomputing.com> | 2022-07-23 21:59:03 +0000 |
| commit | 210ad24cc938865539808e2359b7942d55893978 (patch) | |
| tree | 533b6bcbafbe2679d86b5b024a116ab5b82ab051 /lib/sqlalchemy | |
| parent | 4fe222d9412df30fc15ace3d7a7fd4365eb9e05a (diff) | |
| download | sqlalchemy-210ad24cc938865539808e2359b7942d55893978.tar.gz | |
set up Literal for synchronize_session
Fixes: #8280
Change-Id: I59bc6cc0483375f79e17952188e0c2cde926502c
Diffstat (limited to 'lib/sqlalchemy')
| -rw-r--r-- | lib/sqlalchemy/orm/persistence.py | 4 | ||||
| -rw-r--r-- | lib/sqlalchemy/orm/query.py | 7 |
2 files changed, 9 insertions, 2 deletions
diff --git a/lib/sqlalchemy/orm/persistence.py b/lib/sqlalchemy/orm/persistence.py index 0c035e7cf..c10f4701e 100644 --- a/lib/sqlalchemy/orm/persistence.py +++ b/lib/sqlalchemy/orm/persistence.py @@ -55,6 +55,7 @@ from ..sql.dml import InsertDMLState from ..sql.dml import UpdateDMLState from ..sql.elements import BooleanClauseList from ..sql.selectable import LABEL_STYLE_TABLENAME_PLUS_COL +from ..util.typing import Literal if TYPE_CHECKING: from .mapper import Mapper @@ -65,6 +66,9 @@ if TYPE_CHECKING: _O = TypeVar("_O", bound=object) +_SynchronizeSessionArgument = Literal[False, "evaluate", "fetch"] + + def _bulk_insert( mapper: Mapper[_O], mappings: Union[Iterable[InstanceState[_O]], Iterable[Dict[str, Any]]], diff --git a/lib/sqlalchemy/orm/query.py b/lib/sqlalchemy/orm/query.py index a29e368b6..99131e3e9 100644 --- a/lib/sqlalchemy/orm/query.py +++ b/lib/sqlalchemy/orm/query.py @@ -99,6 +99,7 @@ if TYPE_CHECKING: from ._typing import _InternalEntityType from .mapper import Mapper from .path_registry import PathRegistry + from .persistence import _SynchronizeSessionArgument from .session import _PKIdentityArgument from .session import Session from .state import InstanceState @@ -2969,7 +2970,9 @@ class Query( self._legacy_from_self(col).enable_eagerloads(False).scalar() ) - def delete(self, synchronize_session: str = "evaluate") -> int: + def delete( + self, synchronize_session: _SynchronizeSessionArgument = "evaluate" + ) -> int: r"""Perform a DELETE with an arbitrary WHERE clause. Deletes rows matched by this query from the database. @@ -3030,7 +3033,7 @@ class Query( def update( self, values: Dict[_DMLColumnArgument, Any], - synchronize_session: str = "evaluate", + synchronize_session: _SynchronizeSessionArgument = "evaluate", update_args: Optional[Dict[Any, Any]] = None, ) -> int: r"""Perform an UPDATE with an arbitrary WHERE clause. |
