sqlspec 0.14.1__tar.gz → 0.15.0__tar.gz

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 (512) hide show
  1. {sqlspec-0.14.1 → sqlspec-0.15.0}/.gitignore +7 -0
  2. {sqlspec-0.14.1 → sqlspec-0.15.0}/.pre-commit-config.yaml +2 -2
  3. {sqlspec-0.14.1 → sqlspec-0.15.0}/Makefile +73 -0
  4. {sqlspec-0.14.1 → sqlspec-0.15.0}/PKG-INFO +7 -2
  5. {sqlspec-0.14.1 → sqlspec-0.15.0}/pyproject.toml +71 -9
  6. sqlspec-0.15.0/sqlspec/__init__.py +92 -0
  7. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/__main__.py +1 -1
  8. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/__metadata__.py +1 -3
  9. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/_serialization.py +1 -2
  10. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/_sql.py +256 -120
  11. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/_typing.py +278 -142
  12. sqlspec-0.15.0/sqlspec/adapters/adbc/__init__.py +5 -0
  13. sqlspec-0.15.0/sqlspec/adapters/adbc/_types.py +12 -0
  14. sqlspec-0.15.0/sqlspec/adapters/adbc/config.py +361 -0
  15. sqlspec-0.15.0/sqlspec/adapters/adbc/driver.py +512 -0
  16. sqlspec-0.15.0/sqlspec/adapters/aiosqlite/__init__.py +19 -0
  17. sqlspec-0.15.0/sqlspec/adapters/aiosqlite/_types.py +13 -0
  18. sqlspec-0.15.0/sqlspec/adapters/aiosqlite/config.py +253 -0
  19. sqlspec-0.15.0/sqlspec/adapters/aiosqlite/driver.py +248 -0
  20. sqlspec-0.15.0/sqlspec/adapters/asyncmy/__init__.py +19 -0
  21. sqlspec-0.15.0/sqlspec/adapters/asyncmy/_types.py +12 -0
  22. sqlspec-0.15.0/sqlspec/adapters/asyncmy/config.py +180 -0
  23. sqlspec-0.15.0/sqlspec/adapters/asyncmy/driver.py +274 -0
  24. sqlspec-0.15.0/sqlspec/adapters/asyncpg/__init__.py +21 -0
  25. sqlspec-0.15.0/sqlspec/adapters/asyncpg/_types.py +17 -0
  26. sqlspec-0.15.0/sqlspec/adapters/asyncpg/config.py +229 -0
  27. sqlspec-0.15.0/sqlspec/adapters/asyncpg/driver.py +344 -0
  28. sqlspec-0.15.0/sqlspec/adapters/bigquery/__init__.py +18 -0
  29. sqlspec-0.15.0/sqlspec/adapters/bigquery/_types.py +12 -0
  30. sqlspec-0.15.0/sqlspec/adapters/bigquery/config.py +298 -0
  31. sqlspec-0.15.0/sqlspec/adapters/bigquery/driver.py +558 -0
  32. sqlspec-0.15.0/sqlspec/adapters/duckdb/__init__.py +22 -0
  33. sqlspec-0.15.0/sqlspec/adapters/duckdb/_types.py +12 -0
  34. sqlspec-0.15.0/sqlspec/adapters/duckdb/config.py +504 -0
  35. sqlspec-0.15.0/sqlspec/adapters/duckdb/driver.py +368 -0
  36. sqlspec-0.15.0/sqlspec/adapters/oracledb/__init__.py +32 -0
  37. sqlspec-0.15.0/sqlspec/adapters/oracledb/_types.py +14 -0
  38. sqlspec-0.15.0/sqlspec/adapters/oracledb/config.py +317 -0
  39. sqlspec-0.15.0/sqlspec/adapters/oracledb/driver.py +538 -0
  40. sqlspec-0.15.0/sqlspec/adapters/psqlpy/__init__.py +16 -0
  41. sqlspec-0.15.0/sqlspec/adapters/psqlpy/_types.py +11 -0
  42. sqlspec-0.15.0/sqlspec/adapters/psqlpy/config.py +214 -0
  43. sqlspec-0.15.0/sqlspec/adapters/psqlpy/driver.py +530 -0
  44. sqlspec-0.15.0/sqlspec/adapters/psycopg/__init__.py +32 -0
  45. sqlspec-0.15.0/sqlspec/adapters/psycopg/_types.py +17 -0
  46. sqlspec-0.15.0/sqlspec/adapters/psycopg/config.py +426 -0
  47. sqlspec-0.15.0/sqlspec/adapters/psycopg/driver.py +796 -0
  48. sqlspec-0.15.0/sqlspec/adapters/sqlite/__init__.py +15 -0
  49. sqlspec-0.15.0/sqlspec/adapters/sqlite/_types.py +11 -0
  50. sqlspec-0.15.0/sqlspec/adapters/sqlite/config.py +240 -0
  51. sqlspec-0.15.0/sqlspec/adapters/sqlite/driver.py +294 -0
  52. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/base.py +105 -9
  53. {sqlspec-0.14.1/sqlspec/statement → sqlspec-0.15.0/sqlspec}/builder/__init__.py +12 -14
  54. {sqlspec-0.14.1/sqlspec/statement → sqlspec-0.15.0/sqlspec}/builder/_base.py +120 -55
  55. {sqlspec-0.14.1/sqlspec/statement → sqlspec-0.15.0/sqlspec}/builder/_column.py +17 -6
  56. {sqlspec-0.14.1/sqlspec/statement → sqlspec-0.15.0/sqlspec}/builder/_ddl.py +46 -79
  57. {sqlspec-0.14.1/sqlspec/statement → sqlspec-0.15.0/sqlspec}/builder/_ddl_utils.py +5 -10
  58. {sqlspec-0.14.1/sqlspec/statement → sqlspec-0.15.0/sqlspec}/builder/_delete.py +6 -25
  59. {sqlspec-0.14.1/sqlspec/statement → sqlspec-0.15.0/sqlspec}/builder/_insert.py +6 -64
  60. sqlspec-0.15.0/sqlspec/builder/_merge.py +56 -0
  61. {sqlspec-0.14.1/sqlspec/statement → sqlspec-0.15.0/sqlspec}/builder/_parsing_utils.py +3 -10
  62. {sqlspec-0.14.1/sqlspec/statement → sqlspec-0.15.0/sqlspec}/builder/_select.py +11 -56
  63. {sqlspec-0.14.1/sqlspec/statement → sqlspec-0.15.0/sqlspec}/builder/_update.py +12 -18
  64. {sqlspec-0.14.1/sqlspec/statement → sqlspec-0.15.0/sqlspec}/builder/mixins/__init__.py +10 -14
  65. {sqlspec-0.14.1/sqlspec/statement → sqlspec-0.15.0/sqlspec}/builder/mixins/_cte_and_set_ops.py +48 -59
  66. {sqlspec-0.14.1/sqlspec/statement → sqlspec-0.15.0/sqlspec}/builder/mixins/_insert_operations.py +22 -16
  67. {sqlspec-0.14.1/sqlspec/statement → sqlspec-0.15.0/sqlspec}/builder/mixins/_join_operations.py +1 -3
  68. {sqlspec-0.14.1/sqlspec/statement → sqlspec-0.15.0/sqlspec}/builder/mixins/_merge_operations.py +3 -5
  69. {sqlspec-0.14.1/sqlspec/statement → sqlspec-0.15.0/sqlspec}/builder/mixins/_order_limit_operations.py +3 -3
  70. {sqlspec-0.14.1/sqlspec/statement → sqlspec-0.15.0/sqlspec}/builder/mixins/_pivot_operations.py +4 -8
  71. {sqlspec-0.14.1/sqlspec/statement → sqlspec-0.15.0/sqlspec}/builder/mixins/_select_operations.py +21 -36
  72. {sqlspec-0.14.1/sqlspec/statement → sqlspec-0.15.0/sqlspec}/builder/mixins/_update_operations.py +3 -14
  73. {sqlspec-0.14.1/sqlspec/statement → sqlspec-0.15.0/sqlspec}/builder/mixins/_where_clause.py +52 -79
  74. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/cli.py +4 -5
  75. sqlspec-0.15.0/sqlspec/config.py +395 -0
  76. sqlspec-0.15.0/sqlspec/core/__init__.py +63 -0
  77. sqlspec-0.15.0/sqlspec/core/cache.py +873 -0
  78. sqlspec-0.15.0/sqlspec/core/compiler.py +396 -0
  79. sqlspec-0.15.0/sqlspec/core/filters.py +828 -0
  80. sqlspec-0.15.0/sqlspec/core/hashing.py +310 -0
  81. sqlspec-0.15.0/sqlspec/core/parameters.py +1209 -0
  82. sqlspec-0.15.0/sqlspec/core/result.py +664 -0
  83. {sqlspec-0.14.1/sqlspec/statement → sqlspec-0.15.0/sqlspec/core}/splitter.py +321 -191
  84. sqlspec-0.15.0/sqlspec/core/statement.py +651 -0
  85. sqlspec-0.15.0/sqlspec/driver/__init__.py +19 -0
  86. sqlspec-0.15.0/sqlspec/driver/_async.py +472 -0
  87. sqlspec-0.15.0/sqlspec/driver/_common.py +612 -0
  88. sqlspec-0.15.0/sqlspec/driver/_sync.py +473 -0
  89. sqlspec-0.15.0/sqlspec/driver/mixins/__init__.py +6 -0
  90. sqlspec-0.15.0/sqlspec/driver/mixins/_result_tools.py +168 -0
  91. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/driver/mixins/_sql_translator.py +6 -3
  92. sqlspec-0.15.0/sqlspec/exceptions.py +193 -0
  93. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/extensions/aiosql/adapter.py +93 -96
  94. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/extensions/litestar/config.py +0 -1
  95. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/extensions/litestar/handlers.py +15 -26
  96. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/extensions/litestar/plugin.py +16 -14
  97. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/extensions/litestar/providers.py +17 -52
  98. sqlspec-0.15.0/sqlspec/loader.py +760 -0
  99. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/migrations/__init__.py +12 -0
  100. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/migrations/base.py +92 -68
  101. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/migrations/commands.py +24 -106
  102. sqlspec-0.15.0/sqlspec/migrations/loaders.py +402 -0
  103. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/migrations/runner.py +49 -51
  104. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/migrations/tracker.py +31 -44
  105. sqlspec-0.15.0/sqlspec/migrations/utils.py +129 -0
  106. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/protocols.py +7 -183
  107. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/storage/__init__.py +1 -1
  108. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/storage/backends/base.py +37 -40
  109. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/storage/backends/fsspec.py +136 -112
  110. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/storage/backends/obstore.py +138 -160
  111. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/storage/capabilities.py +5 -4
  112. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/storage/registry.py +57 -106
  113. sqlspec-0.15.0/sqlspec/typing.py +299 -0
  114. sqlspec-0.15.0/sqlspec/utils/__init__.py +3 -0
  115. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/utils/correlation.py +0 -3
  116. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/utils/deprecation.py +6 -6
  117. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/utils/fixtures.py +6 -6
  118. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/utils/logging.py +0 -2
  119. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/utils/module_loader.py +7 -12
  120. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/utils/singleton.py +0 -1
  121. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/utils/sync_tools.py +16 -37
  122. sqlspec-0.15.0/sqlspec/utils/text.py +96 -0
  123. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/utils/type_guards.py +443 -232
  124. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/example_usage.py +16 -16
  125. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/sql_utils.py +5 -5
  126. sqlspec-0.15.0/tests/integration/__init__.py +1 -0
  127. sqlspec-0.15.0/tests/integration/conftest.py +39 -0
  128. sqlspec-0.15.0/tests/integration/test_adapters/__init__.py +1 -0
  129. sqlspec-0.15.0/tests/integration/test_adapters/test_adbc/__init__.py +1 -0
  130. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/integration/test_adapters/test_adbc/conftest.py +4 -3
  131. sqlspec-0.15.0/tests/integration/test_adapters/test_adbc/test_adbc_arrow_features.py +404 -0
  132. sqlspec-0.15.0/tests/integration/test_adapters/test_adbc/test_adbc_backends.py +254 -0
  133. sqlspec-0.15.0/tests/integration/test_adapters/test_adbc/test_adbc_connection.py +190 -0
  134. sqlspec-0.15.0/tests/integration/test_adapters/test_adbc/test_adbc_driver.py +424 -0
  135. sqlspec-0.15.0/tests/integration/test_adapters/test_adbc/test_adbc_edge_cases.py +537 -0
  136. sqlspec-0.15.0/tests/integration/test_adapters/test_adbc/test_adbc_results.py +398 -0
  137. sqlspec-0.15.0/tests/integration/test_adapters/test_aiosqlite/conftest.py +61 -0
  138. sqlspec-0.15.0/tests/integration/test_adapters/test_aiosqlite/test_connection.py +301 -0
  139. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/integration/test_adapters/test_aiosqlite/test_driver.py +96 -109
  140. sqlspec-0.15.0/tests/integration/test_adapters/test_aiosqlite/test_pooling.py +212 -0
  141. sqlspec-0.15.0/tests/integration/test_adapters/test_asyncmy/conftest.py +65 -0
  142. sqlspec-0.15.0/tests/integration/test_adapters/test_asyncmy/test_asyncmy_features.py +335 -0
  143. sqlspec-0.15.0/tests/integration/test_adapters/test_asyncmy/test_config.py +144 -0
  144. sqlspec-0.15.0/tests/integration/test_adapters/test_asyncmy/test_driver.py +429 -0
  145. sqlspec-0.15.0/tests/integration/test_adapters/test_asyncmy/test_parameter_styles.py +372 -0
  146. sqlspec-0.15.0/tests/integration/test_adapters/test_asyncpg/conftest.py +55 -0
  147. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/integration/test_adapters/test_asyncpg/test_connection.py +10 -6
  148. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/integration/test_adapters/test_asyncpg/test_driver.py +132 -104
  149. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/integration/test_adapters/test_asyncpg/test_execute_many.py +43 -34
  150. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/integration/test_adapters/test_asyncpg/test_parameter_styles.py +107 -96
  151. sqlspec-0.15.0/tests/integration/test_adapters/test_bigquery/__init__.py +1 -0
  152. sqlspec-0.15.0/tests/integration/test_adapters/test_bigquery/conftest.py +75 -0
  153. sqlspec-0.15.0/tests/integration/test_adapters/test_bigquery/test_bigquery_features.py +363 -0
  154. sqlspec-0.15.0/tests/integration/test_adapters/test_bigquery/test_config.py +151 -0
  155. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/integration/test_adapters/test_bigquery/test_connection.py +4 -4
  156. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/integration/test_adapters/test_bigquery/test_driver.py +56 -92
  157. sqlspec-0.15.0/tests/integration/test_adapters/test_bigquery/test_parameter_styles.py +193 -0
  158. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/integration/test_adapters/test_duckdb/test_connection.py +180 -55
  159. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/integration/test_adapters/test_duckdb/test_driver.py +43 -217
  160. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/integration/test_adapters/test_duckdb/test_execute_many.py +10 -11
  161. sqlspec-0.15.0/tests/integration/test_adapters/test_duckdb/test_mixed_parameter_styles.py +164 -0
  162. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/integration/test_adapters/test_duckdb/test_parameter_styles.py +107 -96
  163. sqlspec-0.15.0/tests/integration/test_adapters/test_duckdb/test_pooling.py +156 -0
  164. sqlspec-0.15.0/tests/integration/test_adapters/test_duckdb/utils.py +40 -0
  165. sqlspec-0.15.0/tests/integration/test_adapters/test_oracledb/conftest.py +52 -0
  166. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/integration/test_adapters/test_oracledb/test_connection.py +41 -37
  167. sqlspec-0.15.0/tests/integration/test_adapters/test_oracledb/test_driver_async.py +319 -0
  168. sqlspec-0.15.0/tests/integration/test_adapters/test_oracledb/test_driver_sync.py +314 -0
  169. sqlspec-0.15.0/tests/integration/test_adapters/test_oracledb/test_execute_many.py +365 -0
  170. sqlspec-0.15.0/tests/integration/test_adapters/test_oracledb/test_oracle_features.py +404 -0
  171. sqlspec-0.15.0/tests/integration/test_adapters/test_oracledb/test_parameter_styles.py +347 -0
  172. sqlspec-0.15.0/tests/integration/test_adapters/test_psqlpy/__init__.py +1 -0
  173. sqlspec-0.15.0/tests/integration/test_adapters/test_psqlpy/conftest.py +47 -0
  174. sqlspec-0.15.0/tests/integration/test_adapters/test_psqlpy/test_connection.py +137 -0
  175. sqlspec-0.15.0/tests/integration/test_adapters/test_psqlpy/test_driver.py +468 -0
  176. sqlspec-0.15.0/tests/integration/test_adapters/test_psqlpy/test_parameter_styles.py +242 -0
  177. sqlspec-0.15.0/tests/integration/test_adapters/test_psqlpy/test_psqlpy_features.py +250 -0
  178. sqlspec-0.15.0/tests/integration/test_adapters/test_psycopg/__init__.py +3 -0
  179. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/integration/test_adapters/test_psycopg/conftest.py +6 -12
  180. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/integration/test_adapters/test_psycopg/test_async_copy.py +8 -18
  181. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/integration/test_adapters/test_psycopg/test_connection.py +20 -20
  182. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/integration/test_adapters/test_psycopg/test_driver.py +78 -131
  183. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/integration/test_adapters/test_psycopg/test_execute_many.py +22 -22
  184. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/integration/test_adapters/test_psycopg/test_parameter_styles.py +162 -99
  185. sqlspec-0.15.0/tests/integration/test_adapters/test_sqlite/__init__.py +1 -0
  186. sqlspec-0.15.0/tests/integration/test_adapters/test_sqlite/conftest.py +121 -0
  187. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/integration/test_adapters/test_sqlite/test_driver.py +40 -106
  188. sqlspec-0.15.0/tests/integration/test_adapters/test_sqlite/test_parameter_styles.py +229 -0
  189. sqlspec-0.15.0/tests/integration/test_adapters/test_sqlite/test_pooling.py +323 -0
  190. sqlspec-0.15.0/tests/integration/test_adapters/test_sqlite/test_query_mixin.py +221 -0
  191. sqlspec-0.15.0/tests/integration/test_loader/__init__.py +5 -0
  192. sqlspec-0.15.0/tests/integration/test_loader/test_file_system_loading.py +752 -0
  193. sqlspec-0.15.0/tests/integration/test_migrations/__init__.py +5 -0
  194. sqlspec-0.15.0/tests/integration/test_migrations/test_migration_execution.py +660 -0
  195. sqlspec-0.15.0/tests/unit/conftest.py +1017 -0
  196. sqlspec-0.15.0/tests/unit/test_adapters/__init__.py +3 -0
  197. sqlspec-0.15.0/tests/unit/test_adapters/conftest.py +446 -0
  198. sqlspec-0.15.0/tests/unit/test_adapters/test_adapter_implementations.py +477 -0
  199. sqlspec-0.15.0/tests/unit/test_adapters/test_async_adapters.py +615 -0
  200. sqlspec-0.15.0/tests/unit/test_adapters/test_sync_adapters.py +490 -0
  201. sqlspec-0.15.0/tests/unit/test_base/__init__.py +1 -0
  202. sqlspec-0.15.0/tests/unit/test_base/test_sqlspec_class.py +669 -0
  203. sqlspec-0.15.0/tests/unit/test_core/test_cache.py +1031 -0
  204. sqlspec-0.15.0/tests/unit/test_core/test_compiler.py +861 -0
  205. sqlspec-0.15.0/tests/unit/test_core/test_hashing.py +577 -0
  206. sqlspec-0.15.0/tests/unit/test_core/test_parameters.py +1181 -0
  207. sqlspec-0.15.0/tests/unit/test_core/test_result.py +151 -0
  208. sqlspec-0.15.0/tests/unit/test_core/test_statement.py +1146 -0
  209. sqlspec-0.15.0/tests/unit/test_loader/__init__.py +5 -0
  210. sqlspec-0.15.0/tests/unit/test_loader/test_cache_integration.py +682 -0
  211. sqlspec-0.15.0/tests/unit/test_loader/test_loading_patterns.py +888 -0
  212. sqlspec-0.15.0/tests/unit/test_loader/test_sql_file_loader.py +962 -0
  213. sqlspec-0.15.0/tests/unit/test_migrations/__init__.py +10 -0
  214. sqlspec-0.15.0/tests/unit/test_migrations/test_migration.py +763 -0
  215. sqlspec-0.15.0/tests/unit/test_migrations/test_migration_execution.py +671 -0
  216. sqlspec-0.15.0/tests/unit/test_migrations/test_migration_runner.py +587 -0
  217. sqlspec-0.15.0/tests/unit/test_utils/__init__.py +1 -0
  218. sqlspec-0.15.0/tests/unit/test_utils/test_correlation.py +508 -0
  219. sqlspec-0.15.0/tests/unit/test_utils/test_deprecation.py +151 -0
  220. sqlspec-0.15.0/tests/unit/test_utils/test_fixtures.py +74 -0
  221. sqlspec-0.15.0/tests/unit/test_utils/test_logging.py +702 -0
  222. sqlspec-0.15.0/tests/unit/test_utils/test_module_loader.py +100 -0
  223. sqlspec-0.15.0/tests/unit/test_utils/test_serializers.py +487 -0
  224. sqlspec-0.15.0/tests/unit/test_utils/test_singleton.py +98 -0
  225. sqlspec-0.15.0/tests/unit/test_utils/test_sync_tools.py +400 -0
  226. sqlspec-0.15.0/tests/unit/test_utils/test_text.py +316 -0
  227. sqlspec-0.15.0/tests/unit/test_utils/test_type_guards.py +933 -0
  228. sqlspec-0.15.0/tools/local-infra.sh +686 -0
  229. sqlspec-0.15.0/tools/sphinx_ext/missing_references.py +382 -0
  230. {sqlspec-0.14.1 → sqlspec-0.15.0}/uv.lock +1923 -1202
  231. sqlspec-0.14.1/sqlspec/__init__.py +0 -67
  232. sqlspec-0.14.1/sqlspec/adapters/adbc/__init__.py +0 -4
  233. sqlspec-0.14.1/sqlspec/adapters/adbc/config.py +0 -506
  234. sqlspec-0.14.1/sqlspec/adapters/adbc/driver.py +0 -417
  235. sqlspec-0.14.1/sqlspec/adapters/adbc/transformers.py +0 -108
  236. sqlspec-0.14.1/sqlspec/adapters/aiosqlite/__init__.py +0 -4
  237. sqlspec-0.14.1/sqlspec/adapters/aiosqlite/config.py +0 -183
  238. sqlspec-0.14.1/sqlspec/adapters/aiosqlite/driver.py +0 -287
  239. sqlspec-0.14.1/sqlspec/adapters/asyncmy/__init__.py +0 -4
  240. sqlspec-0.14.1/sqlspec/adapters/asyncmy/config.py +0 -268
  241. sqlspec-0.14.1/sqlspec/adapters/asyncmy/driver.py +0 -239
  242. sqlspec-0.14.1/sqlspec/adapters/asyncpg/__init__.py +0 -6
  243. sqlspec-0.14.1/sqlspec/adapters/asyncpg/config.py +0 -328
  244. sqlspec-0.14.1/sqlspec/adapters/asyncpg/driver.py +0 -442
  245. sqlspec-0.14.1/sqlspec/adapters/bigquery/__init__.py +0 -4
  246. sqlspec-0.14.1/sqlspec/adapters/bigquery/config.py +0 -365
  247. sqlspec-0.14.1/sqlspec/adapters/bigquery/driver.py +0 -730
  248. sqlspec-0.14.1/sqlspec/adapters/duckdb/__init__.py +0 -11
  249. sqlspec-0.14.1/sqlspec/adapters/duckdb/config.py +0 -440
  250. sqlspec-0.14.1/sqlspec/adapters/duckdb/driver.py +0 -438
  251. sqlspec-0.14.1/sqlspec/adapters/oracledb/__init__.py +0 -18
  252. sqlspec-0.14.1/sqlspec/adapters/oracledb/config.py +0 -573
  253. sqlspec-0.14.1/sqlspec/adapters/oracledb/driver.py +0 -591
  254. sqlspec-0.14.1/sqlspec/adapters/psqlpy/__init__.py +0 -6
  255. sqlspec-0.14.1/sqlspec/adapters/psqlpy/config.py +0 -375
  256. sqlspec-0.14.1/sqlspec/adapters/psqlpy/driver.py +0 -259
  257. sqlspec-0.14.1/sqlspec/adapters/psycopg/__init__.py +0 -18
  258. sqlspec-0.14.1/sqlspec/adapters/psycopg/config.py +0 -686
  259. sqlspec-0.14.1/sqlspec/adapters/psycopg/driver.py +0 -962
  260. sqlspec-0.14.1/sqlspec/adapters/sqlite/__init__.py +0 -4
  261. sqlspec-0.14.1/sqlspec/adapters/sqlite/config.py +0 -156
  262. sqlspec-0.14.1/sqlspec/adapters/sqlite/driver.py +0 -333
  263. sqlspec-0.14.1/sqlspec/config.py +0 -348
  264. sqlspec-0.14.1/sqlspec/driver/__init__.py +0 -22
  265. sqlspec-0.14.1/sqlspec/driver/_async.py +0 -261
  266. sqlspec-0.14.1/sqlspec/driver/_common.py +0 -374
  267. sqlspec-0.14.1/sqlspec/driver/_sync.py +0 -255
  268. sqlspec-0.14.1/sqlspec/driver/connection.py +0 -207
  269. sqlspec-0.14.1/sqlspec/driver/mixins/__init__.py +0 -23
  270. sqlspec-0.14.1/sqlspec/driver/mixins/_cache.py +0 -114
  271. sqlspec-0.14.1/sqlspec/driver/mixins/_csv_writer.py +0 -91
  272. sqlspec-0.14.1/sqlspec/driver/mixins/_pipeline.py +0 -508
  273. sqlspec-0.14.1/sqlspec/driver/mixins/_query_tools.py +0 -796
  274. sqlspec-0.14.1/sqlspec/driver/mixins/_result_utils.py +0 -138
  275. sqlspec-0.14.1/sqlspec/driver/mixins/_storage.py +0 -912
  276. sqlspec-0.14.1/sqlspec/driver/mixins/_type_coercion.py +0 -128
  277. sqlspec-0.14.1/sqlspec/driver/parameters.py +0 -138
  278. sqlspec-0.14.1/sqlspec/exceptions.py +0 -440
  279. sqlspec-0.14.1/sqlspec/loader.py +0 -441
  280. sqlspec-0.14.1/sqlspec/migrations/utils.py +0 -89
  281. sqlspec-0.14.1/sqlspec/statement/__init__.py +0 -21
  282. sqlspec-0.14.1/sqlspec/statement/builder/_merge.py +0 -95
  283. sqlspec-0.14.1/sqlspec/statement/cache.py +0 -50
  284. sqlspec-0.14.1/sqlspec/statement/filters.py +0 -625
  285. sqlspec-0.14.1/sqlspec/statement/parameters.py +0 -956
  286. sqlspec-0.14.1/sqlspec/statement/pipelines/__init__.py +0 -210
  287. sqlspec-0.14.1/sqlspec/statement/pipelines/analyzers/__init__.py +0 -9
  288. sqlspec-0.14.1/sqlspec/statement/pipelines/analyzers/_analyzer.py +0 -646
  289. sqlspec-0.14.1/sqlspec/statement/pipelines/context.py +0 -109
  290. sqlspec-0.14.1/sqlspec/statement/pipelines/transformers/__init__.py +0 -7
  291. sqlspec-0.14.1/sqlspec/statement/pipelines/transformers/_expression_simplifier.py +0 -88
  292. sqlspec-0.14.1/sqlspec/statement/pipelines/transformers/_literal_parameterizer.py +0 -1247
  293. sqlspec-0.14.1/sqlspec/statement/pipelines/transformers/_remove_comments_and_hints.py +0 -76
  294. sqlspec-0.14.1/sqlspec/statement/pipelines/validators/__init__.py +0 -23
  295. sqlspec-0.14.1/sqlspec/statement/pipelines/validators/_dml_safety.py +0 -290
  296. sqlspec-0.14.1/sqlspec/statement/pipelines/validators/_parameter_style.py +0 -370
  297. sqlspec-0.14.1/sqlspec/statement/pipelines/validators/_performance.py +0 -714
  298. sqlspec-0.14.1/sqlspec/statement/pipelines/validators/_security.py +0 -967
  299. sqlspec-0.14.1/sqlspec/statement/result.py +0 -435
  300. sqlspec-0.14.1/sqlspec/statement/sql.py +0 -1774
  301. sqlspec-0.14.1/sqlspec/typing.py +0 -278
  302. sqlspec-0.14.1/sqlspec/utils/__init__.py +0 -4
  303. sqlspec-0.14.1/sqlspec/utils/cached_property.py +0 -25
  304. sqlspec-0.14.1/sqlspec/utils/statement_hashing.py +0 -203
  305. sqlspec-0.14.1/sqlspec/utils/text.py +0 -135
  306. sqlspec-0.14.1/tests/integration/__init__.py +0 -3
  307. sqlspec-0.14.1/tests/integration/test_adapters/__init__.py +0 -1
  308. sqlspec-0.14.1/tests/integration/test_adapters/test_adbc/__init__.py +0 -5
  309. sqlspec-0.14.1/tests/integration/test_adapters/test_adbc/test_arrow_functionality.py +0 -199
  310. sqlspec-0.14.1/tests/integration/test_adapters/test_adbc/test_bigquery_driver.py +0 -289
  311. sqlspec-0.14.1/tests/integration/test_adapters/test_adbc/test_connection.py +0 -85
  312. sqlspec-0.14.1/tests/integration/test_adapters/test_adbc/test_data_types.py +0 -270
  313. sqlspec-0.14.1/tests/integration/test_adapters/test_adbc/test_driver.py +0 -954
  314. sqlspec-0.14.1/tests/integration/test_adapters/test_adbc/test_duckdb_driver.py +0 -371
  315. sqlspec-0.14.1/tests/integration/test_adapters/test_adbc/test_execute_many.py +0 -195
  316. sqlspec-0.14.1/tests/integration/test_adapters/test_adbc/test_execute_script.py +0 -254
  317. sqlspec-0.14.1/tests/integration/test_adapters/test_adbc/test_null_params.py +0 -121
  318. sqlspec-0.14.1/tests/integration/test_adapters/test_adbc/test_parameter_styles.py +0 -186
  319. sqlspec-0.14.1/tests/integration/test_adapters/test_adbc/test_postgres_driver.py +0 -1163
  320. sqlspec-0.14.1/tests/integration/test_adapters/test_adbc/test_returning.py +0 -128
  321. sqlspec-0.14.1/tests/integration/test_adapters/test_adbc/test_sqlite_driver.py +0 -491
  322. sqlspec-0.14.1/tests/integration/test_adapters/test_asyncmy/test_config.py +0 -154
  323. sqlspec-0.14.1/tests/integration/test_adapters/test_asyncpg/conftest.py +0 -50
  324. sqlspec-0.14.1/tests/integration/test_adapters/test_asyncpg/test_arrow_functionality.py +0 -210
  325. sqlspec-0.14.1/tests/integration/test_adapters/test_bigquery/conftest.py +0 -31
  326. sqlspec-0.14.1/tests/integration/test_adapters/test_bigquery/test_arrow_functionality.py +0 -353
  327. sqlspec-0.14.1/tests/integration/test_adapters/test_duckdb/test_arrow_functionality.py +0 -440
  328. sqlspec-0.14.1/tests/integration/test_adapters/test_duckdb/test_mixed_parameter_styles.py +0 -145
  329. sqlspec-0.14.1/tests/integration/test_adapters/test_oracledb/test_driver_async.py +0 -385
  330. sqlspec-0.14.1/tests/integration/test_adapters/test_oracledb/test_driver_sync.py +0 -352
  331. sqlspec-0.14.1/tests/integration/test_adapters/test_psqlpy/__init__.py +0 -0
  332. sqlspec-0.14.1/tests/integration/test_adapters/test_psqlpy/test_arrow_functionality.py +0 -421
  333. sqlspec-0.14.1/tests/integration/test_adapters/test_psqlpy/test_connection.py +0 -72
  334. sqlspec-0.14.1/tests/integration/test_adapters/test_psqlpy/test_driver.py +0 -499
  335. sqlspec-0.14.1/tests/integration/test_adapters/test_psycopg/__init__.py +0 -5
  336. sqlspec-0.14.1/tests/integration/test_adapters/test_sqlite/__init__.py +0 -1
  337. sqlspec-0.14.1/tests/integration/test_adapters/test_sqlite/test_query_mixin.py +0 -223
  338. sqlspec-0.14.1/tests/integration/test_dialect_propagation.py +0 -340
  339. sqlspec-0.14.1/tests/integration/test_driver_mixins/__init__.py +0 -1
  340. sqlspec-0.14.1/tests/integration/test_extensions/__init__.py +0 -0
  341. sqlspec-0.14.1/tests/integration/test_extensions/test_aiosql/__init__.py +0 -0
  342. sqlspec-0.14.1/tests/integration/test_extensions/test_litestar/__init__.py +0 -0
  343. sqlspec-0.14.1/tests/integration/test_sql_file_loader.py +0 -627
  344. sqlspec-0.14.1/tests/integration/test_storage/__init__.py +0 -1
  345. sqlspec-0.14.1/tests/integration/test_storage/test_driver_storage_integration.py +0 -431
  346. sqlspec-0.14.1/tests/integration/test_storage/test_end_to_end_workflows.py +0 -558
  347. sqlspec-0.14.1/tests/integration/test_storage/test_storage_mixins.py +0 -519
  348. sqlspec-0.14.1/tests/unit/__init__.py +0 -0
  349. sqlspec-0.14.1/tests/unit/statement/test_cache.py +0 -231
  350. sqlspec-0.14.1/tests/unit/test_adapters/__init__.py +0 -3
  351. sqlspec-0.14.1/tests/unit/test_adapters/test_adbc/__init__.py +0 -3
  352. sqlspec-0.14.1/tests/unit/test_adapters/test_adbc/test_config.py +0 -127
  353. sqlspec-0.14.1/tests/unit/test_adapters/test_adbc/test_driver.py +0 -528
  354. sqlspec-0.14.1/tests/unit/test_adapters/test_adbc/test_transformers.py +0 -147
  355. sqlspec-0.14.1/tests/unit/test_adapters/test_aiosqlite/__init__.py +0 -3
  356. sqlspec-0.14.1/tests/unit/test_adapters/test_aiosqlite/test_config.py +0 -105
  357. sqlspec-0.14.1/tests/unit/test_adapters/test_aiosqlite/test_driver.py +0 -198
  358. sqlspec-0.14.1/tests/unit/test_adapters/test_asyncmy/__init__.py +0 -3
  359. sqlspec-0.14.1/tests/unit/test_adapters/test_asyncmy/test_driver.py +0 -248
  360. sqlspec-0.14.1/tests/unit/test_adapters/test_asyncpg/__init__.py +0 -3
  361. sqlspec-0.14.1/tests/unit/test_adapters/test_asyncpg/test_config.py +0 -546
  362. sqlspec-0.14.1/tests/unit/test_adapters/test_asyncpg/test_driver.py +0 -483
  363. sqlspec-0.14.1/tests/unit/test_adapters/test_bigquery/__init__.py +0 -1
  364. sqlspec-0.14.1/tests/unit/test_adapters/test_bigquery/test_config.py +0 -389
  365. sqlspec-0.14.1/tests/unit/test_adapters/test_bigquery/test_driver.py +0 -616
  366. sqlspec-0.14.1/tests/unit/test_adapters/test_cache_mixin.py +0 -203
  367. sqlspec-0.14.1/tests/unit/test_adapters/test_duckdb/__init__.py +0 -3
  368. sqlspec-0.14.1/tests/unit/test_adapters/test_duckdb/test_config.py +0 -468
  369. sqlspec-0.14.1/tests/unit/test_adapters/test_duckdb/test_driver.py +0 -596
  370. sqlspec-0.14.1/tests/unit/test_adapters/test_oracledb/__init__.py +0 -3
  371. sqlspec-0.14.1/tests/unit/test_adapters/test_oracledb/test_config.py +0 -145
  372. sqlspec-0.14.1/tests/unit/test_adapters/test_oracledb/test_driver.py +0 -128
  373. sqlspec-0.14.1/tests/unit/test_adapters/test_psqlpy/__init__.py +0 -3
  374. sqlspec-0.14.1/tests/unit/test_adapters/test_psqlpy/test_config.py +0 -151
  375. sqlspec-0.14.1/tests/unit/test_adapters/test_psqlpy/test_driver.py +0 -104
  376. sqlspec-0.14.1/tests/unit/test_adapters/test_psycopg/__init__.py +0 -3
  377. sqlspec-0.14.1/tests/unit/test_adapters/test_psycopg/test_config.py +0 -740
  378. sqlspec-0.14.1/tests/unit/test_adapters/test_psycopg/test_driver.py +0 -686
  379. sqlspec-0.14.1/tests/unit/test_adapters/test_sqlite/__init__.py +0 -3
  380. sqlspec-0.14.1/tests/unit/test_adapters/test_sqlite/test_config.py +0 -319
  381. sqlspec-0.14.1/tests/unit/test_adapters/test_sqlite/test_driver.py +0 -456
  382. sqlspec-0.14.1/tests/unit/test_base.py +0 -554
  383. sqlspec-0.14.1/tests/unit/test_config.py +0 -523
  384. sqlspec-0.14.1/tests/unit/test_config_dialect.py +0 -407
  385. sqlspec-0.14.1/tests/unit/test_driver.py +0 -817
  386. sqlspec-0.14.1/tests/unit/test_driver_mixins/__init__.py +0 -1
  387. sqlspec-0.14.1/tests/unit/test_driver_mixins/test_query_mixin.py +0 -336
  388. sqlspec-0.14.1/tests/unit/test_exceptions.py +0 -862
  389. sqlspec-0.14.1/tests/unit/test_extensions/__init__.py +0 -0
  390. sqlspec-0.14.1/tests/unit/test_extensions/test_aiosql/test_adapter.py +0 -409
  391. sqlspec-0.14.1/tests/unit/test_loader.py +0 -494
  392. sqlspec-0.14.1/tests/unit/test_statement/__init__.py +0 -0
  393. sqlspec-0.14.1/tests/unit/test_statement/test_base.py +0 -510
  394. sqlspec-0.14.1/tests/unit/test_statement/test_builder/__init__.py +0 -0
  395. sqlspec-0.14.1/tests/unit/test_statement/test_builder/test_base.py +0 -793
  396. sqlspec-0.14.1/tests/unit/test_statement/test_builder/test_builder_mixins.py +0 -999
  397. sqlspec-0.14.1/tests/unit/test_statement/test_builder/test_column.py +0 -302
  398. sqlspec-0.14.1/tests/unit/test_statement/test_builder/test_delete.py +0 -318
  399. sqlspec-0.14.1/tests/unit/test_statement/test_builder/test_dynamic_columns.py +0 -220
  400. sqlspec-0.14.1/tests/unit/test_statement/test_builder/test_insert.py +0 -477
  401. sqlspec-0.14.1/tests/unit/test_statement/test_builder/test_merge.py +0 -577
  402. sqlspec-0.14.1/tests/unit/test_statement/test_builder/test_select.py +0 -672
  403. sqlspec-0.14.1/tests/unit/test_statement/test_builder/test_update.py +0 -525
  404. sqlspec-0.14.1/tests/unit/test_statement/test_config.py +0 -515
  405. sqlspec-0.14.1/tests/unit/test_statement/test_filters.py +0 -512
  406. sqlspec-0.14.1/tests/unit/test_statement/test_mixins.py +0 -364
  407. sqlspec-0.14.1/tests/unit/test_statement/test_oracle_numeric_parameters.py +0 -331
  408. sqlspec-0.14.1/tests/unit/test_statement/test_parameter_normalization.py +0 -122
  409. sqlspec-0.14.1/tests/unit/test_statement/test_parameter_preservation.py +0 -139
  410. sqlspec-0.14.1/tests/unit/test_statement/test_parameters.py +0 -513
  411. sqlspec-0.14.1/tests/unit/test_statement/test_pipelines/__init__.py +0 -0
  412. sqlspec-0.14.1/tests/unit/test_statement/test_pipelines/test_analyzer.py +0 -566
  413. sqlspec-0.14.1/tests/unit/test_statement/test_pipelines/test_analyzer_subquery_detection.py +0 -374
  414. sqlspec-0.14.1/tests/unit/test_statement/test_pipelines/test_expression_simplifier.py +0 -479
  415. sqlspec-0.14.1/tests/unit/test_statement/test_pipelines/test_literal_parameterizer_duplication.py +0 -104
  416. sqlspec-0.14.1/tests/unit/test_statement/test_pipelines/test_transformers_literal_parameterizer.py +0 -651
  417. sqlspec-0.14.1/tests/unit/test_statement/test_pipelines/test_transformers_literal_parameterizer_cte.py +0 -216
  418. sqlspec-0.14.1/tests/unit/test_statement/test_pipelines/test_transformers_remove_comments.py +0 -550
  419. sqlspec-0.14.1/tests/unit/test_statement/test_pipelines/test_validators_dml_safety.py +0 -496
  420. sqlspec-0.14.1/tests/unit/test_statement/test_pipelines/test_validators_parameter_style.py +0 -440
  421. sqlspec-0.14.1/tests/unit/test_statement/test_pipelines/test_validators_performance.py +0 -580
  422. sqlspec-0.14.1/tests/unit/test_statement/test_pipelines/test_validators_security.py +0 -608
  423. sqlspec-0.14.1/tests/unit/test_statement/test_result.py +0 -547
  424. sqlspec-0.14.1/tests/unit/test_statement/test_splitter.py +0 -450
  425. sqlspec-0.14.1/tests/unit/test_statement/test_sql.py +0 -422
  426. sqlspec-0.14.1/tests/unit/test_statement/test_sql_as_many.py +0 -102
  427. sqlspec-0.14.1/tests/unit/test_statement/test_sql_translator_mixin.py +0 -290
  428. sqlspec-0.14.1/tests/unit/test_statement/test_sqlfactory.py +0 -95
  429. sqlspec-0.14.1/tests/unit/test_statement/test_storage.py +0 -235
  430. sqlspec-0.14.1/tests/unit/test_statement/test_transformers/test_expression_simplifier_parameter_tracking.py +0 -129
  431. sqlspec-0.14.1/tests/unit/test_statement/test_typed_parameter.py +0 -226
  432. sqlspec-0.14.1/tests/unit/test_storage/__init__.py +0 -1
  433. sqlspec-0.14.1/tests/unit/test_storage/test_backends/__init__.py +0 -1
  434. sqlspec-0.14.1/tests/unit/test_storage/test_backends/test_fsspec_backend.py +0 -763
  435. sqlspec-0.14.1/tests/unit/test_storage/test_backends/test_obstore_backend.py +0 -1164
  436. sqlspec-0.14.1/tests/unit/test_storage/test_base.py +0 -431
  437. sqlspec-0.14.1/tests/unit/test_storage/test_registry.py +0 -413
  438. sqlspec-0.14.1/tests/unit/test_typing.py +0 -271
  439. sqlspec-0.14.1/tests/unit/test_utils/__init__.py +0 -0
  440. sqlspec-0.14.1/tests/unit/test_utils/test_deprecation.py +0 -365
  441. sqlspec-0.14.1/tests/unit/test_utils/test_fixtures.py +0 -305
  442. sqlspec-0.14.1/tests/unit/test_utils/test_module_loader.py +0 -359
  443. sqlspec-0.14.1/tests/unit/test_utils/test_singleton.py +0 -324
  444. sqlspec-0.14.1/tests/unit/test_utils/test_sync_tools.py +0 -474
  445. sqlspec-0.14.1/tests/unit/test_utils/test_text.py +0 -315
  446. sqlspec-0.14.1/tests/unit/utils/test_ast_hashing.py +0 -145
  447. sqlspec-0.14.1/tools/__init__.py +0 -0
  448. sqlspec-0.14.1/tools/sphinx_ext/missing_references.py +0 -127
  449. {sqlspec-0.14.1 → sqlspec-0.15.0}/CONTRIBUTING.rst +0 -0
  450. {sqlspec-0.14.1 → sqlspec-0.15.0}/LICENSE +0 -0
  451. {sqlspec-0.14.1 → sqlspec-0.15.0}/NOTICE +0 -0
  452. {sqlspec-0.14.1 → sqlspec-0.15.0}/README.md +0 -0
  453. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/adapters/__init__.py +0 -0
  454. {sqlspec-0.14.1/sqlspec/statement → sqlspec-0.15.0/sqlspec}/builder/mixins/_delete_operations.py +0 -0
  455. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/extensions/__init__.py +0 -0
  456. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/extensions/aiosql/__init__.py +0 -0
  457. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/extensions/litestar/__init__.py +0 -0
  458. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/extensions/litestar/_utils.py +0 -0
  459. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/extensions/litestar/cli.py +0 -0
  460. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/py.typed +0 -0
  461. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/storage/backends/__init__.py +0 -0
  462. {sqlspec-0.14.1 → sqlspec-0.15.0}/sqlspec/utils/serializers.py +0 -0
  463. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/__init__.py +0 -0
  464. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/conftest.py +0 -0
  465. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/__init__.py +0 -0
  466. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/ddls-mysql-collection.sql +0 -0
  467. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/ddls-postgres-collection.sql +0 -0
  468. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/init.sql +0 -0
  469. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/mysql/collection-config.sql +0 -0
  470. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/mysql/collection-data_types.sql +0 -0
  471. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/mysql/collection-database_details.sql +0 -0
  472. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/mysql/collection-engines.sql +0 -0
  473. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/mysql/collection-hostname.sql +0 -0
  474. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/mysql/collection-plugins.sql +0 -0
  475. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/mysql/collection-process_list.sql +0 -0
  476. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/mysql/collection-resource-groups.sql +0 -0
  477. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/mysql/collection-schema_objects.sql +0 -0
  478. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/mysql/collection-table_details.sql +0 -0
  479. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/mysql/collection-users.sql +0 -0
  480. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/mysql/init.sql +0 -0
  481. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/oracle.ddl.sql +0 -0
  482. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/postgres/collection-applications.sql +0 -0
  483. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/postgres/collection-aws_extension_dependency.sql +0 -0
  484. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/postgres/collection-aws_oracle_exists.sql +0 -0
  485. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/postgres/collection-bg_writer_stats.sql +0 -0
  486. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/postgres/collection-calculated_metrics.sql +0 -0
  487. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/postgres/collection-data_types.sql +0 -0
  488. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/postgres/collection-database_details.sql +0 -0
  489. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/postgres/collection-extensions.sql +0 -0
  490. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/postgres/collection-index_details.sql +0 -0
  491. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/postgres/collection-pglogical-details.sql +0 -0
  492. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/postgres/collection-privileges.sql +0 -0
  493. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/postgres/collection-replication_slots.sql +0 -0
  494. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/postgres/collection-replication_stats.sql +0 -0
  495. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/postgres/collection-schema_details.sql +0 -0
  496. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/postgres/collection-schema_objects.sql +0 -0
  497. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/postgres/collection-settings.sql +0 -0
  498. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/postgres/collection-source_details.sql +0 -0
  499. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/postgres/collection-table_details.sql +0 -0
  500. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/postgres/extended-collection-all-databases.sql +0 -0
  501. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/postgres/init.sql +0 -0
  502. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/fixtures/readiness-check.sql +0 -0
  503. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/integration/test_adapters/test_aiosqlite/__init__.py +0 -0
  504. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/integration/test_adapters/test_asyncmy/__init__.py +0 -0
  505. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/integration/test_adapters/test_asyncpg/__init__.py +0 -0
  506. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/integration/test_adapters/test_duckdb/__init__.py +0 -0
  507. {sqlspec-0.14.1 → sqlspec-0.15.0}/tests/integration/test_adapters/test_oracledb/__init__.py +0 -0
  508. {sqlspec-0.14.1/tests/integration/test_adapters/test_bigquery → sqlspec-0.15.0/tools}/__init__.py +0 -0
  509. {sqlspec-0.14.1 → sqlspec-0.15.0}/tools/build_docs.py +0 -0
  510. {sqlspec-0.14.1 → sqlspec-0.15.0}/tools/pypi_readme.py +0 -0
  511. {sqlspec-0.14.1 → sqlspec-0.15.0}/tools/sphinx_ext/__init__.py +0 -0
  512. {sqlspec-0.14.1 → sqlspec-0.15.0}/tools/sphinx_ext/changelog.py +0 -0
