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.

@@ -17,7 +17,7 @@ from sqlspec.statement import SQLStatement
17
17
  from sqlspec.typing import is_dict
18
18
 
19
19
  if TYPE_CHECKING:
20
- from collections.abc import Sequence
20
+ from collections.abc import Mapping, Sequence
21
21
 
22
22
  from psqlpy import QueryResult
23
23
 
@@ -64,8 +64,7 @@ class PsqlpyDriver(
64
64
  self,
65
65
  sql: str,
66
66
  parameters: "Optional[StatementParameterType]" = None,
67
- /,
68
- *filters: StatementFilter,
67
+ *filters: "StatementFilter",
69
68
  **kwargs: Any,
70
69
  ) -> "tuple[str, Optional[Union[tuple[Any, ...], dict[str, Any]]]]":
71
70
  """Process SQL and parameters for psqlpy.
@@ -82,15 +81,19 @@ class PsqlpyDriver(
82
81
  Raises:
83
82
  SQLParsingError: If the SQL parsing fails.
84
83
  """
85
- # Handle scalar parameter by converting to a single-item tuple
86
- if parameters is not None and not isinstance(parameters, (list, tuple, dict)):
87
- parameters = (parameters,)
88
-
89
- # Create and process the statement
90
- statement = SQLStatement(sql=sql, parameters=parameters, kwargs=kwargs, dialect=self.dialect)
91
-
92
- # Apply any filters
93
- for filter_obj in filters:
84
+ data_params_for_statement: Optional[Union[Mapping[str, Any], Sequence[Any]]] = None
85
+ combined_filters_list: list[StatementFilter] = list(filters)
86
+
87
+ if parameters is not None:
88
+ if isinstance(parameters, StatementFilter):
89
+ combined_filters_list.insert(0, parameters)
90
+ else:
91
+ data_params_for_statement = parameters
92
+ if data_params_for_statement is not None and not isinstance(data_params_for_statement, (list, tuple, dict)):
93
+ data_params_for_statement = (data_params_for_statement,)
94
+ statement = SQLStatement(sql, data_params_for_statement, kwargs=kwargs, dialect=self.dialect)
95
+
96
+ for filter_obj in combined_filters_list:
94
97
  statement = statement.apply_filter(filter_obj)
95
98
 
96
99
  # Process the statement
@@ -162,8 +165,7 @@ class PsqlpyDriver(
162
165
  self,
163
166
  sql: str,
164
167
  parameters: "Optional[StatementParameterType]" = None,
165
- /,
166
- *filters: StatementFilter,
168
+ *filters: "StatementFilter",
167
169
  connection: "Optional[PsqlpyConnection]" = None,
168
170
  schema_type: None = None,
169
171
  **kwargs: Any,
@@ -173,8 +175,7 @@ class PsqlpyDriver(
173
175
  self,
174
176
  sql: str,
175
177
  parameters: "Optional[StatementParameterType]" = None,
176
- /,
177
- *filters: StatementFilter,
178
+ *filters: "StatementFilter",
178
179
  connection: "Optional[PsqlpyConnection]" = None,
179
180
  schema_type: "type[ModelDTOT]",
180
181
  **kwargs: Any,
@@ -183,8 +184,7 @@ class PsqlpyDriver(
183
184
  self,
184
185
  sql: str,
185
186
  parameters: "Optional[StatementParameterType]" = None,
186
- /,
187
- *filters: StatementFilter,
187
+ *filters: "StatementFilter",
188
188
  connection: "Optional[PsqlpyConnection]" = None,
189
189
  schema_type: "Optional[type[ModelDTOT]]" = None,
190
190
  **kwargs: Any,
@@ -217,8 +217,7 @@ class PsqlpyDriver(
217
217
  self,
218
218
  sql: str,
219
219
  parameters: "Optional[StatementParameterType]" = None,
220
- /,
221
- *filters: StatementFilter,
220
+ *filters: "StatementFilter",
222
221
  connection: "Optional[PsqlpyConnection]" = None,
223
222
  schema_type: None = None,
224
223
  **kwargs: Any,
@@ -228,8 +227,7 @@ class PsqlpyDriver(
228
227
  self,
229
228
  sql: str,
230
229
  parameters: "Optional[StatementParameterType]" = None,
231
- /,
232
- *filters: StatementFilter,
230
+ *filters: "StatementFilter",
233
231
  connection: "Optional[PsqlpyConnection]" = None,
234
232
  schema_type: "type[ModelDTOT]",
235
233
  **kwargs: Any,
@@ -238,8 +236,7 @@ class PsqlpyDriver(
238
236
  self,
239
237
  sql: str,
240
238
  parameters: "Optional[StatementParameterType]" = None,
241
- /,
242
- *filters: StatementFilter,
239
+ *filters: "StatementFilter",
243
240
  connection: "Optional[PsqlpyConnection]" = None,
244
241
  schema_type: "Optional[type[ModelDTOT]]" = None,
245
242
  **kwargs: Any,
@@ -275,8 +272,7 @@ class PsqlpyDriver(
275
272
  self,
276
273
  sql: str,
277
274
  parameters: "Optional[StatementParameterType]" = None,
278
- /,
279
- *filters: StatementFilter,
275
+ *filters: "StatementFilter",
280
276
  connection: "Optional[PsqlpyConnection]" = None,
281
277
  schema_type: None = None,
282
278
  **kwargs: Any,
@@ -286,8 +282,7 @@ class PsqlpyDriver(
286
282
  self,
287
283
  sql: str,
288
284
  parameters: "Optional[StatementParameterType]" = None,
289
- /,
290
- *filters: StatementFilter,
285
+ *filters: "StatementFilter",
291
286
  connection: "Optional[PsqlpyConnection]" = None,
292
287
  schema_type: "type[ModelDTOT]",
293
288
  **kwargs: Any,
@@ -296,8 +291,7 @@ class PsqlpyDriver(
296
291
  self,
297
292
  sql: str,
298
293
  parameters: "Optional[StatementParameterType]" = None,
299
- /,
300
- *filters: StatementFilter,
294
+ *filters: "StatementFilter",
301
295
  connection: "Optional[PsqlpyConnection]" = None,
302
296
  schema_type: "Optional[type[ModelDTOT]]" = None,
303
297
  **kwargs: Any,
@@ -332,8 +326,7 @@ class PsqlpyDriver(
332
326
  self,
333
327
  sql: str,
334
328
  parameters: "Optional[StatementParameterType]" = None,
335
- /,
336
- *filters: StatementFilter,
329
+ *filters: "StatementFilter",
337
330
  connection: "Optional[PsqlpyConnection]" = None,
338
331
  schema_type: None = None,
339
332
  **kwargs: Any,
@@ -343,8 +336,7 @@ class PsqlpyDriver(
343
336
  self,
344
337
  sql: str,
345
338
  parameters: "Optional[StatementParameterType]" = None,
346
- /,
347
- *filters: StatementFilter,
339
+ *filters: "StatementFilter",
348
340
  connection: "Optional[PsqlpyConnection]" = None,
349
341
  schema_type: "type[T]",
350
342
  **kwargs: Any,
@@ -353,8 +345,7 @@ class PsqlpyDriver(
353
345
  self,
354
346
  sql: str,
355
347
  parameters: "Optional[StatementParameterType]" = None,
356
- /,
357
- *filters: StatementFilter,
348
+ *filters: "StatementFilter",
358
349
  connection: "Optional[PsqlpyConnection]" = None,
359
350
  schema_type: "Optional[type[T]]" = None,
360
351
  **kwargs: Any,
@@ -388,8 +379,7 @@ class PsqlpyDriver(
388
379
  self,
389
380
  sql: str,
390
381
  parameters: "Optional[StatementParameterType]" = None,
391
- /,
392
- *filters: StatementFilter,
382
+ *filters: "StatementFilter",
393
383
  connection: "Optional[PsqlpyConnection]" = None,
394
384
  schema_type: None = None,
395
385
  **kwargs: Any,
@@ -399,8 +389,7 @@ class PsqlpyDriver(
399
389
  self,
400
390
  sql: str,
401
391
  parameters: "Optional[StatementParameterType]" = None,
402
- /,
403
- *filters: StatementFilter,
392
+ *filters: "StatementFilter",
404
393
  connection: "Optional[PsqlpyConnection]" = None,
405
394
  schema_type: "type[T]",
406
395
  **kwargs: Any,
@@ -409,8 +398,7 @@ class PsqlpyDriver(
409
398
  self,
410
399
  sql: str,
411
400
  parameters: "Optional[StatementParameterType]" = None,
412
- /,
413
- *filters: StatementFilter,
401
+ *filters: "StatementFilter",
414
402
  connection: "Optional[PsqlpyConnection]" = None,
415
403
  schema_type: "Optional[type[T]]" = None,
416
404
  **kwargs: Any,
@@ -446,8 +434,7 @@ class PsqlpyDriver(
446
434
  self,
447
435
  sql: str,
448
436
  parameters: "Optional[StatementParameterType]" = None,
449
- /,
450
- *filters: StatementFilter,
437
+ *filters: "StatementFilter",
451
438
  connection: "Optional[PsqlpyConnection]" = None,
452
439
  **kwargs: Any,
453
440
  ) -> int:
@@ -477,8 +464,7 @@ class PsqlpyDriver(
477
464
  self,
478
465
  sql: str,
479
466
  parameters: "Optional[StatementParameterType]" = None,
480
- /,
481
- *filters: StatementFilter,
467
+ *filters: "StatementFilter",
482
468
  connection: "Optional[PsqlpyConnection]" = None,
483
469
  schema_type: None = None,
484
470
  **kwargs: Any,
@@ -488,8 +474,7 @@ class PsqlpyDriver(
488
474
  self,
489
475
  sql: str,
490
476
  parameters: "Optional[StatementParameterType]" = None,
491
- /,
492
- *filters: StatementFilter,
477
+ *filters: "StatementFilter",
493
478
  connection: "Optional[PsqlpyConnection]" = None,
494
479
  schema_type: "type[ModelDTOT]",
495
480
  **kwargs: Any,
@@ -498,16 +483,15 @@ class PsqlpyDriver(
498
483
  self,
499
484
  sql: str,
500
485
  parameters: "Optional[StatementParameterType]" = None,
501
- /,
502
- *filters: StatementFilter,
486
+ *filters: "StatementFilter",
503
487
  connection: "Optional[PsqlpyConnection]" = None,
504
488
  schema_type: "Optional[type[ModelDTOT]]" = None,
505
489
  **kwargs: Any,
506
490
  ) -> "Union[ModelDTOT, dict[str, Any]]":
507
- """Insert, update, or delete data from the database and return result.
491
+ """Insert, update, or delete data with RETURNING clause.
508
492
 
509
493
  Args:
510
- sql: The SQL statement to execute.
494
+ sql: The SQL statement with RETURNING clause.
511
495
  parameters: The parameters for the statement (dict, tuple, list, or None).
512
496
  *filters: Statement filters to apply.
513
497
  connection: Optional connection override.
@@ -515,15 +499,15 @@ class PsqlpyDriver(
515
499
  **kwargs: Additional keyword arguments to merge with parameters if parameters is a dict.
516
500
 
517
501
  Returns:
518
- The first row of results.
502
+ The returned row data, as either a model instance or dictionary.
519
503
  """
520
504
  connection = self._connection(connection)
521
505
  sql, parameters = self._process_sql_params(sql, parameters, *filters, **kwargs)
522
506
  parameters = parameters or []
523
507
 
524
- result = await connection.execute(sql, parameters=parameters)
525
- dict_results = result.result()
508
+ result = await connection.fetch(sql, parameters=parameters)
526
509
 
510
+ dict_results = result.result()
527
511
  if not dict_results:
528
512
  self.check_not_found(None)
529
513
 
@@ -533,7 +517,6 @@ class PsqlpyDriver(
533
517
  self,
534
518
  sql: str,
535
519
  parameters: "Optional[StatementParameterType]" = None,
536
- /,
537
520
  connection: "Optional[PsqlpyConnection]" = None,
538
521
  **kwargs: Any,
539
522
  ) -> str: