sqlspec 0.9.0__py3-none-any.whl → 0.9.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of sqlspec might be problematic. Click here for more details.
- sqlspec/adapters/adbc/driver.py +135 -3
- sqlspec/adapters/aiosqlite/driver.py +136 -3
- sqlspec/adapters/asyncmy/driver.py +136 -3
- sqlspec/adapters/asyncpg/driver.py +136 -2
- sqlspec/adapters/duckdb/driver.py +141 -11
- sqlspec/adapters/oracledb/driver.py +270 -4
- sqlspec/adapters/psqlpy/config.py +6 -14
- sqlspec/adapters/psqlpy/driver.py +149 -3
- sqlspec/adapters/psycopg/driver.py +306 -58
- sqlspec/adapters/sqlite/driver.py +136 -34
- sqlspec/base.py +413 -9
- sqlspec/extensions/litestar/plugin.py +2 -0
- {sqlspec-0.9.0.dist-info → sqlspec-0.9.1.dist-info}/METADATA +141 -2
- {sqlspec-0.9.0.dist-info → sqlspec-0.9.1.dist-info}/RECORD +17 -17
- {sqlspec-0.9.0.dist-info → sqlspec-0.9.1.dist-info}/WHEEL +0 -0
- {sqlspec-0.9.0.dist-info → sqlspec-0.9.1.dist-info}/licenses/LICENSE +0 -0
- {sqlspec-0.9.0.dist-info → sqlspec-0.9.1.dist-info}/licenses/NOTICE +0 -0
sqlspec/adapters/adbc/driver.py
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import contextlib
|
|
2
2
|
import logging
|
|
3
3
|
import re
|
|
4
|
-
from collections.abc import Generator
|
|
4
|
+
from collections.abc import Generator, Sequence
|
|
5
5
|
from contextlib import contextmanager
|
|
6
|
-
from typing import TYPE_CHECKING, Any, ClassVar, Optional, Union, cast
|
|
6
|
+
from typing import TYPE_CHECKING, Any, ClassVar, Optional, Union, cast, overload
|
|
7
7
|
|
|
8
8
|
from adbc_driver_manager.dbapi import Connection, Cursor
|
|
9
9
|
|
|
@@ -160,6 +160,28 @@ class AdbcDriver(SyncArrowBulkOperationsMixin["Connection"], SyncDriverAdapterPr
|
|
|
160
160
|
stmt = SQLStatement(sql=sql, parameters=parameters, dialect=self.dialect, kwargs=kwargs or None)
|
|
161
161
|
return stmt.process()
|
|
162
162
|
|
|
163
|
+
@overload
|
|
164
|
+
def select(
|
|
165
|
+
self,
|
|
166
|
+
sql: str,
|
|
167
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
168
|
+
/,
|
|
169
|
+
*,
|
|
170
|
+
connection: "Optional[Connection]" = None,
|
|
171
|
+
schema_type: None = None,
|
|
172
|
+
**kwargs: Any,
|
|
173
|
+
) -> "Sequence[dict[str, Any]]": ...
|
|
174
|
+
@overload
|
|
175
|
+
def select(
|
|
176
|
+
self,
|
|
177
|
+
sql: str,
|
|
178
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
179
|
+
/,
|
|
180
|
+
*,
|
|
181
|
+
connection: "Optional[Connection]" = None,
|
|
182
|
+
schema_type: "type[ModelDTOT]",
|
|
183
|
+
**kwargs: Any,
|
|
184
|
+
) -> "Sequence[ModelDTOT]": ...
|
|
163
185
|
def select(
|
|
164
186
|
self,
|
|
165
187
|
sql: str,
|
|
@@ -169,7 +191,7 @@ class AdbcDriver(SyncArrowBulkOperationsMixin["Connection"], SyncDriverAdapterPr
|
|
|
169
191
|
connection: Optional["Connection"] = None,
|
|
170
192
|
schema_type: "Optional[type[ModelDTOT]]" = None,
|
|
171
193
|
**kwargs: Any,
|
|
172
|
-
) -> "
|
|
194
|
+
) -> "Sequence[Union[ModelDTOT, dict[str, Any]]]":
|
|
173
195
|
"""Fetch data from the database.
|
|
174
196
|
|
|
175
197
|
Returns:
|
|
@@ -189,6 +211,28 @@ class AdbcDriver(SyncArrowBulkOperationsMixin["Connection"], SyncDriverAdapterPr
|
|
|
189
211
|
return [cast("ModelDTOT", schema_type(**dict(zip(column_names, row)))) for row in results] # pyright: ignore[reportUnknownArgumentType,reportUnknownVariableType]
|
|
190
212
|
return [dict(zip(column_names, row)) for row in results] # pyright: ignore[reportUnknownArgumentType,reportUnknownVariableType]
|
|
191
213
|
|
|
214
|
+
@overload
|
|
215
|
+
def select_one(
|
|
216
|
+
self,
|
|
217
|
+
sql: str,
|
|
218
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
219
|
+
/,
|
|
220
|
+
*,
|
|
221
|
+
connection: "Optional[Connection]" = None,
|
|
222
|
+
schema_type: None = None,
|
|
223
|
+
**kwargs: Any,
|
|
224
|
+
) -> "dict[str, Any]": ...
|
|
225
|
+
@overload
|
|
226
|
+
def select_one(
|
|
227
|
+
self,
|
|
228
|
+
sql: str,
|
|
229
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
230
|
+
/,
|
|
231
|
+
*,
|
|
232
|
+
connection: "Optional[Connection]" = None,
|
|
233
|
+
schema_type: "type[ModelDTOT]",
|
|
234
|
+
**kwargs: Any,
|
|
235
|
+
) -> "ModelDTOT": ...
|
|
192
236
|
def select_one(
|
|
193
237
|
self,
|
|
194
238
|
sql: str,
|
|
@@ -215,6 +259,28 @@ class AdbcDriver(SyncArrowBulkOperationsMixin["Connection"], SyncDriverAdapterPr
|
|
|
215
259
|
return dict(zip(column_names, result)) # pyright: ignore[reportUnknownArgumentType, reportUnknownVariableType]
|
|
216
260
|
return schema_type(**dict(zip(column_names, result))) # type: ignore[return-value]
|
|
217
261
|
|
|
262
|
+
@overload
|
|
263
|
+
def select_one_or_none(
|
|
264
|
+
self,
|
|
265
|
+
sql: str,
|
|
266
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
267
|
+
/,
|
|
268
|
+
*,
|
|
269
|
+
connection: "Optional[Connection]" = None,
|
|
270
|
+
schema_type: None = None,
|
|
271
|
+
**kwargs: Any,
|
|
272
|
+
) -> "Optional[dict[str, Any]]": ...
|
|
273
|
+
@overload
|
|
274
|
+
def select_one_or_none(
|
|
275
|
+
self,
|
|
276
|
+
sql: str,
|
|
277
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
278
|
+
/,
|
|
279
|
+
*,
|
|
280
|
+
connection: "Optional[Connection]" = None,
|
|
281
|
+
schema_type: "type[ModelDTOT]",
|
|
282
|
+
**kwargs: Any,
|
|
283
|
+
) -> "Optional[ModelDTOT]": ...
|
|
218
284
|
def select_one_or_none(
|
|
219
285
|
self,
|
|
220
286
|
sql: str,
|
|
@@ -242,6 +308,28 @@ class AdbcDriver(SyncArrowBulkOperationsMixin["Connection"], SyncDriverAdapterPr
|
|
|
242
308
|
return dict(zip(column_names, result)) # pyright: ignore[reportUnknownArgumentType, reportUnknownVariableType]
|
|
243
309
|
return schema_type(**dict(zip(column_names, result))) # type: ignore[return-value]
|
|
244
310
|
|
|
311
|
+
@overload
|
|
312
|
+
def select_value(
|
|
313
|
+
self,
|
|
314
|
+
sql: str,
|
|
315
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
316
|
+
/,
|
|
317
|
+
*,
|
|
318
|
+
connection: "Optional[Connection]" = None,
|
|
319
|
+
schema_type: None = None,
|
|
320
|
+
**kwargs: Any,
|
|
321
|
+
) -> "Any": ...
|
|
322
|
+
@overload
|
|
323
|
+
def select_value(
|
|
324
|
+
self,
|
|
325
|
+
sql: str,
|
|
326
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
327
|
+
/,
|
|
328
|
+
*,
|
|
329
|
+
connection: "Optional[Connection]" = None,
|
|
330
|
+
schema_type: "type[T]",
|
|
331
|
+
**kwargs: Any,
|
|
332
|
+
) -> "T": ...
|
|
245
333
|
def select_value(
|
|
246
334
|
self,
|
|
247
335
|
sql: str,
|
|
@@ -267,6 +355,28 @@ class AdbcDriver(SyncArrowBulkOperationsMixin["Connection"], SyncDriverAdapterPr
|
|
|
267
355
|
return result[0] # pyright: ignore[reportUnknownVariableType]
|
|
268
356
|
return schema_type(result[0]) # type: ignore[call-arg]
|
|
269
357
|
|
|
358
|
+
@overload
|
|
359
|
+
def select_value_or_none(
|
|
360
|
+
self,
|
|
361
|
+
sql: str,
|
|
362
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
363
|
+
/,
|
|
364
|
+
*,
|
|
365
|
+
connection: "Optional[Connection]" = None,
|
|
366
|
+
schema_type: None = None,
|
|
367
|
+
**kwargs: Any,
|
|
368
|
+
) -> "Optional[Any]": ...
|
|
369
|
+
@overload
|
|
370
|
+
def select_value_or_none(
|
|
371
|
+
self,
|
|
372
|
+
sql: str,
|
|
373
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
374
|
+
/,
|
|
375
|
+
*,
|
|
376
|
+
connection: "Optional[Connection]" = None,
|
|
377
|
+
schema_type: "type[T]",
|
|
378
|
+
**kwargs: Any,
|
|
379
|
+
) -> "Optional[T]": ...
|
|
270
380
|
def select_value_or_none(
|
|
271
381
|
self,
|
|
272
382
|
sql: str,
|
|
@@ -314,6 +424,28 @@ class AdbcDriver(SyncArrowBulkOperationsMixin["Connection"], SyncDriverAdapterPr
|
|
|
314
424
|
cursor.execute(sql, parameters) # pyright: ignore[reportUnknownMemberType]
|
|
315
425
|
return cursor.rowcount if hasattr(cursor, "rowcount") else -1
|
|
316
426
|
|
|
427
|
+
@overload
|
|
428
|
+
def insert_update_delete_returning(
|
|
429
|
+
self,
|
|
430
|
+
sql: str,
|
|
431
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
432
|
+
/,
|
|
433
|
+
*,
|
|
434
|
+
connection: "Optional[Connection]" = None,
|
|
435
|
+
schema_type: None = None,
|
|
436
|
+
**kwargs: Any,
|
|
437
|
+
) -> "dict[str, Any]": ...
|
|
438
|
+
@overload
|
|
439
|
+
def insert_update_delete_returning(
|
|
440
|
+
self,
|
|
441
|
+
sql: str,
|
|
442
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
443
|
+
/,
|
|
444
|
+
*,
|
|
445
|
+
connection: "Optional[Connection]" = None,
|
|
446
|
+
schema_type: "type[ModelDTOT]",
|
|
447
|
+
**kwargs: Any,
|
|
448
|
+
) -> "ModelDTOT": ...
|
|
317
449
|
def insert_update_delete_returning(
|
|
318
450
|
self,
|
|
319
451
|
sql: str,
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
from contextlib import asynccontextmanager
|
|
2
|
-
from typing import TYPE_CHECKING, Any, Optional, Union, cast
|
|
2
|
+
from typing import TYPE_CHECKING, Any, Optional, Union, cast, overload
|
|
3
3
|
|
|
4
4
|
from sqlspec.base import AsyncDriverAdapterProtocol, T
|
|
5
5
|
|
|
6
6
|
if TYPE_CHECKING:
|
|
7
|
-
from collections.abc import AsyncGenerator
|
|
7
|
+
from collections.abc import AsyncGenerator, Sequence
|
|
8
8
|
|
|
9
9
|
from aiosqlite import Connection, Cursor
|
|
10
10
|
|
|
@@ -34,6 +34,29 @@ class AiosqliteDriver(AsyncDriverAdapterProtocol["Connection"]):
|
|
|
34
34
|
finally:
|
|
35
35
|
await cursor.close()
|
|
36
36
|
|
|
37
|
+
# --- Public API Methods --- #
|
|
38
|
+
@overload
|
|
39
|
+
async def select(
|
|
40
|
+
self,
|
|
41
|
+
sql: str,
|
|
42
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
43
|
+
/,
|
|
44
|
+
*,
|
|
45
|
+
connection: "Optional[Connection]" = None,
|
|
46
|
+
schema_type: None = None,
|
|
47
|
+
**kwargs: Any,
|
|
48
|
+
) -> "Sequence[dict[str, Any]]": ...
|
|
49
|
+
@overload
|
|
50
|
+
async def select(
|
|
51
|
+
self,
|
|
52
|
+
sql: str,
|
|
53
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
54
|
+
/,
|
|
55
|
+
*,
|
|
56
|
+
connection: "Optional[Connection]" = None,
|
|
57
|
+
schema_type: "type[ModelDTOT]",
|
|
58
|
+
**kwargs: Any,
|
|
59
|
+
) -> "Sequence[ModelDTOT]": ...
|
|
37
60
|
async def select(
|
|
38
61
|
self,
|
|
39
62
|
sql: str,
|
|
@@ -43,7 +66,7 @@ class AiosqliteDriver(AsyncDriverAdapterProtocol["Connection"]):
|
|
|
43
66
|
connection: Optional["Connection"] = None,
|
|
44
67
|
schema_type: "Optional[type[ModelDTOT]]" = None,
|
|
45
68
|
**kwargs: Any,
|
|
46
|
-
) -> "
|
|
69
|
+
) -> "Sequence[Union[ModelDTOT, dict[str, Any]]]":
|
|
47
70
|
"""Fetch data from the database.
|
|
48
71
|
|
|
49
72
|
Returns:
|
|
@@ -61,6 +84,28 @@ class AiosqliteDriver(AsyncDriverAdapterProtocol["Connection"]):
|
|
|
61
84
|
return [dict(zip(column_names, row)) for row in results] # pyright: ignore[reportUnknownArgumentType]
|
|
62
85
|
return [cast("ModelDTOT", schema_type(**dict(zip(column_names, row)))) for row in results] # pyright: ignore[reportUnknownArgumentType]
|
|
63
86
|
|
|
87
|
+
@overload
|
|
88
|
+
async def select_one(
|
|
89
|
+
self,
|
|
90
|
+
sql: str,
|
|
91
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
92
|
+
/,
|
|
93
|
+
*,
|
|
94
|
+
connection: "Optional[Connection]" = None,
|
|
95
|
+
schema_type: None = None,
|
|
96
|
+
**kwargs: Any,
|
|
97
|
+
) -> "dict[str, Any]": ...
|
|
98
|
+
@overload
|
|
99
|
+
async def select_one(
|
|
100
|
+
self,
|
|
101
|
+
sql: str,
|
|
102
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
103
|
+
/,
|
|
104
|
+
*,
|
|
105
|
+
connection: "Optional[Connection]" = None,
|
|
106
|
+
schema_type: "type[ModelDTOT]",
|
|
107
|
+
**kwargs: Any,
|
|
108
|
+
) -> "ModelDTOT": ...
|
|
64
109
|
async def select_one(
|
|
65
110
|
self,
|
|
66
111
|
sql: str,
|
|
@@ -87,6 +132,28 @@ class AiosqliteDriver(AsyncDriverAdapterProtocol["Connection"]):
|
|
|
87
132
|
return dict(zip(column_names, result)) # pyright: ignore[reportUnknownArgumentType, reportUnknownVariableType]
|
|
88
133
|
return cast("ModelDTOT", schema_type(**dict(zip(column_names, result)))) # pyright: ignore[reportUnknownArgumentType]
|
|
89
134
|
|
|
135
|
+
@overload
|
|
136
|
+
async def select_one_or_none(
|
|
137
|
+
self,
|
|
138
|
+
sql: str,
|
|
139
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
140
|
+
/,
|
|
141
|
+
*,
|
|
142
|
+
connection: "Optional[Connection]" = None,
|
|
143
|
+
schema_type: None = None,
|
|
144
|
+
**kwargs: Any,
|
|
145
|
+
) -> "Optional[dict[str, Any]]": ...
|
|
146
|
+
@overload
|
|
147
|
+
async def select_one_or_none(
|
|
148
|
+
self,
|
|
149
|
+
sql: str,
|
|
150
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
151
|
+
/,
|
|
152
|
+
*,
|
|
153
|
+
connection: "Optional[Connection]" = None,
|
|
154
|
+
schema_type: "type[ModelDTOT]",
|
|
155
|
+
**kwargs: Any,
|
|
156
|
+
) -> "Optional[ModelDTOT]": ...
|
|
90
157
|
async def select_one_or_none(
|
|
91
158
|
self,
|
|
92
159
|
sql: str,
|
|
@@ -114,6 +181,28 @@ class AiosqliteDriver(AsyncDriverAdapterProtocol["Connection"]):
|
|
|
114
181
|
return dict(zip(column_names, result)) # pyright: ignore[reportUnknownArgumentType, reportUnknownVariableType]
|
|
115
182
|
return cast("ModelDTOT", schema_type(**dict(zip(column_names, result)))) # pyright: ignore[reportUnknownArgumentType]
|
|
116
183
|
|
|
184
|
+
@overload
|
|
185
|
+
async def select_value(
|
|
186
|
+
self,
|
|
187
|
+
sql: str,
|
|
188
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
189
|
+
/,
|
|
190
|
+
*,
|
|
191
|
+
connection: "Optional[Connection]" = None,
|
|
192
|
+
schema_type: None = None,
|
|
193
|
+
**kwargs: Any,
|
|
194
|
+
) -> "Any": ...
|
|
195
|
+
@overload
|
|
196
|
+
async def select_value(
|
|
197
|
+
self,
|
|
198
|
+
sql: str,
|
|
199
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
200
|
+
/,
|
|
201
|
+
*,
|
|
202
|
+
connection: "Optional[Connection]" = None,
|
|
203
|
+
schema_type: "type[T]",
|
|
204
|
+
**kwargs: Any,
|
|
205
|
+
) -> "T": ...
|
|
117
206
|
async def select_value(
|
|
118
207
|
self,
|
|
119
208
|
sql: str,
|
|
@@ -139,6 +228,28 @@ class AiosqliteDriver(AsyncDriverAdapterProtocol["Connection"]):
|
|
|
139
228
|
return result[0]
|
|
140
229
|
return schema_type(result[0]) # type: ignore[call-arg]
|
|
141
230
|
|
|
231
|
+
@overload
|
|
232
|
+
async def select_value_or_none(
|
|
233
|
+
self,
|
|
234
|
+
sql: str,
|
|
235
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
236
|
+
/,
|
|
237
|
+
*,
|
|
238
|
+
connection: "Optional[Connection]" = None,
|
|
239
|
+
schema_type: None = None,
|
|
240
|
+
**kwargs: Any,
|
|
241
|
+
) -> "Optional[Any]": ...
|
|
242
|
+
@overload
|
|
243
|
+
async def select_value_or_none(
|
|
244
|
+
self,
|
|
245
|
+
sql: str,
|
|
246
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
247
|
+
/,
|
|
248
|
+
*,
|
|
249
|
+
connection: "Optional[Connection]" = None,
|
|
250
|
+
schema_type: "type[T]",
|
|
251
|
+
**kwargs: Any,
|
|
252
|
+
) -> "Optional[T]": ...
|
|
142
253
|
async def select_value_or_none(
|
|
143
254
|
self,
|
|
144
255
|
sql: str,
|
|
@@ -186,6 +297,28 @@ class AiosqliteDriver(AsyncDriverAdapterProtocol["Connection"]):
|
|
|
186
297
|
await cursor.execute(sql, parameters) # pyright: ignore[reportUnknownMemberType]
|
|
187
298
|
return cursor.rowcount if hasattr(cursor, "rowcount") else -1 # pyright: ignore[reportUnknownVariableType, reportGeneralTypeIssues]
|
|
188
299
|
|
|
300
|
+
@overload
|
|
301
|
+
async def insert_update_delete_returning(
|
|
302
|
+
self,
|
|
303
|
+
sql: str,
|
|
304
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
305
|
+
/,
|
|
306
|
+
*,
|
|
307
|
+
connection: "Optional[Connection]" = None,
|
|
308
|
+
schema_type: None = None,
|
|
309
|
+
**kwargs: Any,
|
|
310
|
+
) -> "dict[str, Any]": ...
|
|
311
|
+
@overload
|
|
312
|
+
async def insert_update_delete_returning(
|
|
313
|
+
self,
|
|
314
|
+
sql: str,
|
|
315
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
316
|
+
/,
|
|
317
|
+
*,
|
|
318
|
+
connection: "Optional[Connection]" = None,
|
|
319
|
+
schema_type: "type[ModelDTOT]",
|
|
320
|
+
**kwargs: Any,
|
|
321
|
+
) -> "ModelDTOT": ...
|
|
189
322
|
async def insert_update_delete_returning(
|
|
190
323
|
self,
|
|
191
324
|
sql: str,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# type: ignore
|
|
2
|
-
from collections.abc import AsyncGenerator
|
|
2
|
+
from collections.abc import AsyncGenerator, Sequence
|
|
3
3
|
from contextlib import asynccontextmanager
|
|
4
|
-
from typing import TYPE_CHECKING, Any, Optional, Union, cast
|
|
4
|
+
from typing import TYPE_CHECKING, Any, Optional, Union, cast, overload
|
|
5
5
|
|
|
6
6
|
from sqlspec.base import AsyncDriverAdapterProtocol, T
|
|
7
7
|
|
|
@@ -36,6 +36,29 @@ class AsyncmyDriver(AsyncDriverAdapterProtocol["Connection"]):
|
|
|
36
36
|
finally:
|
|
37
37
|
await cursor.close()
|
|
38
38
|
|
|
39
|
+
# --- Public API Methods --- #
|
|
40
|
+
@overload
|
|
41
|
+
async def select(
|
|
42
|
+
self,
|
|
43
|
+
sql: str,
|
|
44
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
45
|
+
/,
|
|
46
|
+
*,
|
|
47
|
+
connection: "Optional[Connection]" = None,
|
|
48
|
+
schema_type: None = None,
|
|
49
|
+
**kwargs: Any,
|
|
50
|
+
) -> "Sequence[dict[str, Any]]": ...
|
|
51
|
+
@overload
|
|
52
|
+
async def select(
|
|
53
|
+
self,
|
|
54
|
+
sql: str,
|
|
55
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
56
|
+
/,
|
|
57
|
+
*,
|
|
58
|
+
connection: "Optional[Connection]" = None,
|
|
59
|
+
schema_type: "type[ModelDTOT]",
|
|
60
|
+
**kwargs: Any,
|
|
61
|
+
) -> "Sequence[ModelDTOT]": ...
|
|
39
62
|
async def select(
|
|
40
63
|
self,
|
|
41
64
|
sql: str,
|
|
@@ -45,7 +68,7 @@ class AsyncmyDriver(AsyncDriverAdapterProtocol["Connection"]):
|
|
|
45
68
|
connection: Optional["Connection"] = None,
|
|
46
69
|
schema_type: "Optional[type[ModelDTOT]]" = None,
|
|
47
70
|
**kwargs: Any,
|
|
48
|
-
) -> "
|
|
71
|
+
) -> "Sequence[Union[ModelDTOT, dict[str, Any]]]":
|
|
49
72
|
"""Fetch data from the database.
|
|
50
73
|
|
|
51
74
|
Returns:
|
|
@@ -63,6 +86,28 @@ class AsyncmyDriver(AsyncDriverAdapterProtocol["Connection"]):
|
|
|
63
86
|
return [dict(zip(column_names, row)) for row in results]
|
|
64
87
|
return [schema_type(**dict(zip(column_names, row))) for row in results]
|
|
65
88
|
|
|
89
|
+
@overload
|
|
90
|
+
async def select_one(
|
|
91
|
+
self,
|
|
92
|
+
sql: str,
|
|
93
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
94
|
+
/,
|
|
95
|
+
*,
|
|
96
|
+
connection: "Optional[Connection]" = None,
|
|
97
|
+
schema_type: None = None,
|
|
98
|
+
**kwargs: Any,
|
|
99
|
+
) -> "dict[str, Any]": ...
|
|
100
|
+
@overload
|
|
101
|
+
async def select_one(
|
|
102
|
+
self,
|
|
103
|
+
sql: str,
|
|
104
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
105
|
+
/,
|
|
106
|
+
*,
|
|
107
|
+
connection: "Optional[Connection]" = None,
|
|
108
|
+
schema_type: "type[ModelDTOT]",
|
|
109
|
+
**kwargs: Any,
|
|
110
|
+
) -> "ModelDTOT": ...
|
|
66
111
|
async def select_one(
|
|
67
112
|
self,
|
|
68
113
|
sql: str,
|
|
@@ -89,6 +134,28 @@ class AsyncmyDriver(AsyncDriverAdapterProtocol["Connection"]):
|
|
|
89
134
|
return dict(zip(column_names, result))
|
|
90
135
|
return cast("ModelDTOT", schema_type(**dict(zip(column_names, result))))
|
|
91
136
|
|
|
137
|
+
@overload
|
|
138
|
+
async def select_one_or_none(
|
|
139
|
+
self,
|
|
140
|
+
sql: str,
|
|
141
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
142
|
+
/,
|
|
143
|
+
*,
|
|
144
|
+
connection: "Optional[Connection]" = None,
|
|
145
|
+
schema_type: None = None,
|
|
146
|
+
**kwargs: Any,
|
|
147
|
+
) -> "Optional[dict[str, Any]]": ...
|
|
148
|
+
@overload
|
|
149
|
+
async def select_one_or_none(
|
|
150
|
+
self,
|
|
151
|
+
sql: str,
|
|
152
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
153
|
+
/,
|
|
154
|
+
*,
|
|
155
|
+
connection: "Optional[Connection]" = None,
|
|
156
|
+
schema_type: "type[ModelDTOT]",
|
|
157
|
+
**kwargs: Any,
|
|
158
|
+
) -> "Optional[ModelDTOT]": ...
|
|
92
159
|
async def select_one_or_none(
|
|
93
160
|
self,
|
|
94
161
|
sql: str,
|
|
@@ -116,6 +183,28 @@ class AsyncmyDriver(AsyncDriverAdapterProtocol["Connection"]):
|
|
|
116
183
|
return dict(zip(column_names, result))
|
|
117
184
|
return cast("ModelDTOT", schema_type(**dict(zip(column_names, result))))
|
|
118
185
|
|
|
186
|
+
@overload
|
|
187
|
+
async def select_value(
|
|
188
|
+
self,
|
|
189
|
+
sql: str,
|
|
190
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
191
|
+
/,
|
|
192
|
+
*,
|
|
193
|
+
connection: "Optional[Connection]" = None,
|
|
194
|
+
schema_type: None = None,
|
|
195
|
+
**kwargs: Any,
|
|
196
|
+
) -> "Any": ...
|
|
197
|
+
@overload
|
|
198
|
+
async def select_value(
|
|
199
|
+
self,
|
|
200
|
+
sql: str,
|
|
201
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
202
|
+
/,
|
|
203
|
+
*,
|
|
204
|
+
connection: "Optional[Connection]" = None,
|
|
205
|
+
schema_type: "type[T]",
|
|
206
|
+
**kwargs: Any,
|
|
207
|
+
) -> "T": ...
|
|
119
208
|
async def select_value(
|
|
120
209
|
self,
|
|
121
210
|
sql: str,
|
|
@@ -144,6 +233,28 @@ class AsyncmyDriver(AsyncDriverAdapterProtocol["Connection"]):
|
|
|
144
233
|
return schema_type(value) # type: ignore[call-arg]
|
|
145
234
|
return value
|
|
146
235
|
|
|
236
|
+
@overload
|
|
237
|
+
async def select_value_or_none(
|
|
238
|
+
self,
|
|
239
|
+
sql: str,
|
|
240
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
241
|
+
/,
|
|
242
|
+
*,
|
|
243
|
+
connection: "Optional[Connection]" = None,
|
|
244
|
+
schema_type: None = None,
|
|
245
|
+
**kwargs: Any,
|
|
246
|
+
) -> "Optional[Any]": ...
|
|
247
|
+
@overload
|
|
248
|
+
async def select_value_or_none(
|
|
249
|
+
self,
|
|
250
|
+
sql: str,
|
|
251
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
252
|
+
/,
|
|
253
|
+
*,
|
|
254
|
+
connection: "Optional[Connection]" = None,
|
|
255
|
+
schema_type: "type[T]",
|
|
256
|
+
**kwargs: Any,
|
|
257
|
+
) -> "Optional[T]": ...
|
|
147
258
|
async def select_value_or_none(
|
|
148
259
|
self,
|
|
149
260
|
sql: str,
|
|
@@ -195,6 +306,28 @@ class AsyncmyDriver(AsyncDriverAdapterProtocol["Connection"]):
|
|
|
195
306
|
await cursor.execute(sql, parameters)
|
|
196
307
|
return cursor.rowcount
|
|
197
308
|
|
|
309
|
+
@overload
|
|
310
|
+
async def insert_update_delete_returning(
|
|
311
|
+
self,
|
|
312
|
+
sql: str,
|
|
313
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
314
|
+
/,
|
|
315
|
+
*,
|
|
316
|
+
connection: "Optional[Connection]" = None,
|
|
317
|
+
schema_type: None = None,
|
|
318
|
+
**kwargs: Any,
|
|
319
|
+
) -> "dict[str, Any]": ...
|
|
320
|
+
@overload
|
|
321
|
+
async def insert_update_delete_returning(
|
|
322
|
+
self,
|
|
323
|
+
sql: str,
|
|
324
|
+
parameters: "Optional[StatementParameterType]" = None,
|
|
325
|
+
/,
|
|
326
|
+
*,
|
|
327
|
+
connection: "Optional[Connection]" = None,
|
|
328
|
+
schema_type: "type[ModelDTOT]",
|
|
329
|
+
**kwargs: Any,
|
|
330
|
+
) -> "ModelDTOT": ...
|
|
198
331
|
async def insert_update_delete_returning(
|
|
199
332
|
self,
|
|
200
333
|
sql: str,
|