sqlspec 0.16.2__py3-none-any.whl → 0.17.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.

Files changed (36) hide show
  1. sqlspec/__init__.py +11 -1
  2. sqlspec/_sql.py +152 -489
  3. sqlspec/adapters/aiosqlite/__init__.py +11 -1
  4. sqlspec/adapters/aiosqlite/config.py +137 -165
  5. sqlspec/adapters/aiosqlite/driver.py +21 -10
  6. sqlspec/adapters/aiosqlite/pool.py +492 -0
  7. sqlspec/adapters/duckdb/__init__.py +2 -0
  8. sqlspec/adapters/duckdb/config.py +11 -235
  9. sqlspec/adapters/duckdb/pool.py +243 -0
  10. sqlspec/adapters/sqlite/__init__.py +2 -0
  11. sqlspec/adapters/sqlite/config.py +4 -115
  12. sqlspec/adapters/sqlite/pool.py +140 -0
  13. sqlspec/base.py +147 -26
  14. sqlspec/builder/__init__.py +6 -0
  15. sqlspec/builder/_column.py +5 -1
  16. sqlspec/builder/_expression_wrappers.py +46 -0
  17. sqlspec/builder/_insert.py +1 -3
  18. sqlspec/builder/_parsing_utils.py +27 -0
  19. sqlspec/builder/_update.py +5 -5
  20. sqlspec/builder/mixins/_join_operations.py +115 -1
  21. sqlspec/builder/mixins/_order_limit_operations.py +16 -4
  22. sqlspec/builder/mixins/_select_operations.py +307 -3
  23. sqlspec/builder/mixins/_update_operations.py +4 -4
  24. sqlspec/builder/mixins/_where_clause.py +60 -11
  25. sqlspec/core/compiler.py +7 -5
  26. sqlspec/driver/_common.py +9 -1
  27. sqlspec/loader.py +27 -54
  28. sqlspec/protocols.py +10 -0
  29. sqlspec/storage/registry.py +2 -2
  30. sqlspec/typing.py +53 -99
  31. {sqlspec-0.16.2.dist-info → sqlspec-0.17.1.dist-info}/METADATA +1 -1
  32. {sqlspec-0.16.2.dist-info → sqlspec-0.17.1.dist-info}/RECORD +36 -32
  33. {sqlspec-0.16.2.dist-info → sqlspec-0.17.1.dist-info}/WHEEL +0 -0
  34. {sqlspec-0.16.2.dist-info → sqlspec-0.17.1.dist-info}/entry_points.txt +0 -0
  35. {sqlspec-0.16.2.dist-info → sqlspec-0.17.1.dist-info}/licenses/LICENSE +0 -0
  36. {sqlspec-0.16.2.dist-info → sqlspec-0.17.1.dist-info}/licenses/NOTICE +0 -0
