]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Result.__enter__ annotation
authorMartin Baláž <embeembe@gmail.com>
Sat, 21 Jan 2023 13:56:14 +0000 (14:56 +0100)
committerGitHub <noreply@github.com>
Sat, 21 Jan 2023 13:56:14 +0000 (14:56 +0100)
Improved `Result.__enter__()` annotation.
When using `Result` subclasses (like for example `CursorResult`) as context managers, better annotation is derived.
For example:
```python
with connection.execute(statement) as result:  # result is `CursorResult` instead of just `Result`
    pass
```

lib/sqlalchemy/engine/result.py

index 4bf03ae6963b79878acc7459d46909b269ff8ccd..67151913e7221b2f8d103e664177caae37050b8d 100644 (file)
@@ -929,7 +929,7 @@ class Result(_WithKeys, ResultInternal[Row[_TP]]):
     def __init__(self, cursor_metadata: ResultMetaData):
         self._metadata = cursor_metadata
 
-    def __enter__(self) -> Result[_TP]:
+    def __enter__(self: SelfResult) -> SelfResult:
         return self
 
     def __exit__(self, type_: Any, value: Any, traceback: Any) -> None: