1- import abc
21from typing import Any
2+ from typing import List
3+ from typing import NoReturn
34from typing import Optional
5+ from typing import Sequence
6+ from typing import TypeVar
47
5- from .result import Result as Result
6- from .result import ResultMetaData as ResultMetaData
7- from .result import SimpleResultMetaData as SimpleResultMetaData
8- from .result import tuplegetter as tuplegetter
9- from .row import LegacyRow as LegacyRow
10- from .. import exc as exc
11- from .. import util as util
12- from ..sql import expression as expression
13- from ..sql import sqltypes as sqltypes
14- from ..sql .compiler import RM_NAME as RM_NAME
15- from ..sql .compiler import RM_OBJECTS as RM_OBJECTS
16- from ..sql .compiler import RM_RENDERED_NAME as RM_RENDERED_NAME
17- from ..sql .compiler import RM_TYPE as RM_TYPE
8+ from .base import Connection
9+ from .interfaces import _DBAPICursor
10+ from .interfaces import Dialect
11+ from .interfaces import ExecutionContext
12+ from .result import MergedResult
13+ from .result import Result
14+ from .result import ResultMetaData
15+ from .result import Row
16+ from .row import LegacyRow
17+
18+ _TCursorResult = TypeVar ("_TCursorResult" , bound = CursorResult )
1819
1920MD_INDEX : int
2021MD_RESULT_MAP_INDEX : int
@@ -26,139 +27,167 @@ MD_UNTRANSLATED: int
2627
2728class CursorResultMetaData (ResultMetaData ):
2829 returns_rows : bool = ...
29- case_sensitive : Any = ...
30- def __init__ (self , parent : Any , cursor_description : Any ) -> None : ...
30+ case_sensitive : bool = ...
31+ def __init__ (
32+ self , parent : BaseCursorResult , cursor_description : Any
33+ ) -> None : ...
3134
3235class LegacyCursorResultMetaData (CursorResultMetaData ): ...
3336
3437class ResultFetchStrategy :
3538 alternate_cursor_description : Any = ...
36- def soft_close (self , result : Any , dbapi_cursor : Any ) -> None : ...
37- def hard_close (self , result : Any , dbapi_cursor : Any ) -> None : ...
38- def yield_per (self , result : Any , dbapi_cursor : Any , num : Any ) -> None : ...
39- def fetchone (
40- self , result : Any , dbapi_cursor : Any , hard_close : bool = ...
39+ def soft_close (self , result : Any , dbapi_cursor : _DBAPICursor ) -> None : ...
40+ def hard_close (self , result : Any , dbapi_cursor : _DBAPICursor ) -> None : ...
41+ def yield_per (
42+ self , result : Any , dbapi_cursor : _DBAPICursor , num : int
4143 ) -> None : ...
44+ def fetchone (
45+ self , result : Any , dbapi_cursor : _DBAPICursor , hard_close : bool = ...
46+ ) -> Any : ...
4247 def fetchmany (
43- self , result : Any , dbapi_cursor : Any , size : Optional [Any ] = ...
44- ) -> None : ...
45- def fetchall (self , result : Any ) -> None : ...
48+ self ,
49+ result : Any ,
50+ dbapi_cursor : _DBAPICursor ,
51+ size : Optional [Any ] = ...,
52+ ) -> Sequence [Any ]: ...
53+ def fetchall (self , result : Any ) -> Sequence [Any ]: ...
4654 def handle_exception (
47- self , result : Any , dbapi_cursor : Any , err : Any
55+ self , result : Any , dbapi_cursor : _DBAPICursor , err : Any
4856 ) -> None : ...
4957
5058class NoCursorFetchStrategy (ResultFetchStrategy ):
51- def soft_close (self , result : Any , dbapi_cursor : Any ) -> None : ...
52- def hard_close (self , result : Any , dbapi_cursor : Any ) -> None : ...
59+ def soft_close (self , result : Any , dbapi_cursor : _DBAPICursor ) -> None : ...
60+ def hard_close (self , result : Any , dbapi_cursor : _DBAPICursor ) -> None : ...
5361 def fetchone (
54- self , result : Any , dbapi_cursor : Any , hard_close : bool = ...
55- ): ...
62+ self , result : Any , dbapi_cursor : _DBAPICursor , hard_close : bool = ...
63+ ) -> Any : ...
5664 def fetchmany (
57- self , result : Any , dbapi_cursor : Any , size : Optional [Any ] = ...
58- ): ...
59- def fetchall (self , result : Any , dbapi_cursor : Any ): ...
65+ self ,
66+ result : Any ,
67+ dbapi_cursor : _DBAPICursor ,
68+ size : Optional [Any ] = ...,
69+ ) -> Sequence [Any ]: ...
70+ def fetchall (self , result : Any , dbapi_cursor : _DBAPICursor ) -> Sequence [Any ]: ... # type: ignore[override]
6071
6172class NoCursorDQLFetchStrategy (NoCursorFetchStrategy ): ...
6273class NoCursorDMLFetchStrategy (NoCursorFetchStrategy ): ...
6374
6475class CursorFetchStrategy (ResultFetchStrategy ):
65- def soft_close (self , result : Any , dbapi_cursor : Any ) -> None : ...
66- def hard_close (self , result : Any , dbapi_cursor : Any ) -> None : ...
76+ def soft_close (self , result : Any , dbapi_cursor : _DBAPICursor ) -> None : ...
77+ def hard_close (self , result : Any , dbapi_cursor : _DBAPICursor ) -> None : ...
6778 def handle_exception (
68- self , result : Any , dbapi_cursor : Any , err : Any
79+ self , result : Any , dbapi_cursor : _DBAPICursor , err : Any
80+ ) -> None : ...
81+ def yield_per (
82+ self , result : Any , dbapi_cursor : _DBAPICursor , num : int
6983 ) -> None : ...
70- def yield_per (self , result : Any , dbapi_cursor : Any , num : Any ) -> None : ...
7184 def fetchone (
72- self , result : Any , dbapi_cursor : Any , hard_close : bool = ...
73- ): ...
85+ self , result : Any , dbapi_cursor : _DBAPICursor , hard_close : bool = ...
86+ ) -> Any : ...
7487 def fetchmany (
75- self , result : Any , dbapi_cursor : Any , size : Optional [Any ] = ...
76- ): ...
77- def fetchall (self , result : Any , dbapi_cursor : Any ): ...
88+ self ,
89+ result : Any ,
90+ dbapi_cursor : _DBAPICursor ,
91+ size : Optional [Any ] = ...,
92+ ) -> Sequence [Any ]: ...
93+ def fetchall (self , result : Any , dbapi_cursor : _DBAPICursor ) -> Sequence [Any ]: ... # type: ignore[override]
7894
7995class BufferedRowCursorFetchStrategy (CursorFetchStrategy ):
8096 def __init__ (
8197 self ,
82- dbapi_cursor : Any ,
98+ dbapi_cursor : _DBAPICursor ,
8399 execution_options : Any ,
84100 growth_factor : int = ...,
85101 initial_buffer : Optional [Any ] = ...,
86102 ) -> None : ...
87103 @classmethod
88- def create (cls , result : Any ): ...
89- def yield_per (self , result : Any , dbapi_cursor : Any , num : Any ) -> None : ...
90- def soft_close (self , result : Any , dbapi_cursor : Any ) -> None : ...
91- def hard_close (self , result : Any , dbapi_cursor : Any ) -> None : ...
104+ def create (cls , result : Any ) -> BufferedRowCursorFetchStrategy : ...
105+ def yield_per (
106+ self , result : Any , dbapi_cursor : _DBAPICursor , num : int
107+ ) -> None : ...
108+ def soft_close (self , result : Any , dbapi_cursor : _DBAPICursor ) -> None : ...
109+ def hard_close (self , result : Any , dbapi_cursor : _DBAPICursor ) -> None : ...
92110 def fetchone (
93- self , result : Any , dbapi_cursor : Any , hard_close : bool = ...
94- ): ...
111+ self , result : Any , dbapi_cursor : _DBAPICursor , hard_close : bool = ...
112+ ) -> Any : ...
95113 def fetchmany (
96- self , result : Any , dbapi_cursor : Any , size : Optional [Any ] = ...
97- ): ...
98- def fetchall (self , result : Any , dbapi_cursor : Any ): ...
114+ self ,
115+ result : Any ,
116+ dbapi_cursor : _DBAPICursor ,
117+ size : Optional [Any ] = ...,
118+ ) -> Sequence [Any ]: ...
119+ def fetchall (self , result : Any , dbapi_cursor : _DBAPICursor ) -> Sequence [Any ]: ... # type: ignore[override]
99120
100121class FullyBufferedCursorFetchStrategy (CursorFetchStrategy ):
101122 alternate_cursor_description : Any = ...
102123 def __init__ (
103124 self ,
104- dbapi_cursor : Any ,
125+ dbapi_cursor : _DBAPICursor ,
105126 alternate_description : Optional [Any ] = ...,
106127 initial_buffer : Optional [Any ] = ...,
107128 ) -> None : ...
108- def yield_per (self , result : Any , dbapi_cursor : Any , num : Any ) -> None : ...
109- def soft_close (self , result : Any , dbapi_cursor : Any ) -> None : ...
110- def hard_close (self , result : Any , dbapi_cursor : Any ) -> None : ...
129+ def yield_per (
130+ self , result : Any , dbapi_cursor : _DBAPICursor , num : int
131+ ) -> None : ...
132+ def soft_close (self , result : Any , dbapi_cursor : _DBAPICursor ) -> None : ...
133+ def hard_close (self , result : Any , dbapi_cursor : _DBAPICursor ) -> None : ...
111134 def fetchone (
112- self , result : Any , dbapi_cursor : Any , hard_close : bool = ...
113- ): ...
135+ self , result : Any , dbapi_cursor : _DBAPICursor , hard_close : bool = ...
136+ ) -> Any : ...
114137 def fetchmany (
115- self , result : Any , dbapi_cursor : Any , size : Optional [Any ] = ...
116- ): ...
117- def fetchall (self , result : Any , dbapi_cursor : Any ): ...
138+ self ,
139+ result : Any ,
140+ dbapi_cursor : _DBAPICursor ,
141+ size : Optional [Any ] = ...,
142+ ) -> Sequence [Any ]: ...
143+ def fetchall (self , result : Any , dbapi_cursor : _DBAPICursor ) -> Sequence [Any ]: ... # type: ignore[override]
118144
119145class _NoResultMetaData (ResultMetaData ):
120146 returns_rows : bool = ...
121147 @property
122- def keys (self ) -> None : ...
148+ def keys (self ) -> NoReturn : ...
123149
124150class BaseCursorResult :
125151 out_parameters : Any = ...
126152 closed : bool = ...
127- context : Any = ...
128- dialect : Any = ...
153+ context : ExecutionContext = ...
154+ dialect : Dialect = ...
129155 cursor : Any = ...
130- cursor_strategy : Any = ...
131- connection : Any = ...
156+ cursor_strategy : CursorFetchStrategy = ...
157+ connection : Connection = ...
132158 def __init__ (
133- self , context : Any , cursor_strategy : Any , cursor_description : Any
159+ self ,
160+ context : ExecutionContext ,
161+ cursor_strategy : CursorFetchStrategy ,
162+ cursor_description : Any ,
134163 ): ...
135164 @property
136- def inserted_primary_key_rows (self ): ...
165+ def inserted_primary_key_rows (self ) -> Any : ...
137166 @property
138- def inserted_primary_key (self ): ...
139- def last_updated_params (self ): ...
140- def last_inserted_params (self ): ...
167+ def inserted_primary_key (self ) -> Row : ...
168+ def last_updated_params (self ) -> Any : ...
169+ def last_inserted_params (self ) -> Any : ...
141170 @property
142- def returned_defaults_rows (self ): ...
171+ def returned_defaults_rows (self ) -> List [ Row ] : ...
143172 @property
144- def returned_defaults (self ): ...
145- def lastrow_has_defaults (self ): ...
146- def postfetch_cols (self ): ...
147- def prefetch_cols (self ): ...
148- def supports_sane_rowcount (self ): ...
149- def supports_sane_multi_rowcount (self ): ...
150- def rowcount (self ): ...
173+ def returned_defaults (self ) -> Optional [ Row ] : ...
174+ def lastrow_has_defaults (self ) -> bool : ...
175+ def postfetch_cols (self ) -> bool : ...
176+ def prefetch_cols (self ) -> bool : ...
177+ def supports_sane_rowcount (self ) -> bool : ...
178+ def supports_sane_multi_rowcount (self ) -> bool : ...
179+ def rowcount (self ) -> int : ...
151180 @property
152- def lastrowid (self ): ...
181+ def lastrowid (self ) -> Any : ...
153182 @property
154- def returns_rows (self ): ...
183+ def returns_rows (self ) -> bool : ...
155184 @property
156- def is_insert (self ): ...
185+ def is_insert (self ) -> bool : ...
157186
158187class CursorResult (BaseCursorResult , Result ):
159- def merge (self , * others : Any ): ...
188+ def merge (self , * others : Any ) -> MergedResult : ...
160189 def close (self ) -> None : ...
161- def yield_per (self , num : Any ) -> None : ...
190+ def yield_per (self : _TCursorResult , num : Any ) -> _TCursorResult : ...
162191
163192class LegacyCursorResult (CursorResult ):
164193 def close (self ) -> None : ...
@@ -167,5 +196,5 @@ ResultProxy = LegacyCursorResult
167196
168197class BufferedRowResultProxy (ResultProxy ): ...
169198class FullyBufferedResultProxy (ResultProxy ): ...
170- class BufferedColumnRow (LegacyRow , metaclass = abc . ABCMeta ): ...
199+ class BufferedColumnRow (LegacyRow ): ...
171200class BufferedColumnResultProxy (ResultProxy ): ...
0 commit comments