sqlspec/protocols.py CHANGED
@@ -20,6 +20,7 @@ if TYPE_CHECKING:
20
20
  __all__ = (
21
21
  "BytesConvertibleProtocol",
22
22
  "DictProtocol",
23
+ "ExpressionWithAliasProtocol",
23
24
  "FilterAppenderProtocol",
24
25
  "FilterParameterProtocol",
25
26
  "HasExpressionProtocol",
@@ -172,6 +173,15 @@ class BytesConvertibleProtocol(Protocol):
172
173
  ...
173
174
 
174
175
 
176
+ @runtime_checkable
177
+ class ExpressionWithAliasProtocol(Protocol):
178
+ """Protocol for SQL expressions that support aliasing with as_() method."""
179
+
180
+ def as_(self, alias: str, **kwargs: Any) -> "exp.Alias":
181
+ """Create an aliased expression."""
182
+ ...
183
+
184
+
175
185
  @runtime_checkable
176
186
  class ObjectStoreItemProtocol(Protocol):
177
187
  """Protocol for object store items with path/key attributes."""
@@ -151,8 +151,8 @@ class StorageRegistry:
151
151
  return self._create_backend("fsspec", uri, **kwargs)
152
152
  except (ValueError, ImportError, NotImplementedError):
153
153
  pass
154
- msg = f"No storage backend available for scheme '{scheme}'. Install obstore or fsspec."
155
- raise MissingDependencyError(msg)
154
+ msg = "obstore"
155
+ raise MissingDependencyError(msg, "fsspec")
156
156
 
157
157
  def _determine_backend_class(self, uri: str) -> type[ObjectStoreProtocol]:
158
158
  """Determine the backend class for a URI based on availability."""
sqlspec/typing.py CHANGED
@@ -18,88 +18,50 @@ from sqlspec._typing import (
18
18
  PROMETHEUS_INSTALLED,
19
19
  PYARROW_INSTALLED,
20
20
  PYDANTIC_INSTALLED,
21
+ UNSET,
22
+ AiosqlAsyncProtocol,
23
+ AiosqlParamType,
24
+ AiosqlProtocol,
25
+ AiosqlSQLOperationType,
26
+ AiosqlSyncProtocol,
27
+ ArrowRecordBatch,
28
+ ArrowTable,
29
+ AttrsInstance,
30
+ AttrsInstanceStub,
31
+ BaseModel,
32
+ BaseModelStub,
33
+ Counter,
21
34
  DataclassProtocol,
35
+ DTOData,
22
36
  Empty,
23
37
  EmptyEnum,
24
38
  EmptyType,
39
+ FailFast,
40
+ Gauge,
41
+ Histogram,
42
+ Span,
43
+ Status,
44
+ StatusCode,
45
+ Struct,
46
+ StructStub,
47
+ Tracer,
48
+ TypeAdapter,
49
+ UnsetType,
50
+ aiosql,
51
+ attrs_asdict,
52
+ attrs_define,
53
+ attrs_field,
54
+ attrs_fields,
55
+ attrs_has,
56
+ cattrs_structure,
57
+ cattrs_unstructure,
58
+ convert,
59
+ trace,
25
60
  )
26
61
 
27
62
  if TYPE_CHECKING:
28
63
  from collections.abc import Sequence
29
64
 
30
- from sqlspec._typing import (
31
- UNSET,
32
- AiosqlAsyncProtocol,
33
- AiosqlParamType,
34
- AiosqlProtocol,
35
- AiosqlSQLOperationType,
36
- AiosqlSyncProtocol,
37
- ArrowRecordBatch,
38
- ArrowTable,
39
- AttrsInstance,
40
- AttrsInstanceStub,
41
- BaseModel,
42
- BaseModelStub,
43
- Counter,
44
- DTOData,
45
- FailFast,
46
- Gauge,
47
- Histogram,
48
- Span,
49
- Status,
50
- StatusCode,
51
- Struct,
52
- StructStub,
53
- Tracer,
54
- TypeAdapter,
55
- UnsetType,
56
- aiosql,
57
- attrs_asdict,
58
- attrs_define,
59
- attrs_field,
60
- attrs_fields,
61
- attrs_has,
62
- cattrs_structure,
63
- cattrs_unstructure,
64
- convert,
65
- trace,
66
- )
67
- else:
68
- from sqlspec._typing import (
69
- UNSET,
70
- AiosqlAsyncProtocol,
71
- AiosqlParamType,
72
- AiosqlProtocol,
73
- AiosqlSQLOperationType,
74
- AiosqlSyncProtocol,
75
- ArrowRecordBatch,
76
- ArrowTable,
77
- AttrsInstance,
78
- BaseModel,
79
- Counter,
80
- DTOData,
81
- FailFast,
82
- Gauge,
83
- Histogram,
84
- Span,
85
- Status,
86
- StatusCode,
87
- Struct,
88
- Tracer,
89
- TypeAdapter,
90
- UnsetType,
91
- aiosql,
92
- attrs_asdict,
93
- attrs_define,
94
- attrs_field,
95
- attrs_fields,
96
- attrs_has,
97
- cattrs_structure,
98
- cattrs_unstructure,
99
- convert,
100
- trace,
101
- )
102
-
103
65
 
104
66
  class DictLike(Protocol):
105
67
  """A protocol for objects that behave like a dictionary for reading."""
@@ -112,36 +74,28 @@ class DictLike(Protocol):
112
74
  PYDANTIC_USE_FAILFAST = False
113
75
 
114
76
 
115
- if TYPE_CHECKING:
116
- T = TypeVar("T")
117
- ConnectionT = TypeVar("ConnectionT")
118
- """Type variable for connection types.
77
+ T = TypeVar("T")
78
+ ConnectionT = TypeVar("ConnectionT")
79
+ """Type variable for connection types.
119
80
 
120
- :class:`~sqlspec.typing.ConnectionT`
121
- """
122
- PoolT = TypeVar("PoolT")
123
- """Type variable for pool types.
81
+ :class:`~sqlspec.typing.ConnectionT`
82
+ """
83
+ PoolT = TypeVar("PoolT")
84
+ """Type variable for pool types.
124
85
 
125
- :class:`~sqlspec.typing.PoolT`
126
- """
127
- PoolT_co = TypeVar("PoolT_co", covariant=True)
128
- """Type variable for covariant pool types.
86
+ :class:`~sqlspec.typing.PoolT`
87
+ """
88
+ PoolT_co = TypeVar("PoolT_co", covariant=True)
89
+ """Type variable for covariant pool types.
129
90
 
130
- :class:`~sqlspec.typing.PoolT_co`
131
- """
132
- ModelT = TypeVar("ModelT", bound="Union[DictLike, StructStub, BaseModelStub, DataclassProtocol, AttrsInstanceStub]")
133
- """Type variable for model types.
91
+ :class:`~sqlspec.typing.PoolT_co`
92
+ """
93
+ ModelT = TypeVar("ModelT", bound="Union[DictLike, StructStub, BaseModelStub, DataclassProtocol, AttrsInstanceStub]")
94
+ """Type variable for model types.
134
95
 
135
- :class:`DictLike` | :class:`msgspec.Struct` | :class:`pydantic.BaseModel` | :class:`DataclassProtocol` | :class:`AttrsInstance`
136
- """
137
- RowT = TypeVar("RowT", bound="dict[str, Any]")
138
- else:
139
- T = Any
140
- ConnectionT = Any
141
- PoolT = Any
142
- PoolT_co = Any
143
- ModelT = Any
144
- RowT = dict[str, Any]
96
+ :class:`DictLike` | :class:`msgspec.Struct` | :class:`pydantic.BaseModel` | :class:`DataclassProtocol` | :class:`AttrsInstance`
97
+ """
98
+ RowT = TypeVar("RowT", bound="dict[str, Any]")
145
99
 
146
100
 
147
101
  DictRow: TypeAlias = "dict[str, Any]"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlspec
3
- Version: 0.16.2
3
+ Version: 0.17.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/
@@ -1,26 +1,27 @@
1
- sqlspec/__init__.py,sha256=8_TR9bXd7bkA4qBGCzTHNawH7KXaJ4YlnCJzJwvgud8,2066
1
+ sqlspec/__init__.py,sha256=wy9ZqukBvr2WZkUmrljRHPGFjpUKWkEXxFWlTLuciJc,2123
2
2
  sqlspec/__main__.py,sha256=lXBKZMOXA1uY735Rnsb-GS7aXy0nt22tYmd2X9FcxrY,253
3
3
  sqlspec/__metadata__.py,sha256=IUw6MCTy1oeUJ1jAVYbuJLkOWbiAWorZ5W-E-SAD9N4,395
4
4
  sqlspec/_serialization.py,sha256=6U5-smk2h2yl0i6am2prtOLJTdu4NJQdcLlSfSUMaUQ,2590
5
- sqlspec/_sql.py,sha256=FIYp2u5NgIBc375Jkt2ZfA81Xs7ABcKY92A5rwWXuFE,60340
5
+ sqlspec/_sql.py,sha256=M1sirpRds7Bs3r72gRUTxO8Yp7qup-GPD3WLiEEAwVg,49135
6
6
  sqlspec/_typing.py,sha256=jv-7QHGLrJLfnP86bR-Xcmj3PDoddNZEKDz_vYRBiAU,22684
7
- sqlspec/base.py,sha256=lVLzFD-nzEU6QnwnU0kRWh3XWjbvXWX0XnnUViYBoQk,21767
7
+ sqlspec/base.py,sha256=OhFSpDaweCjZEabpTtl95pg91WzMko76d7sFOjyZSoo,25730
8
8
  sqlspec/cli.py,sha256=3ZxPwl4neNWyrAkM9J9ccC_gaFigDJbhuZfx15JVE7E,9903
9
9
  sqlspec/config.py,sha256=s7csxGK0SlTvB9jOvHlKKm4Y272RInQrUd6hGXwy31Q,14974
10
10
  sqlspec/exceptions.py,sha256=mCqNJ0JSPA-TUPpAfdctwwqJWbiNsWap5ATNNRdczwU,6159
11
- sqlspec/loader.py,sha256=sIK4I8L1Qe6hyoi6OHuaaAUUTdj4UrsRca16fuMs8HM,27259
12
- sqlspec/protocols.py,sha256=iwwy7zdIBV7TcoxIYpKuTvN5fGiULQac2f4a-saxyKU,12937
11
+ sqlspec/loader.py,sha256=KSL5OsjPsuZZJrgohdhdmimwDqVPj_BvHqHIpP2Fq_0,25818
12
+ sqlspec/protocols.py,sha256=GxKDn-Uw4fBVaKprYE3rCuhSz1CF2yV4awIrXbV2_j4,13236
13
13
  sqlspec/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
- sqlspec/typing.py,sha256=JEq2VsTaLdNZ1HAqj3n_HgQgdwlQQOCcZx3VBiPs0UA,7393
14
+ sqlspec/typing.py,sha256=yj8D8O-pkfUVZDfVHEgQaB95-5alwgQbp_sqNJOVhvQ,6301
15
15
  sqlspec/adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
16
  sqlspec/adapters/adbc/__init__.py,sha256=CqBaEahvHbQ5NxmBJuuCtZ8v5wuaPgbqSSe9WUhglWY,336
17
17
  sqlspec/adapters/adbc/_types.py,sha256=htTZ20qVo6Iod_ooUTLGd0xAL8AUYA4qeOexTaLQG3Q,351
18
18
  sqlspec/adapters/adbc/config.py,sha256=UdS_4q5tsXKPEilD2dLtk9H1BI02CTSvhIWEDChrPEs,13871
19
19
  sqlspec/adapters/adbc/driver.py,sha256=nYS6e6DXxZ8lHzUFvXvC8qtcGSBTvK8IF_NlBbw56pg,20217
20
- sqlspec/adapters/aiosqlite/__init__.py,sha256=q2YXU9WCL2RSYFvd0DiXz5PeCaezCRmrqmQVd86V2so,577
20
+ sqlspec/adapters/aiosqlite/__init__.py,sha256=rgooFeHm7IsnC9fOnRQwMvbJdgkTvhnNTYphayVz9q8,869
21
21
  sqlspec/adapters/aiosqlite/_types.py,sha256=M8VqaW6iCigfExhdJM2yPAN09Ue2yBoBL59-QXGBObo,355
22
- sqlspec/adapters/aiosqlite/config.py,sha256=F_trn-H2KcB1sH1fXdGKYNLcDFwu28WszTBoESK8D0c,9036
23
- sqlspec/adapters/aiosqlite/driver.py,sha256=pU6uyvZSDrUsgkLkBW1guq6wno5FOyqt9Tg8dg6L7HM,9644
22
+ sqlspec/adapters/aiosqlite/config.py,sha256=tSw4zN9fdq0T7cWFmxtw1FGVDsGWWnblxUNhZb3wVRM,8504
23
+ sqlspec/adapters/aiosqlite/driver.py,sha256=qy1O3QBCuuM-M-O0j4DRHtPShU5Ngbm24UpgfFrbnQE,10286
24
+ sqlspec/adapters/aiosqlite/pool.py,sha256=3DzbAD2bKw45fFiChnV-RzgHnTQJEoSX3SOP3A4SmE8,16905
24
25
  sqlspec/adapters/asyncmy/__init__.py,sha256=wBgak4MA3ySaGQHUxrnv3HdSVQKKRWf1_DmENL0LkWs,531
25
26
  sqlspec/adapters/asyncmy/_types.py,sha256=WbwREzJkLYmqd4c7A7cu04WaD5g7-n35ZETHZvbP1Z8,250
26
27
  sqlspec/adapters/asyncmy/config.py,sha256=8fGiiFjIaT_y6OcVj_7dTK9sSuLqucMRsGcRPoYigy8,6557
@@ -33,10 +34,11 @@ sqlspec/adapters/bigquery/__init__.py,sha256=1nzkWubO4ZObuK27QoeGfS05ed5v02NU4Ga
33
34
  sqlspec/adapters/bigquery/_types.py,sha256=gECmbiSmZmnR-xJpmznhnva4SbhhdcYQ09jBdqMAmOs,255
34
35
  sqlspec/adapters/bigquery/config.py,sha256=KYVvhcd4MyU2ak0t1mX3bd3EXlVMEciO7YPaDtZsPc8,11975
35
36
  sqlspec/adapters/bigquery/driver.py,sha256=3y8gwrYTt6ktPKE0ihGk5Dj7yvL52Gc8uT1b1ynaCuA,24016
36
- sqlspec/adapters/duckdb/__init__.py,sha256=iovQlYGfizYpIZpbc1YymK2xt6pZ4ApQj6I0Q0lHc3I,603
37
+ sqlspec/adapters/duckdb/__init__.py,sha256=c5GCYxhTFhvB8fUTt_d-dipaQfM8X5kv4GsU47SwJ6E,693
37
38
  sqlspec/adapters/duckdb/_types.py,sha256=4p5nuD1yNs0fmQ5sGxKFx2ru6jUCPrpsYgqfh-uZHM8,270
38
- sqlspec/adapters/duckdb/config.py,sha256=krVy5BsS7f2Uv4vmZrwpxlXzbe-MweS6JbHm809NJqE,18610
39
+ sqlspec/adapters/duckdb/config.py,sha256=ISQb8-I3MK08CGXKnsQy1f1qNmm8_m7kBwbi0AS-v4g,10496
39
40
  sqlspec/adapters/duckdb/driver.py,sha256=HDRPYh1k0JnnnaPpyv8oONn7UAYDCQyTK4fsgFDv6uk,15003
41
+ sqlspec/adapters/duckdb/pool.py,sha256=F_f_liV4nPLPJFYzHF3bWB13RHS5XYbrD8XUPE5fS08,8686
40
42
  sqlspec/adapters/oracledb/__init__.py,sha256=AUsZ8m9tDgNwxv9m4LtkIs9Ib6hOtBrGNm-Ee4HWNq0,843
41
43
  sqlspec/adapters/oracledb/_types.py,sha256=yPJTQE37HYVgvxI3USonWvFJ2VcfaNnXqfgKNVphmcQ,400
42
44
  sqlspec/adapters/oracledb/config.py,sha256=yZITXSWuHKwrjVcuaTLyR9RtVb3WtzmWlBQTjvyUtPo,11383
@@ -49,35 +51,37 @@ sqlspec/adapters/psycopg/__init__.py,sha256=swmTz8xlj6LvB-i78tBSE_T-sez2e6lFJW2c
49
51
  sqlspec/adapters/psycopg/_types.py,sha256=UJBKDWgARoSR6UxSy8zcIP7HSHTpXU5moJTsjDj0M4M,563
50
52
  sqlspec/adapters/psycopg/config.py,sha256=tyxP1WbLQlwvdWdykG_iluIaQg0O6GLUwMLtfaRQ3sE,16268
51
53
  sqlspec/adapters/psycopg/driver.py,sha256=qMRaoUI1RF0JLGEEIWzZJTyPd5jEaRFq6ZY0dkukrCQ,33434
52
- sqlspec/adapters/sqlite/__init__.py,sha256=wDN0StuJxCy0VX1fVYDngTFUP5Cx8d0-foeJeJaEVOw,484
54
+ sqlspec/adapters/sqlite/__init__.py,sha256=hGZX0D6vHJMSah60_hgWHoLmcqKGm1lYcz2r02wc0p0,574
53
55
  sqlspec/adapters/sqlite/_types.py,sha256=4Nqolhk8s4mwLw13BwUjuyhAbM9BsKwJCvcmjMWkhaY,246
54
- sqlspec/adapters/sqlite/config.py,sha256=jTomeuHahwMN9huOnQclAuJyiFL1m8hoexQxWCn0Ckg,9166
56
+ sqlspec/adapters/sqlite/config.py,sha256=-t7NkBRJHQQ7jeq5zD5KL8yb0RlJwP1vUkw7xc1F37k,5058
55
57
  sqlspec/adapters/sqlite/driver.py,sha256=uAhasoCNOV30gTvl1EUpofRcm8YiEW5RnVy07XyypzI,12103
56
- sqlspec/builder/__init__.py,sha256=E3UGimdSOUK_ZGxFEOsCduwWWwTxcqoLe3Rvh4KbGNY,1429
58
+ sqlspec/adapters/sqlite/pool.py,sha256=FxlnBksmiPDLyMB0C7j3wjfc45PU_RrukTwNAzN3DDQ,4977
59
+ sqlspec/builder/__init__.py,sha256=AY_D6TlSpYFJ7sU39S9xubq-eXZTpuNDlisoeK0LojU,1675
57
60
  sqlspec/builder/_base.py,sha256=yz-6e-x66vrNne6z5zq4Ae0C3p0mHEEIe1Y8er-A0pg,17812
58
- sqlspec/builder/_column.py,sha256=46baZj403BKfGjZcMc9LtQfMLeMQ7ROPyFL64V7dDM0,13124
61
+ sqlspec/builder/_column.py,sha256=GfTMFPzJIhwDVKefMbyom-HoEj-KSKB92-XoZfchnEo,13289
59
62
  sqlspec/builder/_ddl.py,sha256=A_fV4d92o2ZOhX150YMSsQDm3veQTQrwlxgLdFMBBfg,48184
60
63
  sqlspec/builder/_ddl_utils.py,sha256=1mFSNe9w5rZXA1Ud4CTuca7eibi0XayHrIPcnEgRB7s,4034
61
64
  sqlspec/builder/_delete.py,sha256=xWA5nQB3UB8kpEGXN2k5ynt4cGZ7blkNoURpI0bKoeg,2264
62
- sqlspec/builder/_insert.py,sha256=rARWh5olbur6oPP_3FoAuJp8irj5cRLW0mKdWEx2cqU,16896
65
+ sqlspec/builder/_expression_wrappers.py,sha256=HTl8qAFD4sZNXLD2akkJWGCPse2HWS237mTGE4Cx_7I,1244
66
+ sqlspec/builder/_insert.py,sha256=p0UegiB9WNkHWafTPgfyWsQlt76oRp7VvuMK3_zIjDw,16850
63
67
  sqlspec/builder/_merge.py,sha256=95PLQSKA3zjk0wTZG3m817fTZpsS95PrS2qF34iLAP8,2004
64
- sqlspec/builder/_parsing_utils.py,sha256=LyvFJ6nCU7b-h8QFyg4cYtcc0RKVzI_sHTeOVrU1_s8,7102
68
+ sqlspec/builder/_parsing_utils.py,sha256=RH8OFBFAetalEgHW5JLcEyyCdW_awVdy07MjboOkqL4,8383
65
69
  sqlspec/builder/_select.py,sha256=m5sfyuAssjlNimLLNBAeFooVIfM2FgKN1boPfdsOkaA,5785
66
- sqlspec/builder/_update.py,sha256=UFHM_uWVY5RnZQ6winiyjKNtBryKRAXJlXtCVQdifyw,6015
70
+ sqlspec/builder/_update.py,sha256=QieiguEq9T_UECv10f1xwQJp58gc3w246cvtCDpPwuw,6020
67
71
  sqlspec/builder/mixins/__init__.py,sha256=YXhAzKmQbQtne5j26SKWY8PUxwosl0RhlhLoahAdkj0,1885
68
72
  sqlspec/builder/mixins/_cte_and_set_ops.py,sha256=p5O9m_jvpaWxv1XP9Ys2DRI-qOTq30rr2EwYjAbIT8o,9088
69
73
  sqlspec/builder/mixins/_delete_operations.py,sha256=l0liajnoAfRgtWtyStuAIfxreEFRkNO4DtBwyGqAfic,1198
70
74
  sqlspec/builder/mixins/_insert_operations.py,sha256=3ZuVNAPgJG0fzOPaprwUPa0Un3NP7erHwtCg8AGZWD8,9500
71
- sqlspec/builder/mixins/_join_operations.py,sha256=hZKuKCGjPRX379g0DblADRXdU8mtEiEOEerxCRHuo28,7280
75
+ sqlspec/builder/mixins/_join_operations.py,sha256=8o_aApK5cmJbNCNfWa4bs5fR2zgQUjon5p-oyiW41Qw,11440
72
76
  sqlspec/builder/mixins/_merge_operations.py,sha256=e9QDv1s84-2F2ZAZrr7UJtKXhy3X0NDN7AZ--8mOTKw,24193
73
- sqlspec/builder/mixins/_order_limit_operations.py,sha256=ABPuFSqHRv7XaS9-3HNZO3Jn0QovhJrkYT158xxduns,4835
77
+ sqlspec/builder/mixins/_order_limit_operations.py,sha256=KrTXE0HmKCMn4AkNFyMhEZrmJ2Dl-o5kSiCjk2jNIKM,5499
74
78
  sqlspec/builder/mixins/_pivot_operations.py,sha256=j5vdzXuEqB1Jn3Ie_QjVwSH2_OEi65oZ64bQJHd3jXo,6108
75
- sqlspec/builder/mixins/_select_operations.py,sha256=ArFWrEGk6ZDiwfi5gUseGTBHCzsSKWfF2EjJlJWL2Ek,25021
76
- sqlspec/builder/mixins/_update_operations.py,sha256=lk9VRM0KGmYhofbWChemJxSZF6I0LhrRgqMXVmXZMeU,8650
77
- sqlspec/builder/mixins/_where_clause.py,sha256=jqz58H9X2ZDsiQH9DeBrrQJf-Am7-x1ApJH47U2DFfo,33789
79
+ sqlspec/builder/mixins/_select_operations.py,sha256=JznnA0bS6yXlylSLpLQ9xNdnWOo0ckqirOSDkceRmJw,35320
80
+ sqlspec/builder/mixins/_update_operations.py,sha256=rcmnmSSwHSujqe0gd-dKsWHLX9nPMS1we1Y3_h4S7G4,8654
81
+ sqlspec/builder/mixins/_where_clause.py,sha256=1iz7Y2x_ooG2bOCu2zX0v5_bkGFpAckVQKvnyrR1JNQ,36373
78
82
  sqlspec/core/__init__.py,sha256=rU_xGsXhqIOnBbyB2InhJknYePm5NQ2DSWdBigror4g,1775
79
83
  sqlspec/core/cache.py,sha256=cLL9bd5wn1oeMzn5E5Ym0sAemA8U4QP6B55x4L9-26I,27044
80
- sqlspec/core/compiler.py,sha256=pfBRrMFvrNuCwQgzKNljNTYH3imARlek3Ja5mJkHI88,14652
84
+ sqlspec/core/compiler.py,sha256=XEAeKZhoVxfyvoDFozCGNe2CuwLpXFPltOQ87IBO5Cg,14712
81
85
  sqlspec/core/filters.py,sha256=X0wRd0vNOFgeOK98ReeTyKt408GCnnmE9p45Bvur3kw,31351
82
86
  sqlspec/core/hashing.py,sha256=4KyAFWtFDMYreoBGGPQppEuMWO6_NrRYlw9Lm-qeJqo,10429
83
87
  sqlspec/core/parameters.py,sha256=yLnGt_tqqpb28xrgnq3oQ-1mcf45Pjf6uE3c0ag5JJ4,54265
@@ -86,7 +90,7 @@ sqlspec/core/splitter.py,sha256=cb2P1B0q5vvALHi3SEJ7VdbRHH2GWsftrmJi9PYMbeE,2808
86
90
  sqlspec/core/statement.py,sha256=HsbSu0qnfJzpL_s1kwfxtWnyuCfAq8WjYRc3YQqxkDw,25700
87
91
  sqlspec/driver/__init__.py,sha256=QVpDRQGd1GreIP199en6qDbq-cZJcEF5go68DINagUk,569
88
92
  sqlspec/driver/_async.py,sha256=29XYWjeIuIwElO3QFUtEqQZq1ss2Ulueh0UD-aX2x-E,19636
89
- sqlspec/driver/_common.py,sha256=bjJCBfM5YaU-98vEnEc5qFcjWvaUVEcQS6v3gGC0UKw,26313
93
+ sqlspec/driver/_common.py,sha256=Y2aOyIkHYGhQ8NadDmJ3gqtHAVS0Ivv99a0eliTZEDk,26728
90
94
  sqlspec/driver/_sync.py,sha256=pCKNHj46HcZYn9292FWyoWkNc6gj4ArUT8ttik4YyRQ,19408
91
95
  sqlspec/driver/mixins/__init__.py,sha256=gN4pQyJXxNy0xi91dcMJGA7DQ7TbjGjQI24SSpZc6Go,248
92
96
  sqlspec/driver/mixins/_result_tools.py,sha256=8z-W4py3BOtn3WB7ElpsVAEjGRozgHsfymTE_oXqcnw,7576
@@ -110,7 +114,7 @@ sqlspec/migrations/tracker.py,sha256=-gfHgvcYo1uBdr9FKrIxaU_0v734K5gpdLMuoaX29nQ
110
114
  sqlspec/migrations/utils.py,sha256=gWnCOdr8pwfkgG-FSUJgRz4q9TlCgOXY_B7n59NrgVA,3746
111
115
  sqlspec/storage/__init__.py,sha256=bLrUfW_E41HH-Pi5kqFTPVYZiSsxlG7OZO1xP23nDSI,691
112
116
  sqlspec/storage/capabilities.py,sha256=vyousxls9jISsykgoybpNHlGWN6Hq_pKcsZ5DmKGWvU,3045
113
- sqlspec/storage/registry.py,sha256=NV-NdAcMdGqU5bHbXbkMuU_HRYuEgii7B4ldXnVSIo4,9529
117
+ sqlspec/storage/registry.py,sha256=Bt7M7pyxaPP0_bK-VqOWzQL0V0dlNAE1Od4CSgjQbKQ,9467
114
118
  sqlspec/storage/backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
115
119
  sqlspec/storage/backends/base.py,sha256=KS2JRZILoH_R_xsfKtYkqQ5a1r5OOBDSE5KbibTmhGY,5730
116
120
  sqlspec/storage/backends/fsspec.py,sha256=YVr8X_q5F4Xrr9SyfUDve1dZ9E6KppuM8w6tvLwPKpc,16050
@@ -126,9 +130,9 @@ sqlspec/utils/singleton.py,sha256=SKnszJi1NPeERgX7IjVIGYAYx4XqR1E_rph3bU6olAU,10
126
130
  sqlspec/utils/sync_tools.py,sha256=WRuk1ZEhb_0CRrumAdnmi-i-dV6qVd3cgJyZw8RY9QQ,7390
127
131
  sqlspec/utils/text.py,sha256=n5K0gvXvyCc8jNteNKsBOymwf_JnQ65f3lu0YaYq4Ys,2898
128
132
  sqlspec/utils/type_guards.py,sha256=9C4SRebO4JiQrMzcJZFUA0KjSU48G26RmX6lbijyjBg,30476
129
- sqlspec-0.16.2.dist-info/METADATA,sha256=uxIDZpVGDc5LNmEdLfdULbelze5R5WSAxXwRYXZ42ZQ,16822
130
- sqlspec-0.16.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
131
- sqlspec-0.16.2.dist-info/entry_points.txt,sha256=G-ZqY1Nuuw3Iys7nXw23f6ILenk_Lt47VdK2mhJCWHg,53
132
- sqlspec-0.16.2.dist-info/licenses/LICENSE,sha256=MdujfZ6l5HuLz4mElxlu049itenOR3gnhN1_Nd3nVcM,1078
133
- sqlspec-0.16.2.dist-info/licenses/NOTICE,sha256=Lyir8ozXWov7CyYS4huVaOCNrtgL17P-bNV-5daLntQ,1634
134
- sqlspec-0.16.2.dist-info/RECORD,,
133
+ sqlspec-0.17.1.dist-info/METADATA,sha256=mjoS62X8qL5LIdUs0VRuK1kCZPw2Rsk8GVjyGByNQzg,16822
134
+ sqlspec-0.17.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
135
+ sqlspec-0.17.1.dist-info/entry_points.txt,sha256=G-ZqY1Nuuw3Iys7nXw23f6ILenk_Lt47VdK2mhJCWHg,53
136
+ sqlspec-0.17.1.dist-info/licenses/LICENSE,sha256=MdujfZ6l5HuLz4mElxlu049itenOR3gnhN1_Nd3nVcM,1078
137
+ sqlspec-0.17.1.dist-info/licenses/NOTICE,sha256=Lyir8ozXWov7CyYS4huVaOCNrtgL17P-bNV-5daLntQ,1634
138
+ sqlspec-0.17.1.dist-info/RECORD,,