sqlspec 0.27.0__py3-none-any.whl → 0.28.0__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 (64) hide show
  1. sqlspec/_typing.py +93 -0
  2. sqlspec/adapters/adbc/adk/store.py +21 -11
  3. sqlspec/adapters/adbc/data_dictionary.py +27 -5
  4. sqlspec/adapters/adbc/driver.py +83 -14
  5. sqlspec/adapters/aiosqlite/adk/store.py +27 -18
  6. sqlspec/adapters/asyncmy/adk/store.py +26 -16
  7. sqlspec/adapters/asyncpg/adk/store.py +26 -16
  8. sqlspec/adapters/asyncpg/data_dictionary.py +24 -17
  9. sqlspec/adapters/bigquery/adk/store.py +30 -21
  10. sqlspec/adapters/bigquery/config.py +11 -0
  11. sqlspec/adapters/bigquery/driver.py +138 -1
  12. sqlspec/adapters/duckdb/adk/store.py +21 -11
  13. sqlspec/adapters/duckdb/driver.py +87 -1
  14. sqlspec/adapters/oracledb/adk/store.py +89 -206
  15. sqlspec/adapters/oracledb/driver.py +183 -2
  16. sqlspec/adapters/oracledb/litestar/store.py +22 -24
  17. sqlspec/adapters/psqlpy/adk/store.py +28 -27
  18. sqlspec/adapters/psqlpy/data_dictionary.py +24 -17
  19. sqlspec/adapters/psqlpy/driver.py +7 -10
  20. sqlspec/adapters/psycopg/adk/store.py +51 -33
  21. sqlspec/adapters/psycopg/data_dictionary.py +48 -34
  22. sqlspec/adapters/sqlite/adk/store.py +29 -19
  23. sqlspec/config.py +100 -2
  24. sqlspec/core/filters.py +18 -10
  25. sqlspec/core/result.py +133 -2
  26. sqlspec/driver/_async.py +89 -0
  27. sqlspec/driver/_common.py +64 -29
  28. sqlspec/driver/_sync.py +95 -0
  29. sqlspec/extensions/adk/migrations/0001_create_adk_tables.py +2 -2
  30. sqlspec/extensions/adk/service.py +3 -3
  31. sqlspec/extensions/adk/store.py +8 -8
  32. sqlspec/extensions/aiosql/adapter.py +3 -15
  33. sqlspec/extensions/fastapi/__init__.py +21 -0
  34. sqlspec/extensions/fastapi/extension.py +331 -0
  35. sqlspec/extensions/fastapi/providers.py +543 -0
  36. sqlspec/extensions/flask/__init__.py +36 -0
  37. sqlspec/extensions/flask/_state.py +71 -0
  38. sqlspec/extensions/flask/_utils.py +40 -0
  39. sqlspec/extensions/flask/extension.py +389 -0
  40. sqlspec/extensions/litestar/config.py +3 -6
  41. sqlspec/extensions/litestar/plugin.py +26 -2
  42. sqlspec/extensions/starlette/__init__.py +10 -0
  43. sqlspec/extensions/starlette/_state.py +25 -0
  44. sqlspec/extensions/starlette/_utils.py +52 -0
  45. sqlspec/extensions/starlette/extension.py +254 -0
  46. sqlspec/extensions/starlette/middleware.py +154 -0
  47. sqlspec/protocols.py +40 -0
  48. sqlspec/storage/_utils.py +1 -14
  49. sqlspec/storage/backends/fsspec.py +3 -5
  50. sqlspec/storage/backends/local.py +1 -1
  51. sqlspec/storage/backends/obstore.py +10 -18
  52. sqlspec/typing.py +16 -0
  53. sqlspec/utils/__init__.py +25 -4
  54. sqlspec/utils/arrow_helpers.py +81 -0
  55. sqlspec/utils/module_loader.py +203 -3
  56. sqlspec/utils/portal.py +311 -0
  57. sqlspec/utils/serializers.py +110 -1
  58. sqlspec/utils/sync_tools.py +15 -5
  59. sqlspec/utils/type_guards.py +25 -0
  60. {sqlspec-0.27.0.dist-info → sqlspec-0.28.0.dist-info}/METADATA +2 -2
  61. {sqlspec-0.27.0.dist-info → sqlspec-0.28.0.dist-info}/RECORD +64 -50
  62. {sqlspec-0.27.0.dist-info → sqlspec-0.28.0.dist-info}/WHEEL +0 -0
  63. {sqlspec-0.27.0.dist-info → sqlspec-0.28.0.dist-info}/entry_points.txt +0 -0
  64. {sqlspec-0.27.0.dist-info → sqlspec-0.28.0.dist-info}/licenses/LICENSE +0 -0
@@ -2,11 +2,15 @@
2
2
 
3
3
  Re-exports common JSON encoding and decoding functions from the core
4
4
  serialization module for convenient access.
5
+
6
+ Provides NumPy array serialization hooks for framework integrations
7
+ that support custom type encoders and decoders (e.g., Litestar).
5
8
  """
6
9
 
7
10
  from typing import Any, Literal, overload
8
11
 
9
12
  from sqlspec._serialization import decode_json, encode_json
13
+ from sqlspec.typing import NUMPY_INSTALLED
10
14
 
11
15
 
12
16
  @overload
@@ -55,4 +59,109 @@ def from_json(data: str | bytes, *, decode_bytes: bool = True) -> Any:
55
59
  return decode_json(data)
56
60
 
57
61
 
58
- __all__ = ("from_json", "to_json")
62
+ def numpy_array_enc_hook(value: Any) -> Any:
63
+ """Encode NumPy array to JSON-compatible list.
64
+
65
+ Converts NumPy ndarrays to Python lists for JSON serialization.
66
+ Gracefully handles cases where NumPy is not installed by returning
67
+ the original value unchanged.
68
+
69
+ Args:
70
+ value: Value to encode (checked for ndarray type).
71
+
72
+ Returns:
73
+ List representation if value is ndarray, original value otherwise.
74
+
75
+ Example:
76
+ >>> import numpy as np
77
+ >>> arr = np.array([1.0, 2.0, 3.0])
78
+ >>> numpy_array_enc_hook(arr)
79
+ [1.0, 2.0, 3.0]
80
+
81
+ >>> # Multi-dimensional arrays work automatically
82
+ >>> arr_2d = np.array([[1, 2], [3, 4]])
83
+ >>> numpy_array_enc_hook(arr_2d)
84
+ [[1, 2], [3, 4]]
85
+ """
86
+ if not NUMPY_INSTALLED:
87
+ return value
88
+
89
+ import numpy as np
90
+
91
+ if isinstance(value, np.ndarray):
92
+ return value.tolist()
93
+ return value
94
+
95
+
96
+ def numpy_array_dec_hook(value: Any) -> "Any":
97
+ """Decode list to NumPy array.
98
+
99
+ Converts Python lists to NumPy arrays when appropriate.
100
+ Works best with typed schemas (Pydantic, msgspec) that expect ndarray.
101
+
102
+ Args:
103
+ value: List to potentially convert to ndarray.
104
+
105
+ Returns:
106
+ NumPy array if conversion successful, original value otherwise.
107
+
108
+ Note:
109
+ Dtype is inferred by NumPy and may differ from original array.
110
+ For explicit dtype control, construct arrays manually in application code.
111
+
112
+ Example:
113
+ >>> numpy_array_dec_hook([1.0, 2.0, 3.0])
114
+ array([1., 2., 3.])
115
+
116
+ >>> # Returns original value if NumPy not installed
117
+ >>> # (when NUMPY_INSTALLED is False)
118
+ >>> numpy_array_dec_hook([1, 2, 3])
119
+ [1, 2, 3]
120
+ """
121
+ if not NUMPY_INSTALLED:
122
+ return value
123
+
124
+ import numpy as np
125
+
126
+ if isinstance(value, list):
127
+ try:
128
+ return np.array(value)
129
+ except Exception:
130
+ return value
131
+ return value
132
+
133
+
134
+ def numpy_array_predicate(value: Any) -> bool:
135
+ """Check if value is NumPy array instance.
136
+
137
+ Type checker for decoder registration in framework plugins.
138
+ Returns False when NumPy is not installed.
139
+
140
+ Args:
141
+ value: Value to type-check.
142
+
143
+ Returns:
144
+ True if value is ndarray, False otherwise.
145
+
146
+ Example:
147
+ >>> import numpy as np
148
+ >>> numpy_array_predicate(np.array([1, 2, 3]))
149
+ True
150
+
151
+ >>> numpy_array_predicate([1, 2, 3])
152
+ False
153
+
154
+ >>> # Returns False when NumPy not installed
155
+ >>> # (when NUMPY_INSTALLED is False)
156
+ >>> numpy_array_predicate([1, 2, 3])
157
+ False
158
+ """
159
+ if not NUMPY_INSTALLED:
160
+ return False
161
+
162
+ import numpy as np
163
+
164
+ return isinstance(value, np.ndarray)
165
+
166
+
167
+ __all__ = ("from_json", "numpy_array_dec_hook", "numpy_array_enc_hook", "numpy_array_predicate", "to_json")
@@ -132,14 +132,18 @@ def run_(async_function: "Callable[ParamSpecT, Coroutine[Any, Any, ReturnT]]") -
132
132
 
133
133
 
134
134
  def await_(
135
- async_function: "Callable[ParamSpecT, Coroutine[Any, Any, ReturnT]]", raise_sync_error: bool = True
135
+ async_function: "Callable[ParamSpecT, Coroutine[Any, Any, ReturnT]]", raise_sync_error: bool = False
136
136
  ) -> "Callable[ParamSpecT, ReturnT]":
137
137
  """Convert an async function to a blocking one, running in the main async loop.
138
138
 
139
+ When no event loop exists, automatically creates and uses a global portal for
140
+ async-to-sync bridging via background thread. Set raise_sync_error=True to
141
+ disable this behavior and raise errors instead.
142
+
139
143
  Args:
140
144
  async_function: The async function to convert.
141
- raise_sync_error: If False, runs in a new event loop if no loop is present.
142
- If True (default), raises RuntimeError if no loop is running.
145
+ raise_sync_error: If True, raises RuntimeError when no loop exists.
146
+ If False (default), uses portal pattern for automatic bridging.
143
147
 
144
148
  Returns:
145
149
  A blocking function that runs the async function.