@@ -54,3 +54,10 @@ requirements/*
54
54
  tools/*.json
55
55
  benchmarks/
56
56
  .benchmark
57
+ *.db
58
+ *.db-journal
59
+ *.db-wal
60
+ *.db-shm
61
+ *.duckdb
62
+ .crush
63
+ CRUSH.md
@@ -7,7 +7,7 @@ repos:
7
7
  - id: conventional-pre-commit
8
8
  stages: [commit-msg]
9
9
  - repo: https://github.com/pre-commit/pre-commit-hooks
10
- rev: v5.0.0
10
+ rev: v6.0.0
11
11
  hooks:
12
12
  - id: check-ast
13
13
  - id: check-case-conflict
@@ -17,7 +17,7 @@ repos:
17
17
  - id: mixed-line-ending
18
18
  - id: trailing-whitespace
19
19
  - repo: https://github.com/charliermarsh/ruff-pre-commit
20
- rev: "v0.12.2"
20
+ rev: "v0.12.8"
21
21
  hooks:
22
22
  - id: ruff
23
23
  args: ["--fix"]
@@ -48,6 +48,18 @@ install: destroy clean ## Install the project, depe
48
48
  @uv sync --all-extras --dev
49
49
  @echo "${OK} Installation complete! 🎉"
50
50
 
51
+ .PHONY: install-compiled
52
+ install-compiled: destroy clean ## Install with mypyc compilation for performance
53
+ @echo "${INFO} Starting fresh installation with mypyc compilation..."
54
+ @uv python pin 3.12 >/dev/null 2>&1
55
+ @uv venv >/dev/null 2>&1
56
+ @echo "${INFO} Installing in editable mode with mypyc compilation..."
57
+ @HATCH_BUILD_HOOKS_ENABLE=1 uv pip install -e .
58
+ @uv sync --all-extras --dev
59
+ @echo "${OK} Performance installation complete! 🚀"
60
+ @echo "${INFO} Verifying compilation..."
61
+ @find sqlspec -name "*.so" | wc -l | xargs -I {} echo "${OK} Compiled {} modules"
62
+
51
63
  .PHONY: destroy
52
64
  destroy: ## Destroy the virtual environment
53
65
  @echo "${INFO} Destroying virtual environment... 🗑️"
@@ -83,6 +95,22 @@ build: ## Build the package
83
95
  @uv build >/dev/null 2>&1
84
96
  @echo "${OK} Package build complete"
85
97
 
98
+ .PHONY: build-performance
99
+ build-performance: ## Build package with mypyc compilation
100
+ @echo "${INFO} Building package with mypyc compilation... 📦"
101
+ @HATCH_BUILD_HOOKS_ENABLE=1 uv build >/dev/null 2>&1
102
+ @echo "${OK} Performance package build complete 🚀"
103
+
104
+ .PHONY: test-mypyc
105
+ test-mypyc: ## Test mypyc compilation on individual modules
106
+ @echo "${INFO} Testing mypyc compilation... 🔧"
107
+ @uv run mypyc --check-untyped-defs sqlspec/utils/statement_hashing.py
108
+ @uv run mypyc --check-untyped-defs sqlspec/utils/text.py
109
+ @uv run mypyc --check-untyped-defs sqlspec/utils/sync_tools.py
110
+ @uv run mypyc --check-untyped-defs sqlspec/statement/cache.py
111
+ @echo "${OK} Mypyc compilation tests passed ✨"
112
+
113
+
86
114
  .PHONY: release
87
115
  release: ## Bump version and create release tag
88
116
  @echo "${INFO} Preparing for release... 📦"
@@ -108,6 +136,8 @@ clean: ## Cleanup temporary build a
108
136
  @find . -name '*~' -exec rm -f {} + >/dev/null 2>&1
109
137
  @find . -name '__pycache__' -exec rm -rf {} + >/dev/null 2>&1
110
138
  @find . -name '.ipynb_checkpoints' -exec rm -rf {} + >/dev/null 2>&1
139
+ @find . -name '*.so' -exec rm -f {} + >/dev/null 2>&1
140
+ @find . -name '*.c' -exec rm -f {} + >/dev/null 2>&1
111
141
  @echo "${OK} Working directory cleaned"
112
142
  $(MAKE) docs-clean
113
143
 
@@ -215,6 +245,49 @@ docs-linkcheck-full: ## Run full documentation lin
215
245
  @uv run sphinx-build -b linkcheck ./docs ./docs/_build -D linkcheck_anchors=0
216
246
  @echo "${OK} Full link check complete"
217
247
 
248
+ # =============================================================================
249
+ # Development Infrastructure
250
+ # =============================================================================
251
+
252
+ .PHONY: infra-up
253
+ infra-up: ## Start development infrastructure (databases, storage)
254
+ @echo "${INFO} Starting development infrastructure..."
255
+ @./tools/local-infra.sh up
256
+ @echo "${OK} Development infrastructure ready ✨"
257
+
258
+ .PHONY: infra-down
259
+ infra-down: ## Stop development infrastructure
260
+ @echo "${INFO} Stopping development infrastructure..."
261
+ @./tools/local-infra.sh down --quiet
262
+ @echo "${OK} Development infrastructure stopped"
263
+
264
+ .PHONY: infra-status
265
+ infra-status: ## Show development infrastructure status
266
+ @./tools/local-infra.sh status
267
+
268
+ .PHONY: infra-cleanup
269
+ infra-cleanup: ## Clean up development infrastructure
270
+ @echo "${WARN} This will remove all development containers and volumes"
271
+ @./tools/local-infra.sh cleanup
272
+
273
+ .PHONY: infra-postgres
274
+ infra-postgres: ## Start only PostgreSQL
275
+ @echo "${INFO} Starting PostgreSQL..."
276
+ @./tools/local-infra.sh up postgres --quiet
277
+ @echo "${OK} PostgreSQL ready on port 5433"
278
+
279
+ .PHONY: infra-oracle
280
+ infra-oracle: ## Start only Oracle
281
+ @echo "${INFO} Starting Oracle..."
282
+ @./tools/local-infra.sh up oracle --quiet
283
+ @echo "${OK} Oracle ready on port 1522"
284
+
285
+ .PHONY: infra-mysql
286
+ infra-mysql: ## Start only MySQL
287
+ @echo "${INFO} Starting MySQL..."
288
+ @./tools/local-infra.sh up mysql --quiet
289
+ @echo "${OK} MySQL ready on port 3307"
290
+
218
291
  # =============================================================================
219
292
  # End of Makefile
220
293
  # =============================================================================
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlspec
3
- Version: 0.14.1
3
+ Version: 0.15.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/
@@ -11,8 +11,9 @@ License-Expression: MIT
11
11
  License-File: LICENSE
12
12
  License-File: NOTICE
13
13
  Requires-Python: <4.0,>=3.9
14
- Requires-Dist: click
15
14
  Requires-Dist: eval-type-backport; python_version < '3.10'
15
+ Requires-Dist: mypy-extensions
16
+ Requires-Dist: rich-click
16
17
  Requires-Dist: sqlglot>=19.9.0
17
18
  Requires-Dist: typing-extensions
18
19
  Provides-Extra: adbc
@@ -28,6 +29,9 @@ Provides-Extra: asyncmy
28
29
  Requires-Dist: asyncmy; extra == 'asyncmy'
29
30
  Provides-Extra: asyncpg
30
31
  Requires-Dist: asyncpg; extra == 'asyncpg'
32
+ Provides-Extra: attrs
33
+ Requires-Dist: attrs; extra == 'attrs'
34
+ Requires-Dist: cattrs; extra == 'attrs'
31
35
  Provides-Extra: bigquery
32
36
  Requires-Dist: google-cloud-bigquery; extra == 'bigquery'
33
37
  Provides-Extra: cli
@@ -44,6 +48,7 @@ Provides-Extra: litestar
44
48
  Requires-Dist: litestar; extra == 'litestar'
45
49
  Provides-Extra: msgspec
46
50
  Requires-Dist: msgspec; extra == 'msgspec'
51
+ Provides-Extra: mypyc
47
52
  Provides-Extra: nanoid
48
53
  Requires-Dist: fastnanoid>=0.4.1; extra == 'nanoid'
49
54
  Provides-Extra: obstore
@@ -1,13 +1,19 @@
1
1
  [project]
2
2
  authors = [{ name = "Cody Fincher", email = "cody@litestar.dev" }]
3
- dependencies = ["typing-extensions", "eval_type_backport; python_version < \"3.10\"", "click", "sqlglot>=19.9.0"]
3
+ dependencies = [
4
+ "typing-extensions",
5
+ "eval_type_backport; python_version < \"3.10\"",
6
+ "sqlglot>=19.9.0",
7
+ "mypy-extensions",
8
+ "rich-click",
9
+ ]
4
10
  description = "SQL Experiments in Python"
5
11
  license = "MIT"
6
12
  maintainers = [{ name = "Litestar Developers", email = "hello@litestar.dev" }]
7
13
  name = "sqlspec"
8
14
  readme = "README.md"
9
15
  requires-python = ">=3.9, <4.0"
10
- version = "0.14.1"
16
+ version = "0.15.0"
11
17
 
12
18
  [project.urls]
13
19
  Discord = "https://discord.gg/litestar"
@@ -21,6 +27,7 @@ aiosql = ["aiosql"]
21
27
  aiosqlite = ["aiosqlite"]
22
28
  asyncmy = ["asyncmy"]
23
29
  asyncpg = ["asyncpg"]
30
+ attrs = ["attrs", "cattrs"]
24
31
  bigquery = ["google-cloud-bigquery"]
25
32
  cli = ["rich-click"]
26
33
  duckdb = ["duckdb"]
@@ -29,6 +36,7 @@ flask = ["flask"]
29
36
  fsspec = ["fsspec"]
30
37
  litestar = ["litestar"]
31
38
  msgspec = ["msgspec"]
39
+ mypyc = []
32
40
  nanoid = ["fastnanoid>=0.4.1"]
33
41
  obstore = ["obstore"]
34
42
  opentelemetry = ["opentelemetry-instrumentation"]
@@ -46,10 +54,9 @@ pymysql = ["pymysql"]
46
54
  spanner = ["google-cloud-spanner"]
47
55
  uuid = ["uuid-utils"]
48
56
 
49
-
50
57
  [dependency-groups]
51
- benchmarks = ["sqlalchemy", "psutil", "types-psutil"]
52
- build = ["bump-my-version"]
58
+ benchmarks = ["sqlalchemy[asyncio]", "psutil", "types-psutil", "rich", "rich-click", "duckdb"]
59
+ build = ["bump-my-version", "hatch-mypyc", "pydantic-settings"]
53
60
  dev = [
54
61
  { include-group = "extras" },
55
62
  { include-group = "lint" },
@@ -76,6 +83,7 @@ doc = [
76
83
  ]
77
84
  extras = [
78
85
  "adbc_driver_manager",
86
+ "pgvector",
79
87
  "pyarrow",
80
88
  "polars",
81
89
  "adbc_driver_sqlite",
@@ -95,8 +103,11 @@ lint = [
95
103
  "types-protobuf",
96
104
  "asyncpg-stubs",
97
105
  "pyarrow-stubs",
106
+
98
107
  ]
99
108
  test = [
109
+ "aiohttp",
110
+ "requests",
100
111
  "anyio",
101
112
  "coverage>=7.6.1",
102
113
  "pytest>=8.0.0",
@@ -113,7 +124,7 @@ sqlspec = "sqlspec.__main__:run_cli"
113
124
 
114
125
  [build-system]
115
126
  build-backend = "hatchling.build"
116
- requires = ["hatchling"]
127
+ requires = ["hatchling", "hatch-mypyc"]
117
128
 
118
129
  [tool.hatch.build.targets.sdist]
119
130
  dev-mode-dirs = ["."]
@@ -127,11 +138,57 @@ include = ["NOTICE"]
127
138
  packages = ["sqlspec"]
128
139
 
129
140
 
141
+ [tool.hatch.build.targets.wheel.hooks.mypyc]
142
+ dependencies = ["hatch-mypyc", "hatch-cython"]
143
+ enable-by-default = false
144
+ exclude = [
145
+ "tests/**", # Test files
146
+ "sqlspec/__main__.py", # Entry point (can't run directly when compiled)
147
+ "sqlspec/cli.py", # CLI module (not performance critical)
148
+ "sqlspec/typing.py", # Type aliases
149
+ "sqlspec/_typing.py", # Type aliases
150
+ "sqlspec/config.py", # Main config
151
+ "sqlspec/adapters/**/config.py", # Adapter configurations
152
+ "sqlspec/adapters/**/_types.py", # Type definitions (mypyc incompatible)
153
+ "sqlspec/extensions/**", # All extensions
154
+ "sqlspec/**/__init__.py", # Init files (usually just imports)
155
+ "sqlspec/protocols.py", # Protocol definitions
156
+ "sqlspec/builder/**/*.py", # Builder (not performance critical)
157
+
158
+ ]
159
+ include = [
160
+ "sqlspec/core/**/*.py", # Core module
161
+ "sqlspec/loader.py", # Loader module
162
+
163
+ # === UTILITY MODULES ===
164
+ "sqlspec/utils/text.py", # Text utilities
165
+ "sqlspec/utils/sync_tools.py", # Synchronous utility functions
166
+ "sqlspec/utils/type_guards.py", # Type guard utilities
167
+ "sqlspec/utils/fixtures.py", # File fixture loading
168
+ ]
169
+ mypy-args = [
170
+ "--ignore-missing-imports",
171
+ "--allow-untyped-defs",
172
+ "--allow-untyped-globals",
173
+ "--no-implicit-reexport",
174
+ "--no-warn-redundant-casts",
175
+ "--no-warn-unused-ignores",
176
+ "--follow-imports=skip",
177
+ ]
178
+ require-runtime-dependencies = true
179
+ require-runtime-features = ["mypyc"]
180
+
181
+ [tool.hatch.build.targets.wheel.hooks.mypyc.options]
182
+ debug_level = "0" # No debug info in production (0-2)
183
+ multi_file = true # Enable cross-module optimization
184
+ opt_level = "3" # Maximum optimization (0-3)
185
+
186
+
130
187
  [tool.bumpversion]
