sqlspec 0.11.0__py3-none-any.whl → 0.11.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 +37 -60
- sqlspec/adapters/aiosqlite/driver.py +73 -104
- sqlspec/adapters/asyncmy/driver.py +28 -44
- sqlspec/adapters/asyncpg/driver.py +34 -44
- sqlspec/adapters/bigquery/driver.py +79 -168
- sqlspec/adapters/duckdb/driver.py +20 -49
- sqlspec/adapters/oracledb/driver.py +66 -86
- sqlspec/adapters/psqlpy/driver.py +39 -56
- sqlspec/adapters/psycopg/driver.py +71 -112
- sqlspec/adapters/sqlite/driver.py +15 -35
- sqlspec/base.py +0 -41
- sqlspec/filters.py +2 -1
- sqlspec/mixins.py +9 -10
- {sqlspec-0.11.0.dist-info → sqlspec-0.11.1.dist-info}/METADATA +4 -1
- {sqlspec-0.11.0.dist-info → sqlspec-0.11.1.dist-info}/RECORD +18 -18
- {sqlspec-0.11.0.dist-info → sqlspec-0.11.1.dist-info}/WHEEL +0 -0
- {sqlspec-0.11.0.dist-info → sqlspec-0.11.1.dist-info}/licenses/LICENSE +0 -0
- {sqlspec-0.11.0.dist-info → sqlspec-0.11.1.dist-info}/licenses/NOTICE +0 -0
|
@@ -5,14 +5,14 @@ from sqlite3 import Cursor
|
|
|
5
5
|
from typing import TYPE_CHECKING, Any, Optional, Union, overload
|
|
6
6
|
|
|
7
7
|
from sqlspec.base import SyncDriverAdapterProtocol
|
|
8
|
+
from sqlspec.filters import StatementFilter
|
|
8
9
|
from sqlspec.mixins import ResultConverter, SQLTranslatorMixin
|
|
9
10
|
from sqlspec.statement import SQLStatement
|
|
10
11
|
from sqlspec.typing import is_dict
|
|
11
12
|
|
|
12
13
|
if TYPE_CHECKING:
|
|
13
|
-
from collections.abc import Generator, Sequence
|
|
14
|
+
from collections.abc import Generator, Mapping, Sequence
|
|
14
15
|
|
|
15
|
-
from sqlspec.filters import StatementFilter
|
|
16
16
|
from sqlspec.typing import ModelDTOT, StatementParameterType, T
|
|
17
17
|
|
|
18
18
|
__all__ = ("SqliteConnection", "SqliteDriver")
|
|
@@ -51,7 +51,6 @@ class SqliteDriver(
|
|
|
51
51
|
self,
|
|
52
52
|
sql: str,
|
|
53
53
|
parameters: "Optional[StatementParameterType]" = None,
|
|
54
|
-
/,
|
|
55
54
|
*filters: "StatementFilter",
|
|
56
55
|
**kwargs: Any,
|
|
57
56
|
) -> "tuple[str, Optional[Union[tuple[Any, ...], list[Any], dict[str, Any]]]]":
|
|
@@ -71,9 +70,19 @@ class SqliteDriver(
|
|
|
71
70
|
A tuple of (processed SQL, processed parameters).
|
|
72
71
|
"""
|
|
73
72
|
# Create a SQLStatement with SQLite dialect
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
73
|
+
data_params_for_statement: Optional[Union[Mapping[str, Any], Sequence[Any]]] = None
|
|
74
|
+
combined_filters_list: list[StatementFilter] = list(filters)
|
|
75
|
+
|
|
76
|
+
if parameters is not None:
|
|
77
|
+
if isinstance(parameters, StatementFilter):
|
|
78
|
+
combined_filters_list.insert(0, parameters)
|
|
79
|
+
else:
|
|
80
|
+
data_params_for_statement = parameters
|
|
81
|
+
if data_params_for_statement is not None and not isinstance(data_params_for_statement, (list, tuple, dict)):
|
|
82
|
+
data_params_for_statement = (data_params_for_statement,)
|
|
83
|
+
statement = SQLStatement(sql, data_params_for_statement, kwargs=kwargs, dialect=self.dialect)
|
|
84
|
+
|
|
85
|
+
for filter_obj in combined_filters_list:
|
|
77
86
|
statement = statement.apply_filter(filter_obj)
|
|
78
87
|
|
|
79
88
|
processed_sql, processed_params, _ = statement.process()
|
|
@@ -95,7 +104,6 @@ class SqliteDriver(
|
|
|
95
104
|
self,
|
|
96
105
|
sql: str,
|
|
97
106
|
parameters: "Optional[StatementParameterType]" = None,
|
|
98
|
-
/,
|
|
99
107
|
*filters: "StatementFilter",
|
|
100
108
|
connection: "Optional[SqliteConnection]" = None,
|
|
101
109
|
schema_type: None = None,
|
|
@@ -106,7 +114,6 @@ class SqliteDriver(
|
|
|
106
114
|
self,
|
|
107
115
|
sql: str,
|
|
108
116
|
parameters: "Optional[StatementParameterType]" = None,
|
|
109
|
-
/,
|
|
110
117
|
*filters: "StatementFilter",
|
|
111
118
|
connection: "Optional[SqliteConnection]" = None,
|
|
112
119
|
schema_type: "type[ModelDTOT]",
|
|
@@ -116,7 +123,6 @@ class SqliteDriver(
|
|
|
116
123
|
self,
|
|
117
124
|
sql: str,
|
|
118
125
|
parameters: "Optional[StatementParameterType]" = None,
|
|
119
|
-
/,
|
|
120
126
|
*filters: "StatementFilter",
|
|
121
127
|
connection: "Optional[SqliteConnection]" = None,
|
|
122
128
|
schema_type: "Optional[type[ModelDTOT]]" = None,
|
|
@@ -146,7 +152,6 @@ class SqliteDriver(
|
|
|
146
152
|
self,
|
|
147
153
|
sql: str,
|
|
148
154
|
parameters: "Optional[StatementParameterType]" = None,
|
|
149
|
-
/,
|
|
150
155
|
*filters: "StatementFilter",
|
|
151
156
|
connection: "Optional[SqliteConnection]" = None,
|
|
152
157
|
schema_type: None = None,
|
|
@@ -157,7 +162,6 @@ class SqliteDriver(
|
|
|
157
162
|
self,
|
|
158
163
|
sql: str,
|
|
159
164
|
parameters: "Optional[StatementParameterType]" = None,
|
|
160
|
-
/,
|
|
161
165
|
*filters: "StatementFilter",
|
|
162
166
|
connection: "Optional[SqliteConnection]" = None,
|
|
163
167
|
schema_type: "type[ModelDTOT]",
|
|
@@ -167,7 +171,6 @@ class SqliteDriver(
|
|
|
167
171
|
self,
|
|
168
172
|
sql: str,
|
|
169
173
|
parameters: "Optional[StatementParameterType]" = None,
|
|
170
|
-
/,
|
|
171
174
|
*filters: "StatementFilter",
|
|
172
175
|
connection: "Optional[SqliteConnection]" = None,
|
|
173
176
|
schema_type: "Optional[type[ModelDTOT]]" = None,
|
|
@@ -186,10 +189,7 @@ class SqliteDriver(
|
|
|
186
189
|
cursor.execute(sql, parameters or [])
|
|
187
190
|
result = cursor.fetchone()
|
|
188
191
|
result = self.check_not_found(result)
|
|
189
|
-
|
|
190
|
-
# Get column names
|
|
191
192
|
column_names = [column[0] for column in cursor.description]
|
|
192
|
-
|
|
193
193
|
return self.to_schema(dict(zip(column_names, result)), schema_type=schema_type)
|
|
194
194
|
|
|
195
195
|
@overload
|
|
@@ -197,7 +197,6 @@ class SqliteDriver(
|
|
|
197
197
|
self,
|
|
198
198
|
sql: str,
|
|
199
199
|
parameters: "Optional[StatementParameterType]" = None,
|
|
200
|
-
/,
|
|
201
200
|
*filters: "StatementFilter",
|
|
202
201
|
connection: "Optional[SqliteConnection]" = None,
|
|
203
202
|
schema_type: None = None,
|
|
@@ -208,7 +207,6 @@ class SqliteDriver(
|
|
|
208
207
|
self,
|
|
209
208
|
sql: str,
|
|
210
209
|
parameters: "Optional[StatementParameterType]" = None,
|
|
211
|
-
/,
|
|
212
210
|
*filters: "StatementFilter",
|
|
213
211
|
connection: "Optional[SqliteConnection]" = None,
|
|
214
212
|
schema_type: "type[ModelDTOT]",
|
|
@@ -218,7 +216,6 @@ class SqliteDriver(
|
|
|
218
216
|
self,
|
|
219
217
|
sql: str,
|
|
220
218
|
parameters: "Optional[StatementParameterType]" = None,
|
|
221
|
-
/,
|
|
222
219
|
*filters: "StatementFilter",
|
|
223
220
|
connection: "Optional[SqliteConnection]" = None,
|
|
224
221
|
schema_type: "Optional[type[ModelDTOT]]" = None,
|
|
@@ -238,9 +235,7 @@ class SqliteDriver(
|
|
|
238
235
|
if result is None:
|
|
239
236
|
return None
|
|
240
237
|
|
|
241
|
-
# Get column names
|
|
242
238
|
column_names = [column[0] for column in cursor.description]
|
|
243
|
-
|
|
244
239
|
return self.to_schema(dict(zip(column_names, result)), schema_type=schema_type)
|
|
245
240
|
|
|
246
241
|
@overload
|
|
@@ -248,7 +243,6 @@ class SqliteDriver(
|
|
|
248
243
|
self,
|
|
249
244
|
sql: str,
|
|
250
245
|
parameters: "Optional[StatementParameterType]" = None,
|
|
251
|
-
/,
|
|
252
246
|
*filters: "StatementFilter",
|
|
253
247
|
connection: "Optional[SqliteConnection]" = None,
|
|
254
248
|
schema_type: None = None,
|
|
@@ -259,7 +253,6 @@ class SqliteDriver(
|
|
|
259
253
|
self,
|
|
260
254
|
sql: str,
|
|
261
255
|
parameters: "Optional[StatementParameterType]" = None,
|
|
262
|
-
/,
|
|
263
256
|
*filters: "StatementFilter",
|
|
264
257
|
connection: "Optional[SqliteConnection]" = None,
|
|
265
258
|
schema_type: "type[T]",
|
|
@@ -269,7 +262,6 @@ class SqliteDriver(
|
|
|
269
262
|
self,
|
|
270
263
|
sql: str,
|
|
271
264
|
parameters: "Optional[StatementParameterType]" = None,
|
|
272
|
-
/,
|
|
273
265
|
*filters: "StatementFilter",
|
|
274
266
|
connection: "Optional[SqliteConnection]" = None,
|
|
275
267
|
schema_type: "Optional[type[T]]" = None,
|
|
@@ -287,8 +279,6 @@ class SqliteDriver(
|
|
|
287
279
|
cursor.execute(sql, parameters or [])
|
|
288
280
|
result = cursor.fetchone()
|
|
289
281
|
result = self.check_not_found(result)
|
|
290
|
-
|
|
291
|
-
# Return first value from the row
|
|
292
282
|
result_value = result[0]
|
|
293
283
|
if schema_type is None:
|
|
294
284
|
return result_value
|
|
@@ -299,7 +289,6 @@ class SqliteDriver(
|
|
|
299
289
|
self,
|
|
300
290
|
sql: str,
|
|
301
291
|
parameters: "Optional[StatementParameterType]" = None,
|
|
302
|
-
/,
|
|
303
292
|
*filters: "StatementFilter",
|
|
304
293
|
connection: "Optional[SqliteConnection]" = None,
|
|
305
294
|
schema_type: None = None,
|
|
@@ -310,7 +299,6 @@ class SqliteDriver(
|
|
|
310
299
|
self,
|
|
311
300
|
sql: str,
|
|
312
301
|
parameters: "Optional[StatementParameterType]" = None,
|
|
313
|
-
/,
|
|
314
302
|
*filters: "StatementFilter",
|
|
315
303
|
connection: "Optional[SqliteConnection]" = None,
|
|
316
304
|
schema_type: "type[T]",
|
|
@@ -320,7 +308,6 @@ class SqliteDriver(
|
|
|
320
308
|
self,
|
|
321
309
|
sql: str,
|
|
322
310
|
parameters: "Optional[StatementParameterType]" = None,
|
|
323
|
-
/,
|
|
324
311
|
*filters: "StatementFilter",
|
|
325
312
|
connection: "Optional[SqliteConnection]" = None,
|
|
326
313
|
schema_type: "Optional[type[T]]" = None,
|
|
@@ -339,8 +326,6 @@ class SqliteDriver(
|
|
|
339
326
|
result = cursor.fetchone()
|
|
340
327
|
if result is None:
|
|
341
328
|
return None
|
|
342
|
-
|
|
343
|
-
# Return first value from the row
|
|
344
329
|
result_value = result[0]
|
|
345
330
|
if schema_type is None:
|
|
346
331
|
return result_value
|
|
@@ -350,7 +335,6 @@ class SqliteDriver(
|
|
|
350
335
|
self,
|
|
351
336
|
sql: str,
|
|
352
337
|
parameters: "Optional[StatementParameterType]" = None,
|
|
353
|
-
/,
|
|
354
338
|
*filters: "StatementFilter",
|
|
355
339
|
connection: "Optional[SqliteConnection]" = None,
|
|
356
340
|
**kwargs: Any,
|
|
@@ -372,7 +356,6 @@ class SqliteDriver(
|
|
|
372
356
|
self,
|
|
373
357
|
sql: str,
|
|
374
358
|
parameters: "Optional[StatementParameterType]" = None,
|
|
375
|
-
/,
|
|
376
359
|
*filters: "StatementFilter",
|
|
377
360
|
connection: "Optional[SqliteConnection]" = None,
|
|
378
361
|
schema_type: None = None,
|
|
@@ -383,7 +366,6 @@ class SqliteDriver(
|
|
|
383
366
|
self,
|
|
384
367
|
sql: str,
|
|
385
368
|
parameters: "Optional[StatementParameterType]" = None,
|
|
386
|
-
/,
|
|
387
369
|
*filters: "StatementFilter",
|
|
388
370
|
connection: "Optional[SqliteConnection]" = None,
|
|
389
371
|
schema_type: "type[ModelDTOT]",
|
|
@@ -393,7 +375,6 @@ class SqliteDriver(
|
|
|
393
375
|
self,
|
|
394
376
|
sql: str,
|
|
395
377
|
parameters: "Optional[StatementParameterType]" = None,
|
|
396
|
-
/,
|
|
397
378
|
*filters: "StatementFilter",
|
|
398
379
|
connection: "Optional[SqliteConnection]" = None,
|
|
399
380
|
schema_type: "Optional[type[ModelDTOT]]" = None,
|
|
@@ -418,7 +399,6 @@ class SqliteDriver(
|
|
|
418
399
|
self,
|
|
419
400
|
sql: str,
|
|
420
401
|
parameters: "Optional[StatementParameterType]" = None,
|
|
421
|
-
/,
|
|
422
402
|
connection: "Optional[SqliteConnection]" = None,
|
|
423
403
|
**kwargs: Any,
|
|
424
404
|
) -> str:
|
sqlspec/base.py
CHANGED
|
@@ -538,7 +538,6 @@ class CommonDriverAttributes(Generic[ConnectionT]):
|
|
|
538
538
|
self,
|
|
539
539
|
sql: str,
|
|
540
540
|
parameters: "Optional[StatementParameterType]" = None,
|
|
541
|
-
/,
|
|
542
541
|
*filters: "StatementFilter",
|
|
543
542
|
**kwargs: Any,
|
|
544
543
|
) -> "tuple[str, Optional[Union[tuple[Any, ...], list[Any], dict[str, Any]]]]":
|
|
@@ -577,7 +576,6 @@ class SyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Generi
|
|
|
577
576
|
self,
|
|
578
577
|
sql: str,
|
|
579
578
|
parameters: "Optional[StatementParameterType]" = None,
|
|
580
|
-
/,
|
|
581
579
|
*filters: "StatementFilter",
|
|
582
580
|
connection: "Optional[ConnectionT]" = None,
|
|
583
581
|
schema_type: None = None,
|
|
@@ -590,7 +588,6 @@ class SyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Generi
|
|
|
590
588
|
self,
|
|
591
589
|
sql: str,
|
|
592
590
|
parameters: "Optional[StatementParameterType]" = None,
|
|
593
|
-
/,
|
|
594
591
|
*filters: "StatementFilter",
|
|
595
592
|
connection: "Optional[ConnectionT]" = None,
|
|
596
593
|
schema_type: "type[ModelDTOT]",
|
|
@@ -602,7 +599,6 @@ class SyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Generi
|
|
|
602
599
|
self,
|
|
603
600
|
sql: str,
|
|
604
601
|
parameters: "Optional[StatementParameterType]" = None,
|
|
605
|
-
/,
|
|
606
602
|
*filters: "StatementFilter",
|
|
607
603
|
connection: "Optional[ConnectionT]" = None,
|
|
608
604
|
schema_type: Optional[type[ModelDTOT]] = None,
|
|
@@ -615,7 +611,6 @@ class SyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Generi
|
|
|
615
611
|
self,
|
|
616
612
|
sql: str,
|
|
617
613
|
parameters: "Optional[StatementParameterType]" = None,
|
|
618
|
-
/,
|
|
619
614
|
*filters: "StatementFilter",
|
|
620
615
|
connection: "Optional[ConnectionT]" = None,
|
|
621
616
|
schema_type: None = None,
|
|
@@ -628,7 +623,6 @@ class SyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Generi
|
|
|
628
623
|
self,
|
|
629
624
|
sql: str,
|
|
630
625
|
parameters: "Optional[StatementParameterType]" = None,
|
|
631
|
-
/,
|
|
632
626
|
*filters: "StatementFilter",
|
|
633
627
|
connection: "Optional[ConnectionT]" = None,
|
|
634
628
|
schema_type: "type[ModelDTOT]",
|
|
@@ -640,7 +634,6 @@ class SyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Generi
|
|
|
640
634
|
self,
|
|
641
635
|
sql: str,
|
|
642
636
|
parameters: Optional[StatementParameterType] = None,
|
|
643
|
-
/,
|
|
644
637
|
*filters: "StatementFilter",
|
|
645
638
|
connection: Optional[ConnectionT] = None,
|
|
646
639
|
schema_type: Optional[type[ModelDTOT]] = None,
|
|
@@ -653,7 +646,6 @@ class SyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Generi
|
|
|
653
646
|
self,
|
|
654
647
|
sql: str,
|
|
655
648
|
parameters: "Optional[StatementParameterType]" = None,
|
|
656
|
-
/,
|
|
657
649
|
*filters: "StatementFilter",
|
|
658
650
|
connection: "Optional[ConnectionT]" = None,
|
|
659
651
|
schema_type: None = None,
|
|
@@ -666,7 +658,6 @@ class SyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Generi
|
|
|
666
658
|
self,
|
|
667
659
|
sql: str,
|
|
668
660
|
parameters: "Optional[StatementParameterType]" = None,
|
|
669
|
-
/,
|
|
670
661
|
*filters: "StatementFilter",
|
|
671
662
|
connection: "Optional[ConnectionT]" = None,
|
|
672
663
|
schema_type: "type[ModelDTOT]",
|
|
@@ -678,7 +669,6 @@ class SyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Generi
|
|
|
678
669
|
self,
|
|
679
670
|
sql: str,
|
|
680
671
|
parameters: Optional[StatementParameterType] = None,
|
|
681
|
-
/,
|
|
682
672
|
*filters: "StatementFilter",
|
|
683
673
|
connection: Optional[ConnectionT] = None,
|
|
684
674
|
schema_type: Optional[type[ModelDTOT]] = None,
|
|
@@ -691,7 +681,6 @@ class SyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Generi
|
|
|
691
681
|
self,
|
|
692
682
|
sql: str,
|
|
693
683
|
parameters: "Optional[StatementParameterType]" = None,
|
|
694
|
-
/,
|
|
695
684
|
*filters: "StatementFilter",
|
|
696
685
|
connection: "Optional[ConnectionT]" = None,
|
|
697
686
|
schema_type: None = None,
|
|
@@ -704,7 +693,6 @@ class SyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Generi
|
|
|
704
693
|
self,
|
|
705
694
|
sql: str,
|
|
706
695
|
parameters: "Optional[StatementParameterType]" = None,
|
|
707
|
-
/,
|
|
708
696
|
*filters: "StatementFilter",
|
|
709
697
|
connection: "Optional[ConnectionT]" = None,
|
|
710
698
|
schema_type: "type[T]",
|
|
@@ -716,7 +704,6 @@ class SyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Generi
|
|
|
716
704
|
self,
|
|
717
705
|
sql: str,
|
|
718
706
|
parameters: Optional[StatementParameterType] = None,
|
|
719
|
-
/,
|
|
720
707
|
*filters: "StatementFilter",
|
|
721
708
|
connection: Optional[ConnectionT] = None,
|
|
722
709
|
schema_type: Optional[type[T]] = None,
|
|
@@ -729,7 +716,6 @@ class SyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Generi
|
|
|
729
716
|
self,
|
|
730
717
|
sql: str,
|
|
731
718
|
parameters: "Optional[StatementParameterType]" = None,
|
|
732
|
-
/,
|
|
733
719
|
*filters: "StatementFilter",
|
|
734
720
|
connection: "Optional[ConnectionT]" = None,
|
|
735
721
|
schema_type: None = None,
|
|
@@ -742,7 +728,6 @@ class SyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Generi
|
|
|
742
728
|
self,
|
|
743
729
|
sql: str,
|
|
744
730
|
parameters: "Optional[StatementParameterType]" = None,
|
|
745
|
-
/,
|
|
746
731
|
*filters: "StatementFilter",
|
|
747
732
|
connection: "Optional[ConnectionT]" = None,
|
|
748
733
|
schema_type: "type[T]",
|
|
@@ -754,7 +739,6 @@ class SyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Generi
|
|
|
754
739
|
self,
|
|
755
740
|
sql: str,
|
|
756
741
|
parameters: Optional[StatementParameterType] = None,
|
|
757
|
-
/,
|
|
758
742
|
*filters: "StatementFilter",
|
|
759
743
|
connection: Optional[ConnectionT] = None,
|
|
760
744
|
schema_type: Optional[type[T]] = None,
|
|
@@ -766,7 +750,6 @@ class SyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Generi
|
|
|
766
750
|
self,
|
|
767
751
|
sql: str,
|
|
768
752
|
parameters: Optional[StatementParameterType] = None,
|
|
769
|
-
/,
|
|
770
753
|
*filters: "StatementFilter",
|
|
771
754
|
connection: Optional[ConnectionT] = None,
|
|
772
755
|
**kwargs: Any,
|
|
@@ -778,7 +761,6 @@ class SyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Generi
|
|
|
778
761
|
self,
|
|
779
762
|
sql: str,
|
|
780
763
|
parameters: "Optional[StatementParameterType]" = None,
|
|
781
|
-
/,
|
|
782
764
|
*filters: "StatementFilter",
|
|
783
765
|
connection: "Optional[ConnectionT]" = None,
|
|
784
766
|
schema_type: None = None,
|
|
@@ -791,7 +773,6 @@ class SyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Generi
|
|
|
791
773
|
self,
|
|
792
774
|
sql: str,
|
|
793
775
|
parameters: "Optional[StatementParameterType]" = None,
|
|
794
|
-
/,
|
|
795
776
|
*filters: "StatementFilter",
|
|
796
777
|
connection: "Optional[ConnectionT]" = None,
|
|
797
778
|
schema_type: "type[ModelDTOT]",
|
|
@@ -803,7 +784,6 @@ class SyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Generi
|
|
|
803
784
|
self,
|
|
804
785
|
sql: str,
|
|
805
786
|
parameters: Optional[StatementParameterType] = None,
|
|
806
|
-
/,
|
|
807
787
|
*filters: "StatementFilter",
|
|
808
788
|
connection: Optional[ConnectionT] = None,
|
|
809
789
|
schema_type: Optional[type[ModelDTOT]] = None,
|
|
@@ -815,7 +795,6 @@ class SyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Generi
|
|
|
815
795
|
self,
|
|
816
796
|
sql: str,
|
|
817
797
|
parameters: Optional[StatementParameterType] = None,
|
|
818
|
-
/,
|
|
819
798
|
connection: Optional[ConnectionT] = None,
|
|
820
799
|
**kwargs: Any,
|
|
821
800
|
) -> str: ...
|
|
@@ -833,7 +812,6 @@ class AsyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Gener
|
|
|
833
812
|
self,
|
|
834
813
|
sql: str,
|
|
835
814
|
parameters: "Optional[StatementParameterType]" = None,
|
|
836
|
-
/,
|
|
837
815
|
*filters: "StatementFilter",
|
|
838
816
|
connection: "Optional[ConnectionT]" = None,
|
|
839
817
|
schema_type: None = None,
|
|
@@ -846,7 +824,6 @@ class AsyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Gener
|
|
|
846
824
|
self,
|
|
847
825
|
sql: str,
|
|
848
826
|
parameters: "Optional[StatementParameterType]" = None,
|
|
849
|
-
/,
|
|
850
827
|
*filters: "StatementFilter",
|
|
851
828
|
connection: "Optional[ConnectionT]" = None,
|
|
852
829
|
schema_type: "type[ModelDTOT]",
|
|
@@ -858,7 +835,6 @@ class AsyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Gener
|
|
|
858
835
|
self,
|
|
859
836
|
sql: str,
|
|
860
837
|
parameters: "Optional[StatementParameterType]" = None,
|
|
861
|
-
/,
|
|
862
838
|
*filters: "StatementFilter",
|
|
863
839
|
connection: "Optional[ConnectionT]" = None,
|
|
864
840
|
schema_type: "Optional[type[ModelDTOT]]" = None,
|
|
@@ -871,7 +847,6 @@ class AsyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Gener
|
|
|
871
847
|
self,
|
|
872
848
|
sql: str,
|
|
873
849
|
parameters: "Optional[StatementParameterType]" = None,
|
|
874
|
-
/,
|
|
875
850
|
*filters: "StatementFilter",
|
|
876
851
|
connection: "Optional[ConnectionT]" = None,
|
|
877
852
|
schema_type: None = None,
|
|
@@ -884,7 +859,6 @@ class AsyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Gener
|
|
|
884
859
|
self,
|
|
885
860
|
sql: str,
|
|
886
861
|
parameters: "Optional[StatementParameterType]" = None,
|
|
887
|
-
/,
|
|
888
862
|
*filters: "StatementFilter",
|
|
889
863
|
connection: "Optional[ConnectionT]" = None,
|
|
890
864
|
schema_type: "type[ModelDTOT]",
|
|
@@ -896,7 +870,6 @@ class AsyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Gener
|
|
|
896
870
|
self,
|
|
897
871
|
sql: str,
|
|
898
872
|
parameters: "Optional[StatementParameterType]" = None,
|
|
899
|
-
/,
|
|
900
873
|
*filters: "StatementFilter",
|
|
901
874
|
connection: "Optional[ConnectionT]" = None,
|
|
902
875
|
schema_type: "Optional[type[ModelDTOT]]" = None,
|
|
@@ -909,7 +882,6 @@ class AsyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Gener
|
|
|
909
882
|
self,
|
|
910
883
|
sql: str,
|
|
911
884
|
parameters: "Optional[StatementParameterType]" = None,
|
|
912
|
-
/,
|
|
913
885
|
*filters: "StatementFilter",
|
|
914
886
|
connection: "Optional[ConnectionT]" = None,
|
|
915
887
|
schema_type: None = None,
|
|
@@ -922,7 +894,6 @@ class AsyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Gener
|
|
|
922
894
|
self,
|
|
923
895
|
sql: str,
|
|
924
896
|
parameters: "Optional[StatementParameterType]" = None,
|
|
925
|
-
/,
|
|
926
897
|
*filters: "StatementFilter",
|
|
927
898
|
connection: "Optional[ConnectionT]" = None,
|
|
928
899
|
schema_type: "type[ModelDTOT]",
|
|
@@ -934,7 +905,6 @@ class AsyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Gener
|
|
|
934
905
|
self,
|
|
935
906
|
sql: str,
|
|
936
907
|
parameters: "Optional[StatementParameterType]" = None,
|
|
937
|
-
/,
|
|
938
908
|
*filters: "StatementFilter",
|
|
939
909
|
connection: "Optional[ConnectionT]" = None,
|
|
940
910
|
schema_type: "Optional[type[ModelDTOT]]" = None,
|
|
@@ -947,7 +917,6 @@ class AsyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Gener
|
|
|
947
917
|
self,
|
|
948
918
|
sql: str,
|
|
949
919
|
parameters: "Optional[StatementParameterType]" = None,
|
|
950
|
-
/,
|
|
951
920
|
*filters: "StatementFilter",
|
|
952
921
|
connection: "Optional[ConnectionT]" = None,
|
|
953
922
|
schema_type: None = None,
|
|
@@ -960,7 +929,6 @@ class AsyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Gener
|
|
|
960
929
|
self,
|
|
961
930
|
sql: str,
|
|
962
931
|
parameters: "Optional[StatementParameterType]" = None,
|
|
963
|
-
/,
|
|
964
932
|
*filters: "StatementFilter",
|
|
965
933
|
connection: "Optional[ConnectionT]" = None,
|
|
966
934
|
schema_type: "type[T]",
|
|
@@ -972,7 +940,6 @@ class AsyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Gener
|
|
|
972
940
|
self,
|
|
973
941
|
sql: str,
|
|
974
942
|
parameters: "Optional[StatementParameterType]" = None,
|
|
975
|
-
/,
|
|
976
943
|
*filters: "StatementFilter",
|
|
977
944
|
connection: "Optional[ConnectionT]" = None,
|
|
978
945
|
schema_type: "Optional[type[T]]" = None,
|
|
@@ -985,7 +952,6 @@ class AsyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Gener
|
|
|
985
952
|
self,
|
|
986
953
|
sql: str,
|
|
987
954
|
parameters: "Optional[StatementParameterType]" = None,
|
|
988
|
-
/,
|
|
989
955
|
*filters: "StatementFilter",
|
|
990
956
|
connection: "Optional[ConnectionT]" = None,
|
|
991
957
|
schema_type: None = None,
|
|
@@ -998,7 +964,6 @@ class AsyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Gener
|
|
|
998
964
|
self,
|
|
999
965
|
sql: str,
|
|
1000
966
|
parameters: "Optional[StatementParameterType]" = None,
|
|
1001
|
-
/,
|
|
1002
967
|
*filters: "StatementFilter",
|
|
1003
968
|
connection: "Optional[ConnectionT]" = None,
|
|
1004
969
|
schema_type: "type[T]",
|
|
@@ -1010,7 +975,6 @@ class AsyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Gener
|
|
|
1010
975
|
self,
|
|
1011
976
|
sql: str,
|
|
1012
977
|
parameters: "Optional[StatementParameterType]" = None,
|
|
1013
|
-
/,
|
|
1014
978
|
*filters: "StatementFilter",
|
|
1015
979
|
connection: "Optional[ConnectionT]" = None,
|
|
1016
980
|
schema_type: "Optional[type[T]]" = None,
|
|
@@ -1022,7 +986,6 @@ class AsyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Gener
|
|
|
1022
986
|
self,
|
|
1023
987
|
sql: str,
|
|
1024
988
|
parameters: "Optional[StatementParameterType]" = None,
|
|
1025
|
-
/,
|
|
1026
989
|
*filters: "StatementFilter",
|
|
1027
990
|
connection: "Optional[ConnectionT]" = None,
|
|
1028
991
|
**kwargs: Any,
|
|
@@ -1034,7 +997,6 @@ class AsyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Gener
|
|
|
1034
997
|
self,
|
|
1035
998
|
sql: str,
|
|
1036
999
|
parameters: "Optional[StatementParameterType]" = None,
|
|
1037
|
-
/,
|
|
1038
1000
|
*filters: "StatementFilter",
|
|
1039
1001
|
connection: "Optional[ConnectionT]" = None,
|
|
1040
1002
|
schema_type: None = None,
|
|
@@ -1047,7 +1009,6 @@ class AsyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Gener
|
|
|
1047
1009
|
self,
|
|
1048
1010
|
sql: str,
|
|
1049
1011
|
parameters: "Optional[StatementParameterType]" = None,
|
|
1050
|
-
/,
|
|
1051
1012
|
*filters: "StatementFilter",
|
|
1052
1013
|
connection: "Optional[ConnectionT]" = None,
|
|
1053
1014
|
schema_type: "type[ModelDTOT]",
|
|
@@ -1059,7 +1020,6 @@ class AsyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Gener
|
|
|
1059
1020
|
self,
|
|
1060
1021
|
sql: str,
|
|
1061
1022
|
parameters: "Optional[StatementParameterType]" = None,
|
|
1062
|
-
/,
|
|
1063
1023
|
*filters: "StatementFilter",
|
|
1064
1024
|
connection: "Optional[ConnectionT]" = None,
|
|
1065
1025
|
schema_type: "Optional[type[ModelDTOT]]" = None,
|
|
@@ -1071,7 +1031,6 @@ class AsyncDriverAdapterProtocol(CommonDriverAttributes[ConnectionT], ABC, Gener
|
|
|
1071
1031
|
self,
|
|
1072
1032
|
sql: str,
|
|
1073
1033
|
parameters: "Optional[StatementParameterType]" = None,
|
|
1074
|
-
/,
|
|
1075
1034
|
connection: "Optional[ConnectionT]" = None,
|
|
1076
1035
|
**kwargs: Any,
|
|
1077
1036
|
) -> str: ...
|
sqlspec/filters.py
CHANGED
|
@@ -4,7 +4,7 @@ from abc import ABC, abstractmethod
|
|
|
4
4
|
from collections import abc
|
|
5
5
|
from dataclasses import dataclass
|
|
6
6
|
from datetime import datetime
|
|
7
|
-
from typing import Any, Generic, Literal, Optional, Protocol, Union, cast
|
|
7
|
+
from typing import Any, Generic, Literal, Optional, Protocol, Union, cast, runtime_checkable
|
|
8
8
|
|
|
9
9
|
from sqlglot import exp
|
|
10
10
|
from typing_extensions import TypeAlias, TypeVar
|
|
@@ -30,6 +30,7 @@ __all__ = (
|
|
|
30
30
|
T = TypeVar("T")
|
|
31
31
|
|
|
32
32
|
|
|
33
|
+
@runtime_checkable
|
|
33
34
|
class StatementFilter(Protocol):
|
|
34
35
|
"""Protocol for filters that can be appended to a statement."""
|
|
35
36
|
|
sqlspec/mixins.py
CHANGED
|
@@ -34,6 +34,7 @@ from sqlspec.typing import (
|
|
|
34
34
|
)
|
|
35
35
|
|
|
36
36
|
if TYPE_CHECKING:
|
|
37
|
+
from sqlspec.filters import StatementFilter
|
|
37
38
|
from sqlspec.typing import ArrowTable
|
|
38
39
|
|
|
39
40
|
__all__ = (
|
|
@@ -51,12 +52,11 @@ class SyncArrowBulkOperationsMixin(Generic[ConnectionT]):
|
|
|
51
52
|
__supports_arrow__: "ClassVar[bool]" = True
|
|
52
53
|
|
|
53
54
|
@abstractmethod
|
|
54
|
-
def select_arrow(
|
|
55
|
+
def select_arrow(
|
|
55
56
|
self,
|
|
56
57
|
sql: str,
|
|
57
58
|
parameters: "Optional[StatementParameterType]" = None,
|
|
58
|
-
|
|
59
|
-
*,
|
|
59
|
+
*filters: "StatementFilter",
|
|
60
60
|
connection: "Optional[ConnectionT]" = None,
|
|
61
61
|
**kwargs: Any,
|
|
62
62
|
) -> "ArrowTable": # pyright: ignore[reportUnknownReturnType]
|
|
@@ -65,6 +65,7 @@ class SyncArrowBulkOperationsMixin(Generic[ConnectionT]):
|
|
|
65
65
|
Args:
|
|
66
66
|
sql: The SQL query string.
|
|
67
67
|
parameters: Parameters for the query.
|
|
68
|
+
filters: Optional filters to apply to the query.
|
|
68
69
|
connection: Optional connection override.
|
|
69
70
|
**kwargs: Additional keyword arguments to merge with parameters if parameters is a dict.
|
|
70
71
|
|
|
@@ -80,12 +81,11 @@ class AsyncArrowBulkOperationsMixin(Generic[ConnectionT]):
|
|
|
80
81
|
__supports_arrow__: "ClassVar[bool]" = True
|
|
81
82
|
|
|
82
83
|
@abstractmethod
|
|
83
|
-
async def select_arrow(
|
|
84
|
+
async def select_arrow(
|
|
84
85
|
self,
|
|
85
86
|
sql: str,
|
|
86
87
|
parameters: "Optional[StatementParameterType]" = None,
|
|
87
|
-
|
|
88
|
-
*,
|
|
88
|
+
*filters: "StatementFilter",
|
|
89
89
|
connection: "Optional[ConnectionT]" = None,
|
|
90
90
|
**kwargs: Any,
|
|
91
91
|
) -> "ArrowTable": # pyright: ignore[reportUnknownReturnType]
|
|
@@ -94,6 +94,7 @@ class AsyncArrowBulkOperationsMixin(Generic[ConnectionT]):
|
|
|
94
94
|
Args:
|
|
95
95
|
sql: The SQL query string.
|
|
96
96
|
parameters: Parameters for the query.
|
|
97
|
+
filters: Optional filters to apply to the query.
|
|
97
98
|
connection: Optional connection override.
|
|
98
99
|
**kwargs: Additional keyword arguments to merge with parameters if parameters is a dict.
|
|
99
100
|
|
|
@@ -111,8 +112,7 @@ class SyncParquetExportMixin(Generic[ConnectionT]):
|
|
|
111
112
|
self,
|
|
112
113
|
sql: str,
|
|
113
114
|
parameters: "Optional[StatementParameterType]" = None,
|
|
114
|
-
|
|
115
|
-
*,
|
|
115
|
+
*filters: "StatementFilter",
|
|
116
116
|
connection: "Optional[ConnectionT]" = None,
|
|
117
117
|
**kwargs: Any,
|
|
118
118
|
) -> None:
|
|
@@ -128,8 +128,7 @@ class AsyncParquetExportMixin(Generic[ConnectionT]):
|
|
|
128
128
|
self,
|
|
129
129
|
sql: str,
|
|
130
130
|
parameters: "Optional[StatementParameterType]" = None,
|
|
131
|
-
|
|
132
|
-
*,
|
|
131
|
+
*filters: "StatementFilter",
|
|
133
132
|
connection: "Optional[ConnectionT]" = None,
|
|
134
133
|
**kwargs: Any,
|
|
135
134
|
) -> None:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sqlspec
|
|
3
|
-
Version: 0.11.
|
|
3
|
+
Version: 0.11.1
|
|
4
4
|
Summary: SQL Experiments in Python
|
|
5
5
|
Project-URL: Discord, https://discord.gg/litestar
|
|
6
6
|
Project-URL: Issue, https://github.com/litestar-org/sqlspec/issues/
|
|
@@ -46,6 +46,9 @@ Requires-Dist: orjson; extra == 'orjson'
|
|
|
46
46
|
Provides-Extra: performance
|
|
47
47
|
Requires-Dist: msgspec; extra == 'performance'
|
|
48
48
|
Requires-Dist: sqlglot[rs]; extra == 'performance'
|
|
49
|
+
Provides-Extra: polars
|
|
50
|
+
Requires-Dist: polars; extra == 'polars'
|
|
51
|
+
Requires-Dist: pyarrow; extra == 'polars'
|
|
49
52
|
Provides-Extra: psqlpy
|
|
50
53
|
Requires-Dist: psqlpy; extra == 'psqlpy'
|
|
51
54
|
Provides-Extra: psycopg
|