@@ -154,7 +158,10 @@ def await_(
154
158
  if raise_sync_error:
155
159
  msg = "Cannot run async function"
156
160
  raise RuntimeError(msg) from None
157
- return asyncio.run(partial_f())
161
+ from sqlspec.utils.portal import get_global_portal
162
+
163
+ portal = get_global_portal()
164
+ return portal.call(async_function, *args, **kwargs)
158
165
  else:
159
166
  if loop.is_running():
160
167
  try:
@@ -170,7 +177,10 @@ def await_(
170
177
  if raise_sync_error:
171
178
  msg = "Cannot run async function"
172
179
  raise RuntimeError(msg)
173
- return asyncio.run(partial_f())
180
+ from sqlspec.utils.portal import get_global_portal
181
+
182
+ portal = get_global_portal()
183
+ return portal.call(async_function, *args, **kwargs)
174
184
 
175
185
  return wrapper
176
186
 
@@ -48,6 +48,7 @@ if TYPE_CHECKING:
48
48
  ObjectStoreItemProtocol,
49
49
  ParameterValueProtocol,
50
50
  SQLBuilderProtocol,
51
+ SupportsArrowResults,
51
52
  WithMethodProtocol,
52
53
  )
53
54
  from sqlspec.typing import SupportedSchemaModel
@@ -124,6 +125,7 @@ __all__ = (
124
125
  "is_typed_parameter",
125
126
  "schema_dump",
126
127
  "supports_arrow_native",
128
+ "supports_arrow_results",
127
129
  "supports_limit",
128
130
  "supports_offset",
129
131
  "supports_order_by",
@@ -1333,3 +1335,26 @@ def supports_arrow_native(backend: Any) -> bool:
1333
1335
  return callable(getattr(store, "read_arrow", None))
1334
1336
  except AttributeError:
1335
1337
  return False
1338
+
1339
+
1340
+ def supports_arrow_results(obj: Any) -> "TypeGuard[SupportsArrowResults]":
1341
+ """Check if object supports Arrow result format.
1342
+
1343
+ Use this type guard to check if a driver or adapter supports returning
1344
+ query results in Apache Arrow format via select_to_arrow() method.
1345
+
1346
+ Args:
1347
+ obj: Object to check for Arrow results support.
1348
+
1349
+ Returns:
1350
+ True if object implements SupportsArrowResults protocol.
1351
+
1352
+ Examples:
1353
+ >>> from sqlspec.adapters.duckdb import DuckDBDriver
1354
+ >>> driver = DuckDBDriver(...)
1355
+ >>> supports_arrow_results(driver)
1356
+ True
1357
+ """
1358
+ from sqlspec.protocols import SupportsArrowResults
1359
+
1360
+ return isinstance(obj, SupportsArrowResults)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlspec
3
- Version: 0.27.0
3
+ Version: 0.28.0
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/
@@ -103,7 +103,7 @@ SQLSpec is an experimental Python library designed to streamline and modernize y
103
103
  - **Emphasis on RAW SQL and Minimal Abstractions**: SQLSpec is a library for working with SQL in Python. Its goals are to offer minimal abstractions between the user and the database. It does not aim to be an ORM library.
104
104
  - **Type-Safe Queries**: Quickly map SQL queries to typed objects using libraries such as Pydantic, Msgspec, Attrs, etc.
105
105
  - **Extensible Design**: Easily add support for new database dialects or extend existing functionality to meet your specific needs. Easily add support for async and sync database drivers.
106
- - **Minimal Dependencies**: SQLSpec is designed to be lightweight and can run on its own or with other libraries such as `litestar`, `fastapi`, `flask` and more. (Contributions welcome!)
106
+ - **Framework Extensions**: First-class integrations for Litestar, Starlette, and FastAPI with automatic transaction handling and lifecycle management
107
107
  - **Support for Async and Sync Database Drivers**: SQLSpec supports both async and sync database drivers, allowing you to choose the style that best fits your application.
108
108
 
109
109
  ### Experimental Features (API will change rapidly)
@@ -2,24 +2,24 @@ sqlspec/__init__.py,sha256=VoSce3TTvQLkWC2EHiRpgPDfWNfx5FI3YvYuz21Dw74,2110
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=Zy_F7Mirf-OcywJUCFXA9gcM-3ZE1ixXIqN991gunaM,9622
5
- sqlspec/_typing.py,sha256=yP33K-n_bTZweAC_701SZ3XxV7O31JzFdRAya065iPQ,22811
5
+ sqlspec/_typing.py,sha256=_9PVbjdujT3GHwc23NBVfcV7E9694zaKzNyjhJOwpeg,25087
6
6
  sqlspec/base.py,sha256=Igt0Veh3T999TgFSxMJN5ivLdoG_uvMK-u7y5UmPtqM,25949
7
7
  sqlspec/cli.py,sha256=jVfUxfEmpKW7f3S03zyx3PmGq3pQvt6dUjZdqcgJnTw,25296
8
- sqlspec/config.py,sha256=n_VnSxIsHUpTa6JHSDlow0ZVHVtshZgCWjM6s1osxEE,29168
8
+ sqlspec/config.py,sha256=nSwXugtDdlQEaRCMrAfOGbuf17ThepyB3hi1cqY-lSY,32468
9
9
  sqlspec/exceptions.py,sha256=BXCGbQEG_EGnH8L4DqsgRig5UrHRx6KMJbyB8sAo-6A,7929
10
10
  sqlspec/loader.py,sha256=3MJaD-XZVQzuNmkt2P_L8917obECVsuN1bfR0HkK1cc,22828
11
- sqlspec/protocols.py,sha256=CB4yKOgPoSWQqjTEGxX-_pmDZLAISiJdTnUZIPVOqsg,13860
11
+ sqlspec/protocols.py,sha256=dO6zEQ2rp4o7irlN7zQFaq5ifwqbgV43e8ya24crFfk,15299
12
12
  sqlspec/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
- sqlspec/typing.py,sha256=G0cbMrZZc6tbYn_ME6i9NdRGYpeKtxq24o1j-R8Awu4,4142
13
+ sqlspec/typing.py,sha256=hmniMRgnG4TpsiILFrohyPS5f14Z7ao1Pd4URIz3wJ8,4542
14
14
  sqlspec/adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
15
  sqlspec/adapters/adbc/__init__.py,sha256=CqBaEahvHbQ5NxmBJuuCtZ8v5wuaPgbqSSe9WUhglWY,336
16
16
  sqlspec/adapters/adbc/_types.py,sha256=xlYCNNNexFVd42Kk9h0QLnmqGdz2crht-HVagxS5-a8,340
17
17
  sqlspec/adapters/adbc/config.py,sha256=kJ3AAOfMHO42PsXf80Q83Jxf0oGTXqXJJh_Nm3gtYiY,16251
18
- sqlspec/adapters/adbc/data_dictionary.py,sha256=aPUFJmRdXc9IBFDBoTo2Elc2RUgf8tIlrG8fV7U4wXE,13342
19
- sqlspec/adapters/adbc/driver.py,sha256=HcW07h5LGGBvaLIkJBApqNxHejp_BjTFMBktL7FYiCs,32180
18
+ sqlspec/adapters/adbc/data_dictionary.py,sha256=uc-VWEnVsa5aJIiS61pIrD5C-iXgg7hLJ-bTK8aEQxg,14415
19
+ sqlspec/adapters/adbc/driver.py,sha256=cepeD6vjyIAfLjiXSE9Rbe-mIzEop7aaUMGNGapqwIw,35105
20
20
  sqlspec/adapters/adbc/type_converter.py,sha256=gyOjs9tWa2BR80ihvjmzs0ibv1evtzZUQJ1n5sMJ1EY,5917
21
21
  sqlspec/adapters/adbc/adk/__init__.py,sha256=WmvqapJ9vVBSixshpepooO-y3hAVd9QqRy_cAImHCHs,148
22
- sqlspec/adapters/adbc/adk/store.py,sha256=XdBvWakOIJT17PpFBDRghhK9oCtrZ5mKmM__ejdrbM8,31039
22
+ sqlspec/adapters/adbc/adk/store.py,sha256=wUx86nWpUYHUVyOT4-9jc3Mi9aGzhSc3ShjVXS3wXNw,31499
23
23
  sqlspec/adapters/adbc/litestar/__init__.py,sha256=6N4cgi35DMciFXYzpEAUVh9nUa20y4_KNAipGao-YdU,131
24
24
  sqlspec/adapters/adbc/litestar/store.py,sha256=29bKHD78dfU7-jDRVnF56tGjBmcZk3QOJrmSFAaX7js,18216
25
25
  sqlspec/adapters/aiosqlite/__init__.py,sha256=rgooFeHm7IsnC9fOnRQwMvbJdgkTvhnNTYphayVz9q8,869
@@ -29,7 +29,7 @@ sqlspec/adapters/aiosqlite/data_dictionary.py,sha256=bkCyUk5hQkoNbQC6SAbEIaxTPeP
29
29
  sqlspec/adapters/aiosqlite/driver.py,sha256=5miO6kv505DX0YFxUE3QrJLL9EppE8-FgBtR_dfgBos,13545
30
30
  sqlspec/adapters/aiosqlite/pool.py,sha256=7HpvFeKMVRZtSqjKGJ8tTTZQ0zu9GJjt6JPyNmQRCsQ,17102
31
31
  sqlspec/adapters/aiosqlite/adk/__init__.py,sha256=VIrNzrWCCFImdP4ShzEv0adz_WuKCtEUcYjI0pkeyUM,168
32
- sqlspec/adapters/aiosqlite/adk/store.py,sha256=cZpa4lyjCuOCQbUlOQ9akBS0x8DTiQB8Ia7AknoQvSI,18745
32
+ sqlspec/adapters/aiosqlite/adk/store.py,sha256=iHd1YtbTd0k2eyxlZcElYkR8hkt8OZFgopJymhysIuo,19215
33
33
  sqlspec/adapters/aiosqlite/litestar/__init__.py,sha256=qYKYa2ZnRMX6HhvuyA5q8fLM39YYNPSpHt7L3VnpAZI,151
34
34
  sqlspec/adapters/aiosqlite/litestar/store.py,sha256=KeI1qdi7O9jIIpkdd-KOS32nHTWzqHG_STvIIPUl0Lw,9528
35
35
  sqlspec/adapters/asyncmy/__init__.py,sha256=4sL0sKKO8yv9FRJV_8TKskDrb9TBTsln-zzZ4Nyz7Vc,604
@@ -38,38 +38,38 @@ sqlspec/adapters/asyncmy/config.py,sha256=gm6F_NQxDXj770hKF_vwZrRazMcFcRMsq73hDY
38
38
  sqlspec/adapters/asyncmy/data_dictionary.py,sha256=14zpMltG7MIxo9UMvzc5ih_McLT3xcvQ79K-JanfSI4,5728
39
39
  sqlspec/adapters/asyncmy/driver.py,sha256=Re4RCEU35SFnuTRumM-KZgg601BPlB_wMQQfQV4M7bU,22304
40
40
  sqlspec/adapters/asyncmy/adk/__init__.py,sha256=zSqQvbgVlIKbzz6PmT7SpIOuF0Uz9XlTMFPscjyI7xU,154
41
- sqlspec/adapters/asyncmy/adk/store.py,sha256=-1klat9NTTyZ7svjkEEJtcMw0ZEpE4eOvibB3TkClog,19412
41
+ sqlspec/adapters/asyncmy/adk/store.py,sha256=xXmvr9xaOhYfz0ZX5IlsAYmzEcwvQMTaSYGMd4k9kiI,19885
42
42
  sqlspec/adapters/asyncmy/litestar/__init__.py,sha256=VNBusWFPvw4BBLHi7gSSY3S94JxjZ7oJoAavTVvcZ28,143
43
43
  sqlspec/adapters/asyncmy/litestar/store.py,sha256=PSRRARvHJFFhPON-cAk6zMB6kiU3MjkefAlPW_8g86E,10877
44
44
  sqlspec/adapters/asyncpg/__init__.py,sha256=obt5J2smlKbjkb43nyLnzNnlraAUIwzsi7PiAyowkNc,599
45
45
  sqlspec/adapters/asyncpg/_type_handlers.py,sha256=fLW_h1Xbtwkz4ejvWGK2f2eN6sMf62W_MZL3d24sCYo,2632
46
46
  sqlspec/adapters/asyncpg/_types.py,sha256=p7WytoO7p7Wd5LHiXMwwz4zkJmPG2kdLAsfQmIRceGw,479
47
47
  sqlspec/adapters/asyncpg/config.py,sha256=eN9aS6Zz3z-I9J-JX-5qDhXQJ-onvZ3d_CareBj5a-4,11235
48
- sqlspec/adapters/asyncpg/data_dictionary.py,sha256=U1Nz7asXgsj70rE5vSct60sWKvd07bisWzDhSgJjvnk,6378
48
+ sqlspec/adapters/asyncpg/data_dictionary.py,sha256=_zP1oU6leCkERgoyG3XUtrDYMODHzk8TFPccuIT0ByQ,6777
49
49
  sqlspec/adapters/asyncpg/driver.py,sha256=P69Te_CAVCgIwCjAeMv7t586jWSTO3omR13iuCBi7hg,16363
50
50
  sqlspec/adapters/asyncpg/adk/__init__.py,sha256=eLH2mA_g4ZPgsRnC4H2GX5j-q2jgAwncCKVYa58mXhc,128
51
- sqlspec/adapters/asyncpg/adk/store.py,sha256=-IeZpQe1Ma16DLOOC2xlLN3zU7YS6vsEIJLmCXay_-E,17625
51
+ sqlspec/adapters/asyncpg/adk/store.py,sha256=GODjv_-VLXa8a3i1pQZF0VvmcR2y9xbgISe-WZKwCAw,18112
52
52
  sqlspec/adapters/asyncpg/litestar/__init__.py,sha256=0hAOSZ3sYOtdcpBQWoGh4lKhFQ0XHfwNv0UVa4TjbRA,143
53
53
  sqlspec/adapters/asyncpg/litestar/store.py,sha256=B3U4iwBMQilQxoQUScywj4nO8niTTq5d5cnvdUq3qwc,8779
54
54
  sqlspec/adapters/bigquery/__init__.py,sha256=1nzkWubO4ZObuK27QoeGfS05ed5v02NU4GaXrvqjlw0,504
55
55
  sqlspec/adapters/bigquery/_types.py,sha256=z3sc2sknvbSsOemy999WRy_iFxqTM29TjlEVNQtxotc,244
56
- sqlspec/adapters/bigquery/config.py,sha256=kLiYi1kmwROaBsZg3KdQE8o7KWUXUMwX_-Udrz_hfpM,10185
56
+ sqlspec/adapters/bigquery/config.py,sha256=5wskEW-FEJvYyMPQhAFZI06ouzk-mgGamCSYd0OIuLQ,10882
57
57
  sqlspec/adapters/bigquery/data_dictionary.py,sha256=e5gAO_rGxO7slb3u1ZJghoI__8nzQjKCiv0GN1sVC94,5269
58
- sqlspec/adapters/bigquery/driver.py,sha256=0lncnELCTehIV36z0p-WJWUp9ZVOQXlpxE8GqR0cZec,27531
58
+ sqlspec/adapters/bigquery/driver.py,sha256=llcwYr4zOIN3ylz9FfK9nB3ac7obvS5Ix3-MywNYUeQ,33173
59
59
  sqlspec/adapters/bigquery/type_converter.py,sha256=Ag0W9au_k6qcKFKQVrenUK3fIwdXjdIilRsX8CDtAKE,4095
60
60
  sqlspec/adapters/bigquery/adk/__init__.py,sha256=4gdL85tvrCZlg5NTxEWKR3hj6B8MNkUd7aT2dNMvWo8,180
61
- sqlspec/adapters/bigquery/adk/store.py,sha256=NxWFo66T5XRjf2MwAkjnIhTmMjVQLPS5mjLLNZqvXyc,23980
61
+ sqlspec/adapters/bigquery/adk/store.py,sha256=5T-nPPBYCLZBO7dw3QTVdvtmZq6QKBDhshYzI1YtQlQ,24516
62
62
  sqlspec/adapters/bigquery/litestar/__init__.py,sha256=LBOWnWxEqc3qwRhuC2hTH2sKrm0hLrOc6U4qAhFOCyM,135
63
63
  sqlspec/adapters/bigquery/litestar/store.py,sha256=6acXs8Me_UvHt2CzO9NqDHz3ikrHez1cr9LlJA7otV4,11374
64
64
  sqlspec/adapters/duckdb/__init__.py,sha256=c5GCYxhTFhvB8fUTt_d-dipaQfM8X5kv4GsU47SwJ6E,693
65
65
  sqlspec/adapters/duckdb/_types.py,sha256=TRR-MEQwq58p_Vfn0Pq-nsVfx4bfoUrCEEwPv46Vjsk,259
66
66
  sqlspec/adapters/duckdb/config.py,sha256=wbkGPCfTMGLo-mzJllQdql6Nwe_QElTjqa1FtjYkHLo,12668
67
67
  sqlspec/adapters/duckdb/data_dictionary.py,sha256=IZl-R0s37gnjevTJJcEjfMzYBiL0953xGBP2ooFnsUY,5618
68
- sqlspec/adapters/duckdb/driver.py,sha256=imN_dXAoy6HsBr1IG5rv4TblXdzFXFTaBb38NaDooRo,17063
68
+ sqlspec/adapters/duckdb/driver.py,sha256=EJL2OWhTZK7jZy96DkmAMSZDGnzvZiG-T3nEx3jWsj4,20461
69
69
  sqlspec/adapters/duckdb/pool.py,sha256=73CbyVFnXXgDt6dR1AadGhp0c4x7WjAKdSNDsBz5EXQ,8394
70
70
  sqlspec/adapters/duckdb/type_converter.py,sha256=XdzRQgn5Jy-sDxS3Sx-yrjNW6Xrnn_NAWN60MnadGdk,4239
71
71
  sqlspec/adapters/duckdb/adk/__init__.py,sha256=9hSx3Wga-uB-zUiB6UYm5xzOrU_xms7AZ1i6zO6bJ_w,462
72
- sqlspec/adapters/duckdb/adk/store.py,sha256=0U464ENAonCG6luc4_odb7XOnWdWhaQSHVEVz8uHxIc,20438
72
+ sqlspec/adapters/duckdb/adk/store.py,sha256=W2eb9cJfQI2ZAVkGSd4MFcKW-m209bacwhz373ErQ40,20898
73
73
  sqlspec/adapters/duckdb/litestar/__init__.py,sha256=iSa3mPZom6bl6Z93FOZAgduLWpZocElSc1dvwbm5uJY,139
74
74
  sqlspec/adapters/duckdb/litestar/store.py,sha256=QisjqUCHkKnHTiW1d_fwfEwKKPRFrxq9EK9tbkH37nQ,11346
75
75
  sqlspec/adapters/oracledb/__init__.py,sha256=AUsZ8m9tDgNwxv9m4LtkIs9Ib6hOtBrGNm-Ee4HWNq0,843
@@ -77,32 +77,32 @@ sqlspec/adapters/oracledb/_numpy_handlers.py,sha256=UHW5qWPZFYZtE_IjzPojz_79TmmP
77
77
  sqlspec/adapters/oracledb/_types.py,sha256=sKXDrq-igpBgqR1HDGF3_IXgMYWWGjHxxvMNOTQUxPA,1112
78
78
  sqlspec/adapters/oracledb/config.py,sha256=Re9nSFovVKzVIEZqcuG85ULJdTx5or7jwMdkYSDLS-Y,16186
79
79
  sqlspec/adapters/oracledb/data_dictionary.py,sha256=EhzqvaA1T5ZWwF3O-PuqkSkRLUl6H8oiTvwG4N26Txo,18431
80
- sqlspec/adapters/oracledb/driver.py,sha256=bvqudKLBtVjn1qGCtHp-VxBlanDWAQigNpfnE1FJ6wA,29902
80
+ sqlspec/adapters/oracledb/driver.py,sha256=60KuY4w8q_UlFSyHg_h0y6M_ZvyFTk7a2UAymlllNGg,37513
81
81
  sqlspec/adapters/oracledb/migrations.py,sha256=SpzRjveh2_uIzCm0ljACaZZElaPhfcOnA4x1NyZMlA4,20512
82
82
  sqlspec/adapters/oracledb/type_converter.py,sha256=SuJwZ2Zj8tpfOW-KxiYM_VHSuuMGY_RhBTi6eqfX-Ho,6512
83
83
  sqlspec/adapters/oracledb/adk/__init__.py,sha256=SBTIRZvAbwpInepEE0abHFKRDxugLFqaf-j7rZ-nyCQ,186
84
- sqlspec/adapters/oracledb/adk/store.py,sha256=M19y1H8oVY6q5v1kfBcFZrDuNDZqlklaPbtJ0lS0wkI,65521
84
+ sqlspec/adapters/oracledb/adk/store.py,sha256=plwJ_QAlTz2PEOjLD5B23vDZrLX8u9EZgWeVq0UcpCA,60738
85
85
  sqlspec/adapters/oracledb/litestar/__init__.py,sha256=5SobanCEiJ2u-EBoy3GSrOp7e7hvPO4TyfbrtgqpQeU,182
86
- sqlspec/adapters/oracledb/litestar/store.py,sha256=5gRbSdb0rKVMvBhKgE5WZj1F3FiTUSNFd-lsJEIDC50,27961
86
+ sqlspec/adapters/oracledb/litestar/store.py,sha256=K1ujpffyZ0R47NCO3lYfgs-jPTT89TJzCHf0xxZf4ok,28221
87
87
  sqlspec/adapters/psqlpy/__init__.py,sha256=ABve2Oj-G-fxMO8WRJ0XzxEw2cs5H3INDnmUI99l8gc,526
88
88
  sqlspec/adapters/psqlpy/_type_handlers.py,sha256=ZWil3zUlX76FTpK488peSxu7ML95jm92f4YeAvWceMI,1409
89
89
  sqlspec/adapters/psqlpy/_types.py,sha256=3hq6W7udft_Fwc88yzNYJ1G6D58tDS0cywckU6q52TA,259
90
90
  sqlspec/adapters/psqlpy/config.py,sha256=bTqhA1KwDBr-b_xqefrhIGkBRI_guqWwvVMoC4Y2O8c,9134
91
- sqlspec/adapters/psqlpy/data_dictionary.py,sha256=dlrzGo5Ywv3oGXHR35U-G4v1MHTAapZ1_GGLgMpRe3Q,6352
92
- sqlspec/adapters/psqlpy/driver.py,sha256=235DClWFTiBkh7rps2gFhZ3vuXqkaQW4n4G0xHE6DJo,15570
91
+ sqlspec/adapters/psqlpy/data_dictionary.py,sha256=0pibipxPeGhl7dI6QYs-s0O8jbb312hMBFKMMb0QV3w,6777
92
+ sqlspec/adapters/psqlpy/driver.py,sha256=FKaVQtjBnN7f2Ij7ddL_WNAy5k7W6QtfS42IE-l6M-A,15470
93
93
  sqlspec/adapters/psqlpy/type_converter.py,sha256=gKDVddYZ0uZilxuIrrEShG9ghh9lUNnt7LDc5x1flvQ,3322
94
94
  sqlspec/adapters/psqlpy/adk/__init__.py,sha256=WDkf6XSBk-4FUsCA7ostSlkS_o_6S41s5ScvRSSeW4o,124
95
- sqlspec/adapters/psqlpy/adk/store.py,sha256=jfJsoUHvJigp6rBwCcs2emx1PpDkDxdHADhcX9t-4rA,19353
95
+ sqlspec/adapters/psqlpy/adk/store.py,sha256=kusr9bmK1mGwWqJZj2smgysJMNswZ865VExA-V3luAs,19372
96
96
  sqlspec/adapters/psqlpy/litestar/__init__.py,sha256=ODTxzJFNmexprYuBZcCxQWsJXPuSYySlr1_Kw6Vj-Sc,139
97
97
  sqlspec/adapters/psqlpy/litestar/store.py,sha256=jfVzPPrRl33Fxma42Ud5-wVKei_OCWqpy_biA9CH-P8,9295
98
98
  sqlspec/adapters/psycopg/__init__.py,sha256=swmTz8xlj6LvB-i78tBSE_T-sez2e6lFJW2cMzNJEVE,862
99
99
  sqlspec/adapters/psycopg/_type_handlers.py,sha256=iD_wXXfwkllKgepKi8odj71eX_tEblMRQnL893NCOfE,2858
100
100
  sqlspec/adapters/psycopg/_types.py,sha256=ncc_g5VxYWOZIL6Vhs0BdjrOsWYTpkrRezamjYnc3mg,553
101
101
  sqlspec/adapters/psycopg/config.py,sha256=DrdGpbuiPukFX3PyVlL-lznrk41QtFd7rqeAoMleiwk,18066
102
- sqlspec/adapters/psycopg/data_dictionary.py,sha256=PxJLdkpr-6XopOFROg9O7DoVB6y3YaGpuAOQmuTeqOY,12198
102
+ sqlspec/adapters/psycopg/data_dictionary.py,sha256=qGe2uifYSW8QtsNOqHnk2fb15xcNbHnRX90WfCpfUxg,12996
103
103
  sqlspec/adapters/psycopg/driver.py,sha256=DmjgDnr-4w68DBks1mr1V6Vd5lJuLMj-dYI4zBZ26-4,32282
104
104
  sqlspec/adapters/psycopg/adk/__init__.py,sha256=FOREU2erEdgmiG-1V7o9d8Ar6UrwYoS8KvIiH7Vo-ag,181
105
- sqlspec/adapters/psycopg/adk/store.py,sha256=uimFeu87xXOKMrG9snNJJ9AamMwxpqZ-_yzNafiVlPE,38286
105
+ sqlspec/adapters/psycopg/adk/store.py,sha256=mc-HkGpyoa-e_aZP2JvU1kSu2bLBhdSKWWoYLS1Kn9M,39229
106
106
  sqlspec/adapters/psycopg/litestar/__init__.py,sha256=xFA5YaFgl0hbBE_8MxRjGUDpnx4sPoYQsAMbhZrKkkE,190
107
107
  sqlspec/adapters/psycopg/litestar/store.py,sha256=vCpBuBRiUgOrctqTo8NzmzbViGt4yzhEzhK6sBzVziY,19625
108
108
  sqlspec/adapters/sqlite/__init__.py,sha256=0uFYe_VL5IwT5bvkH9lUndjPcu8NFArGnQ9nM3AtCTE,624
@@ -113,7 +113,7 @@ sqlspec/adapters/sqlite/data_dictionary.py,sha256=RwG8KfVVl_2i9at02f7VFdkRF9GKk6
113
113
  sqlspec/adapters/sqlite/driver.py,sha256=3WUdPjUov4dqfwQ-Jmb0FyZMnEKslpslfWgrp8m27Bs,14904
114
114
  sqlspec/adapters/sqlite/pool.py,sha256=dl9AtLrvDKdO78KPy4RimzhOZGzBufFgCBT1-HyX0do,4785
115
115
  sqlspec/adapters/sqlite/adk/__init__.py,sha256=nT1sQ9W9PJhcdvgAv-HlnqvLPwMITlT8agl1_s40Ir4,156
116
- sqlspec/adapters/sqlite/adk/store.py,sha256=BkKoFAb69L53EEX3e7bdvguoE9Jh0iOfNBt2T8uhom4,20803
116
+ sqlspec/adapters/sqlite/adk/store.py,sha256=ExV_dC7YNy25YhxRHYl1o4j3egrIby8rLjYLvbzmMWs,21329
117
117
  sqlspec/adapters/sqlite/litestar/__init__.py,sha256=UFoArqozTzZGoxSCOvAXkxdS2Y1mPjR9WXC62XSlS6I,139
118
118
  sqlspec/adapters/sqlite/litestar/store.py,sha256=MaZb2NtEbW47Er2zT_bJMk98r2EkACivrFJwrxK8A1c,10712
119
119
  sqlspec/builder/__init__.py,sha256=LqO24DLVjLkSTrrddBJt-QhHpR-1ffdyt7jw60Jt4nk,3255
@@ -133,17 +133,17 @@ sqlspec/builder/_update.py,sha256=bV9WxH884nR8Fy5LxG1ZX2NjHAWhIKCelD6CARGhP0Q,47
133
133
  sqlspec/core/__init__.py,sha256=TmLIXSb1pUDqxxQQwNjl9FZWbWuLn84itmr76F0oI0s,5269
134
134
  sqlspec/core/cache.py,sha256=1nkNAuStXN4h2wkCAgByleHKoLx3jbDGKO0kUHJYV7M,22796
135
135
  sqlspec/core/compiler.py,sha256=HWVjxGSyjFVHN8eAjTKfxP7e3Y_qhc9NybmCvYvcRh0,14956
136
- sqlspec/core/filters.py,sha256=vez88M_TrGnDW12wqjGlp0Sk5d9f8VwBoikSds8PwuM,30064
136
+ sqlspec/core/filters.py,sha256=STz7d17fhoCeaGH-tJb6H7hKU5jSok_tp1GufGfRBH0,30418
137
137
  sqlspec/core/hashing.py,sha256=yAsdHr-Jg4lEjlKEgeqLHZsDtSG8XOdyr1_XnKV-vmo,8475
138
138
  sqlspec/core/parameters.py,sha256=DK278ZXXTMWxBhOdUuggoBnncXbnBY9hpuVsQf0VJ3Q,51100
139
- sqlspec/core/result.py,sha256=hnNY-YmickJv0zwEQXEteKLOv1ZgA2hbmr1WetN_5e0,24576
139
+ sqlspec/core/result.py,sha256=bvzHVdV009k5KCikR6eMHo0rkRQ5xhLnVI1EQqTMRsQ,28407
140
140
  sqlspec/core/splitter.py,sha256=t0v7ozAKIYuVMuUUoRXXr2uk483FnQPpihdfs4v7hvA,30906
141
141
  sqlspec/core/statement.py,sha256=nejnLn1pV5Ao-DYx7qOt0xwJIOHG6G1onOTz-7fl0Nc,30029
142
142
  sqlspec/core/type_conversion.py,sha256=jc84xjkVJ9O1KrJ__wiGKb6JIPmwZUG4i8VKreeDrn0,6040
143
143
  sqlspec/driver/__init__.py,sha256=8vv4gBOihBjN05ZkT30Bk6RnBK70DQpY7KBGP3TQ_dg,679
144
- sqlspec/driver/_async.py,sha256=48AVFIvnciqHetzkZEbiPzLHuwTsWSp28BIAFtToZM0,19148
145
- sqlspec/driver/_common.py,sha256=9W6Bxca0QBIexVvRzV358e1BWkZ_rJHjXSqZNNA5JmE,31880
146
- sqlspec/driver/_sync.py,sha256=pxpVAaBqBRpSpF2BHXG_k-uAu-OoUhc6w9Byum2zzrc,18807
144
+ sqlspec/driver/_async.py,sha256=7BmQ9Au3wLFPNxYQRhjRuGUSfuGM8HOsfxzpUwJ3Uj0,22951
145
+ sqlspec/driver/_common.py,sha256=X2fJZcJqAkldudcaZrAmI-BPIpU2Kr0AFlqFNQTkmmo,33078
146
+ sqlspec/driver/_sync.py,sha256=cXxqNgfUU0mVDO93BxKKizFEopUJd0D-ybYMRDZXm2E,22770
147
147
  sqlspec/driver/mixins/__init__.py,sha256=gN4pQyJXxNy0xi91dcMJGA7DQ7TbjGjQI24SSpZc6Go,248
148
148
  sqlspec/driver/mixins/_result_tools.py,sha256=MYSN34YHPVsSct0h7tYXNNZXXjOycCQAZPymHizRVbs,1940
149
149
  sqlspec/driver/mixins/_sql_translator.py,sha256=Tonq6jZsP49C-zvf-UCRy_y4EDWrkT5ikSRXjW0BK1k,3692
@@ -151,22 +151,34 @@ sqlspec/extensions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
151
151
  sqlspec/extensions/adk/__init__.py,sha256=dss2RuPKgDESTAp3EFTEiMEbvRSnstp1GQemD49RPQE,1793
152
152
  sqlspec/extensions/adk/_types.py,sha256=PXwnAZqkQ2MdIvzOXVURLqtB58UvSCuaTyJa_bTR4Rg,1282
153
153
  sqlspec/extensions/adk/converters.py,sha256=8VAhnCgZl1Dv-prqGWv86oCJqaW4T8JGF6TsEPVqVxw,5213
154
- sqlspec/extensions/adk/service.py,sha256=h4LhZXjoakUxGh-Ulw-2BIlXju3wZ8JUrRFMlwQT6sc,5728
155
- sqlspec/extensions/adk/store.py,sha256=ZGafhuuCAF1pkNP-vx8NeFWoYaUof0lnyZ1CINxdTwo,18304
156
- sqlspec/extensions/adk/migrations/0001_create_adk_tables.py,sha256=Tx3V-x36xrNKSBmHOB_qfwtL3XGemWuRDl5wuf_DO_U,4710
154
+ sqlspec/extensions/adk/service.py,sha256=pK1XKhFvbJTcxcyGPq6_3zDqS-Xk-6BA2M1UBZVy53A,5808
155
+ sqlspec/extensions/adk/store.py,sha256=UwOTJba7x2uZtdCMXdoX_wqL2mgT8lh31NojN5zldEE,18474
156
+ sqlspec/extensions/adk/migrations/0001_create_adk_tables.py,sha256=5I1e2eeKm8Ypqb6b6iL3Pz8y9JaptPaYFwFYJPnaphQ,4722
157
157
  sqlspec/extensions/adk/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
158
158
  sqlspec/extensions/aiosql/__init__.py,sha256=-9cefc9pYPf9vCgALoB-y1DtmcgRjKe2azfl6RIarAA,414
159
- sqlspec/extensions/aiosql/adapter.py,sha256=irtB0Cf4glG8ipAcok5vsFXvugTUbygDkCESiLdt8fo,16555
159
+ sqlspec/extensions/aiosql/adapter.py,sha256=8tDGFtb79hdXN0r-KGCAx-7TMVtb9Gh-1pC60TWR09o,16357
160
+ sqlspec/extensions/fastapi/__init__.py,sha256=yAGZA0-oIxPqqGAXbeKVyqKwkCJq1DW9ShCd7EEbkSg,714
161
+ sqlspec/extensions/fastapi/extension.py,sha256=YYyXGLqsXxxOsTSW13YPoUT8lAvKABS_gJ1oVSuMcNU,12739
162
+ sqlspec/extensions/fastapi/providers.py,sha256=BIeS7c4YC2AqtQ2Cqu7sFfAVQuaRg9ZKD0v7zuHLtZ4,20982
163
+ sqlspec/extensions/flask/__init__.py,sha256=gMnS4_aEKOwNSYgsaawxVHEdhqbC-UdOUoqVRCAvOn8,957
164
+ sqlspec/extensions/flask/_state.py,sha256=xsCXjONQSUNZcDpZ2iMr1Q-ZWd0hs68DblkO4xqVd2E,2120
165
+ sqlspec/extensions/flask/_utils.py,sha256=DpYzTp1AV357S7EVK89ImCbuqNch7AFPjfmrP9dJdTA,1192
166
+ sqlspec/extensions/flask/extension.py,sha256=QQJ35D6y0ur97oD-7Y5CTAZnX3wtNcvJ5RrB8nn0SPQ,14134
160
167
  sqlspec/extensions/litestar/__init__.py,sha256=jKafxBsk88967GgaZq5qT4LU3WPTx_Fs8Gx61W8FvdA,600
161
168
  sqlspec/extensions/litestar/_utils.py,sha256=iaicqnnkC5CuDwJKStz0T7lFaYMrgR96SYKZpe71v2g,1950
162
169
  sqlspec/extensions/litestar/cli.py,sha256=DRfkSSrBvQRIlEbigVNM2YNquPxRv3v9_xHJkBSl5tw,3082
163
- sqlspec/extensions/litestar/config.py,sha256=1PFW_HyBpsC6mbjfSi5zvRBA5cOKY0EQnXbGhnIssF8,2176
170
+ sqlspec/extensions/litestar/config.py,sha256=GCmBduLE16Ms4TW0Kicv50mn-oXj8TvDt7Mn61bIf6g,1984
164
171
  sqlspec/extensions/litestar/handlers.py,sha256=mDHV7lTWvOmu9l93XpFXSsp0AATQShikfkaT9wQo7io,11430
165
- sqlspec/extensions/litestar/plugin.py,sha256=9ATV-vzwkCaJPifmvytsJ6VF0aePnYlcSy86F_sjek4,20534
172
+ sqlspec/extensions/litestar/plugin.py,sha256=-FPvHhcdjs6nmanS5sH3FBq2MMgqGsf6xJC_U7hdL24,21769
166
173
  sqlspec/extensions/litestar/providers.py,sha256=dWteii3K4k4v-g_ss2wwz5BhJW95WZs4fxS5uvgtMeI,18760
167
174
  sqlspec/extensions/litestar/store.py,sha256=P-jgaNFSwZuDZ4NPpK4CN2VosRdWqOhecRie2ZGN9tU,8436
168
175
  sqlspec/extensions/litestar/migrations/0001_create_session_table.py,sha256=HKOPlSqjRnJ-E8jKs6yKG6d-MpwfZ9tTp6zFEb-DoOM,4456
169
176
  sqlspec/extensions/litestar/migrations/__init__.py,sha256=eqGG1LOq1GcLb6ggOJA__7MvoikTtALV_9oTTFuM4QQ,78
177
+ sqlspec/extensions/starlette/__init__.py,sha256=TotSnEGMjngfN8vsyOHPFYbZ8PaR-9ogIszlDAuL-Kk,449
178
+ sqlspec/extensions/starlette/_state.py,sha256=ORMI8JG0w643uxj60Zvd6s49orclKGhxYNdPwLnV5N8,704
179
+ sqlspec/extensions/starlette/_utils.py,sha256=zTO59cL5Bgf7EiALPY5VoDuf36mGnp-VlrjSC8tT-58,1650
180
+ sqlspec/extensions/starlette/extension.py,sha256=hgo5FsRmtexo_TILhs5ZIKp_BFIsXg_fUVrIonEUOZE,9159
181
+ sqlspec/extensions/starlette/middleware.py,sha256=xbl4nTLur_9aaSqwX5TEh38RWyHyoXew2Tbo6dEI3zM,5436
170
182
  sqlspec/migrations/__init__.py,sha256=Q6FIb529_Eeym_eLyVgRRVeT512iBzwTPGv99okf2_Q,1127
171
183
  sqlspec/migrations/base.py,sha256=3nfBsp0pV6-l5MNAHGLtoqPFETQYaGh09A1q9cpih4U,23594
172
184
  sqlspec/migrations/commands.py,sha256=k4BAmYeD4OPM48-cEdNFLd-MlHkW7sht5lDsTaNTR-g,40321
@@ -178,30 +190,32 @@ sqlspec/migrations/tracker.py,sha256=VhoiTpYiTI1YHadhbOmnM4UOq2sY1YyvBhaxRbIEP4A
178
190
  sqlspec/migrations/utils.py,sha256=nKzpukPmSqy7ABdhRaCoib6Ls8G6q8Ou7CyocTu6l1w,5128
179
191
  sqlspec/migrations/validation.py,sha256=WsxngSRj8jzbfXoEuseDTFgPBbYrEx-lHVHlYJ7svy8,6017
180
192
  sqlspec/storage/__init__.py,sha256=IX7xLuymGdQKOBQL1sNEA-bzZRJGjncUbQbs6ZToDDE,395
181
- sqlspec/storage/_utils.py,sha256=jG7St1z4kR5KDKUoy3e-rtRPlvpeIPe4C0s0krRZzHU,3025
193
+ sqlspec/storage/_utils.py,sha256=WKg0CxQ84DOsI6ixXjY3tCCgB682pm51v8QMYX4ItcI,2624
182
194
  sqlspec/storage/registry.py,sha256=CWMpB-zLa1ztiIcsliIw3hRi2Mmz8-s2VPwVbOI7_4E,12226
183
195
  sqlspec/storage/backends/__init__.py,sha256=3oSqwEQ_trU2QoxtUTX-5IFeOvo7WGcESY6gIfcmSaE,24
184
196
  sqlspec/storage/backends/base.py,sha256=KS2JRZILoH_R_xsfKtYkqQ5a1r5OOBDSE5KbibTmhGY,5730
185
- sqlspec/storage/backends/fsspec.py,sha256=RydZP9m-4u4BX2nwyWCCOQNkaAefMmpm0cJi4-0YgPk,15123
186
- sqlspec/storage/backends/local.py,sha256=SSAZJcOaq32WZJqbQq5tdQRGXT4bt6F7CZKV6Mpa-PQ,13235
187
- sqlspec/storage/backends/obstore.py,sha256=89k2-Pn74YVZMtTgpdNxDjUgx4axkPf2xDEhC1tiGZQ,25470
188
- sqlspec/utils/__init__.py,sha256=cNFX26-bLyZTyTfujUitfDkUy1CeG_d-EIr8kZ0z4W8,474
197
+ sqlspec/storage/backends/fsspec.py,sha256=kmOpz6xh5KpwLA18im8fcGgUPdCsBIns9CuVzyv4QKs,14985
198
+ sqlspec/storage/backends/local.py,sha256=1Z_tdCYBJl31DOeqxDLlyCvFhGnjaB2CJcCo0-3a43A,13240
199
+ sqlspec/storage/backends/obstore.py,sha256=LKLKCEXBdsoEJld-uqttjanlNKMka7FVfyxSEGyK1lM,25147
200
+ sqlspec/utils/__init__.py,sha256=YnVNg8eg6gF7g1oU0zjfFr8EiSIoNhWw7ixAkrL_O-M,639
201
+ sqlspec/utils/arrow_helpers.py,sha256=rsYeGdxc_0Np0tg8O8exCQ2LK9tL13ZMqGSbQzEcGXY,2708
189
202
  sqlspec/utils/config_resolver.py,sha256=bcq30KohF-0zQ15u2QfCdF8AGTRxeB4RaKNs7DpbiLA,5446
190
203
  sqlspec/utils/correlation.py,sha256=zZhB8k9w1gBne7Gp6DtrlKBodu5wdS4_ZUfnXqnhUSw,4190
191
204
  sqlspec/utils/data_transformation.py,sha256=Eh8lcJ9M3WG3dfyI4R2DDZ2pmXSbbQ3mklHO8DjGqqU,3961
192
205
  sqlspec/utils/deprecation.py,sha256=bpNYZkL_2mx9VIwet3579CGRuyOGCclMjGcZShoU2PY,3976
193
206
  sqlspec/utils/fixtures.py,sha256=dX__GaKHWD19A-De7Dahv4UJnvEF11pcGzocpHkYdYU,9419
194
207
  sqlspec/utils/logging.py,sha256=PK0SFRjfEwAn1eFPdtl0WeCO0h-7S2mGwyMSlnRmPGA,5016
195
- sqlspec/utils/module_loader.py,sha256=ZP0hAPi9mxbPyvWeF8vwhLAtWyPFl9ABzgrehm0lttQ,2982
208
+ sqlspec/utils/module_loader.py,sha256=a9-kFoQYTLxVK9GXJcyvcW1pYGGPHm1q4U1DLDQc2IU,8391
209
+ sqlspec/utils/portal.py,sha256=Iiz8GDHQuDEulV4XEuqOA4hCR0fYH1QJ68YLRktnOGo,9906
196
210
  sqlspec/utils/schema.py,sha256=Kby4KwWIof-6uyU53YI_AitfejPndElhDq4V4PY8QNI,9470
197
- sqlspec/utils/serializers.py,sha256=KnEBAC-Q3bNTkdK3MXi55nyJXelKwj1AqzLT4aXt7tE,1466
211
+ sqlspec/utils/serializers.py,sha256=mt5NlbUVPaowuzNH1UgcFtCN8dsEWIa4Xn-P6O-wcEc,4441
198
212
  sqlspec/utils/singleton.py,sha256=-j-s6LS0pP_wTEUYIyK2wSdoeIE_tn7O7B-j7_aODRQ,1252
199
- sqlspec/utils/sync_tools.py,sha256=YMIAguqOCtOut3VdafHpqmgY_ylrUnRPJ3NnrvyhpFg,9067
213
+ sqlspec/utils/sync_tools.py,sha256=07Sg4dIjrDPFMOG_lO51WBk6bmX8u4pNwuyXtRv09S8,9526
200
214
  sqlspec/utils/text.py,sha256=M_el3hgcSF-gFrFgHWmv4e3u4nvmsXpOolDBuVoMaRs,3302
201
- sqlspec/utils/type_guards.py,sha256=TWiXZsgtNxPETRJF9k4wt1n_znplJY_uOc7kxqLM5gY,35954
215
+ sqlspec/utils/type_guards.py,sha256=b5pIhKoweIYRGJfZLeN8szlJuxLd_ciSqtdxpg4YWEE,36721
202
216
  sqlspec/utils/version.py,sha256=8hKa0dGVNcJ6hRFhabM5U6haCUQGNBJg5LCe0pEbi6A,13767
203
- sqlspec-0.27.0.dist-info/METADATA,sha256=cCJDk-CYLIOVvrPxIPkQD8mHtbXThNE3AntlYSpF4rI,24255
204
- sqlspec-0.27.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
205
- sqlspec-0.27.0.dist-info/entry_points.txt,sha256=G-ZqY1Nuuw3Iys7nXw23f6ILenk_Lt47VdK2mhJCWHg,53
206
- sqlspec-0.27.0.dist-info/licenses/LICENSE,sha256=MdujfZ6l5HuLz4mElxlu049itenOR3gnhN1_Nd3nVcM,1078
207
- sqlspec-0.27.0.dist-info/RECORD,,
217
+ sqlspec-0.28.0.dist-info/METADATA,sha256=Mu5_zg6asxX9YVWezzAl4AbDKs16WYYkrq-MH_zGMPM,24219
218
+ sqlspec-0.28.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
219
+ sqlspec-0.28.0.dist-info/entry_points.txt,sha256=G-ZqY1Nuuw3Iys7nXw23f6ILenk_Lt47VdK2mhJCWHg,53
220
+ sqlspec-0.28.0.dist-info/licenses/LICENSE,sha256=MdujfZ6l5HuLz4mElxlu049itenOR3gnhN1_Nd3nVcM,1078
221
+ sqlspec-0.28.0.dist-info/RECORD,,