131
188
  allow_dirty = true
132
189
  commit = false
133
190
  commit_args = "--no-verify"
134
- current_version = "0.14.1"
191
+ current_version = "0.15.0"
135
192
  ignore_missing_files = false
136
193
  ignore_missing_version = false
137
194
  message = "chore(release): bump to v{new_version}"
@@ -281,6 +338,8 @@ module = [
281
338
  "fsspec.*",
282
339
  "sqlglot",
283
340
  "sqlglot.*",
341
+ "pgvector",
342
+ "pgvector.*",
284
343
  ]
285
344
 
286
345
  [[tool.mypy.overrides]]
@@ -302,7 +361,8 @@ reportPrivateImportUsage = false
302
361
  reportPrivateUsage = false
303
362
  reportTypedDictNotRequiredAccess = false
304
363
  reportUnknownArgumentType = false
305
- reportUnnecessaryTypeIgnoreComments = "information"
364
+ reportUnnecessaryCast = false
365
+ reportUnnecessaryTypeIgnoreComments = false
306
366
  root = "."
307
367
  venv = ".venv"
308
368
 
@@ -376,6 +436,8 @@ ignore = [
376
436
  "S608", # ruff - Possible sql injection
377
437
  "PLR0904", # too many public methods
378
438
  "PLR6301", # method could be static or class method
439
+ "B903", # class could be a dataclass or named tuple
440
+ "PLW0603", # Using the global statement to update is discouraged
379
441
  ]
