From: Daniel Robert Date: Mon, 11 Mar 2024 21:34:20 +0000 (-0700) Subject: Fixes: #11083 (#11095) X-Git-Tag: rel_2_0_29~30 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0dda05a5e6b266858a5a56ce8d87b371ff5d47c3;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git Fixes: #11083 (#11095) (cherry picked from commit 3551c7b66ab0318deef419fbe61fe038b6e2825c) Change-Id: I959dff7f4ee6218267627e878283e3c48b88b314 --- diff --git a/lib/sqlalchemy/engine/util.py b/lib/sqlalchemy/engine/util.py index 3d95ac5862..186ca4c320 100644 --- a/lib/sqlalchemy/engine/util.py +++ b/lib/sqlalchemy/engine/util.py @@ -17,6 +17,7 @@ from .. import exc from .. import util from ..util._has_cy import HAS_CYEXTENSION from ..util.typing import Protocol +from ..util.typing import Self if typing.TYPE_CHECKING or not HAS_CYEXTENSION: from ._py_util import _distill_params_20 as _distill_params_20 @@ -113,7 +114,7 @@ class TransactionalContext: "before emitting further commands." ) - def __enter__(self) -> TransactionalContext: + def __enter__(self) -> Self: subject = self._get_subject() # none for outer transaction, may be non-None for nested diff --git a/test/typing/plain_files/orm/session.py b/test/typing/plain_files/orm/session.py index 0f1c35eafa..43fb17a754 100644 --- a/test/typing/plain_files/orm/session.py +++ b/test/typing/plain_files/orm/session.py @@ -97,6 +97,12 @@ with Session(e) as sess: User.id ).offset(User.id) + # test #11083 + + with sess.begin() as tx: + # EXPECTED_TYPE: SessionTransaction + reveal_type(tx) + # more result tests in typed_results.py