380
442
  select = ["ALL"]
381
443
 
@@ -402,7 +464,7 @@ split-on-trailing-comma = false
402
464
  [tool.ruff.lint.per-file-ignores]
403
465
  "docs/**/*.*" = ["S", "B", "DTZ", "A", "TC", "ERA", "D", "RET", "PLW0127"]
404
466
  "docs/examples/**" = ["T201"]
405
- "sqlspec/statement/builder/mixins/**/*.*" = ["SLF001"]
467
+ "sqlspec/builder/mixins/**/*.*" = ["SLF001"]
406
468
  "tests/**/*.*" = [
407
469
  "A",
408
470
  "ARG",
@@ -0,0 +1,92 @@
1
+ """SQLSpec: Safe and elegant SQL query building for Python."""
2
+
3
+ from sqlspec import adapters, base, builder, core, driver, exceptions, extensions, loader, migrations, typing, utils
4
+ from sqlspec.__metadata__ import __version__
5
+ from sqlspec._sql import SQLFactory, sql
6
+ from sqlspec.base import SQLSpec
7
+ from sqlspec.builder import (
8
+ Column,
9
+ ColumnExpression,
10
+ CreateTable,
11
+ Delete,
12
+ DropTable,
13
+ FunctionColumn,
14
+ Insert,
15
+ Merge,
16
+ QueryBuilder,
17
+ Select,
18
+ Update,
19
+ )
20
+ from sqlspec.config import AsyncDatabaseConfig, SyncDatabaseConfig
21
+ from sqlspec.core import (
22
+ SQL,
23
+ ArrowResult,
24
+ CacheConfig,
25
+ CacheStats,
26
+ ParameterConverter,
27
+ ParameterProcessor,
28
+ ParameterStyle,
29
+ ParameterStyleConfig,
30
+ SQLResult,
31
+ Statement,
32
+ StatementConfig,
33
+ )
34
+ from sqlspec.core import filters as filters
35
+ from sqlspec.driver import AsyncDriverAdapterBase, ExecutionResult, SyncDriverAdapterBase
36
+ from sqlspec.loader import SQLFile, SQLFileLoader
37
+ from sqlspec.typing import ConnectionT, DictRow, ModelDTOT, ModelT, RowT, StatementParameters, SupportedSchemaModel
38
+
39
+ __all__ = (
40
+ "SQL",
41
+ "ArrowResult",
42
+ "AsyncDatabaseConfig",
43
+ "AsyncDriverAdapterBase",
44
+ "CacheConfig",
45
+ "CacheStats",
46
+ "Column",
47
+ "ColumnExpression",
48
+ "ConnectionT",
49
+ "CreateTable",
50
+ "Delete",
51
+ "DictRow",
52
+ "DropTable",
53
+ "ExecutionResult",
54
+ "FunctionColumn",
55
+ "Insert",
56
+ "Merge",
57
+ "ModelDTOT",
58
+ "ModelT",
59
+ "ParameterConverter",
60
+ "ParameterProcessor",
61
+ "ParameterStyle",
62
+ "ParameterStyleConfig",
63
+ "QueryBuilder",
64
+ "RowT",
65
+ "SQLFactory",
66
+ "SQLFile",
67
+ "SQLFileLoader",
68
+ "SQLResult",
69
+ "SQLSpec",
70
+ "Select",
71
+ "Statement",
72
+ "StatementConfig",
73
+ "StatementParameters",
74
+ "SupportedSchemaModel",
75
+ "SyncDatabaseConfig",
76
+ "SyncDriverAdapterBase",
77
+ "Update",
78
+ "__version__",
79
+ "adapters",
80
+ "base",
81
+ "builder",
82
+ "core",
83
+ "driver",
84
+ "exceptions",
85
+ "extensions",
86
+ "filters",
87
+ "loader",
88
+ "migrations",
89
+ "sql",
90
+ "typing",
91
+ "utils",
92
+ )
@@ -4,7 +4,7 @@ __all__ = ("run_cli",)
4
4
 
5
5
 
6
6
  def run_cli() -> None: # pragma: no cover
7
- """SQLSpec CLI"""
7
+ """SQLSpec CLI."""
8
8
  build_cli_interface()()
9
9
 
10
10
 
@@ -1,4 +1,4 @@
1
- """Metadata for the Project."""
1
+ """Metadata for the project."""
2
2
 
3
3
  from importlib.metadata import PackageNotFoundError, metadata, version
4
4
 
@@ -6,9 +6,7 @@ __all__ = ("__project__", "__version__")
6
6
 
7
7
  try:
8
8
  __version__ = version("sqlspec")
9
- """Version of the project."""
10
9
  __project__ = metadata("sqlspec")["Name"]
11
- """Name of the project."""
12
10
  except PackageNotFoundError: # pragma: no cover
13
11
  __version__ = "0.0.1"
14
12
  __project__ = "SQLSpec"
@@ -15,10 +15,9 @@ def _type_to_string(value: Any) -> str: # pragma: no cover
15
15
  if PYDANTIC_INSTALLED and isinstance(value, BaseModel):
16
16
  return value.model_dump_json()
17
17
  try:
18
- val = str(value)
18
+ return str(value)
19
19
  except Exception as exc:
20
20
  raise TypeError from exc
21
- return val
22
21
 
23
22
 
24
23
  try: