sqlspec 0.31.0__tar.gz → 0.33.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.
Files changed (1030) hide show
  1. sqlspec-0.33.0/.claude/agents/docs-vision.md +822 -0
  2. sqlspec-0.33.0/.claude/agents/expert.md +585 -0
  3. sqlspec-0.33.0/.claude/commands/bootstrap.md +756 -0
  4. sqlspec-0.33.0/.claude/commands/explore.md +438 -0
  5. sqlspec-0.33.0/.claude/commands/fix-issue.md +697 -0
  6. sqlspec-0.33.0/.claude/skills/README.md +230 -0
  7. sqlspec-0.33.0/.claude/skills/sqlspec_adapters/README.md +72 -0
  8. sqlspec-0.33.0/.claude/skills/sqlspec_adapters/adbc.md +868 -0
  9. sqlspec-0.33.0/.claude/skills/sqlspec_adapters/aiosqlite.md +478 -0
  10. sqlspec-0.33.0/.claude/skills/sqlspec_adapters/asyncmy.md +558 -0
  11. sqlspec-0.33.0/.claude/skills/sqlspec_adapters/asyncpg.md +278 -0
  12. sqlspec-0.33.0/.claude/skills/sqlspec_adapters/bigquery.md +708 -0
  13. sqlspec-0.33.0/.claude/skills/sqlspec_adapters/duckdb.md +578 -0
  14. sqlspec-0.33.0/.claude/skills/sqlspec_adapters/oracledb.md +571 -0
  15. sqlspec-0.33.0/.claude/skills/sqlspec_adapters/psqlpy.md +430 -0
  16. sqlspec-0.33.0/.claude/skills/sqlspec_adapters/psycopg.md +389 -0
  17. sqlspec-0.33.0/.claude/skills/sqlspec_adapters/spanner.md +309 -0
  18. sqlspec-0.33.0/.claude/skills/sqlspec_adapters/sqlite.md +431 -0
  19. sqlspec-0.33.0/.claude/skills/sqlspec_usage/examples/fastapi_integration.py +125 -0
  20. sqlspec-0.33.0/.claude/skills/sqlspec_usage/examples/litestar_integration.py +234 -0
  21. sqlspec-0.33.0/.claude/skills/sqlspec_usage/examples/multi_database.py +150 -0
  22. sqlspec-0.33.0/.claude/skills/sqlspec_usage/examples/testing_patterns.py +232 -0
  23. sqlspec-0.33.0/.claude/skills/sqlspec_usage/patterns/configuration.md +594 -0
  24. sqlspec-0.33.0/.claude/skills/sqlspec_usage/patterns/frameworks.md +142 -0
  25. sqlspec-0.33.0/.claude/skills/sqlspec_usage/patterns/migrations.md +137 -0
  26. sqlspec-0.33.0/.claude/skills/sqlspec_usage/patterns/performance.md +323 -0
  27. sqlspec-0.33.0/.claude/skills/sqlspec_usage/patterns/testing.md +153 -0
  28. sqlspec-0.33.0/.claude/skills/sqlspec_usage/patterns/troubleshooting.md +534 -0
  29. sqlspec-0.33.0/.claude/skills/sqlspec_usage/skill.md +545 -0
  30. sqlspec-0.33.0/.gemini/bootstrap.md +3737 -0
  31. sqlspec-0.33.0/.gemini/commands/sync-guides.toml +436 -0
  32. sqlspec-0.33.0/.gemini/commands/test.toml +440 -0
  33. sqlspec-0.33.0/.pre-commit-config.yaml +53 -0
  34. sqlspec-0.33.0/AGENTS.md +698 -0
  35. sqlspec-0.33.0/Makefile +318 -0
  36. sqlspec-0.33.0/PKG-INFO +203 -0
  37. sqlspec-0.33.0/README.md +108 -0
  38. sqlspec-0.33.0/pyproject.toml +557 -0
  39. sqlspec-0.33.0/specs/guides/patterns/README.md +479 -0
  40. sqlspec-0.33.0/specs/guides/patterns/adapter-patterns.md +2210 -0
  41. sqlspec-0.33.0/specs/guides/quality-gates.yaml +63 -0
  42. sqlspec-0.33.0/sqlspec/adapters/adbc/config.py +498 -0
  43. sqlspec-0.33.0/sqlspec/adapters/adbc/driver.py +840 -0
  44. sqlspec-0.33.0/sqlspec/adapters/aiosqlite/adk/store.py +536 -0
  45. sqlspec-0.33.0/sqlspec/adapters/aiosqlite/config.py +313 -0
  46. sqlspec-0.33.0/sqlspec/adapters/aiosqlite/pool.py +519 -0
  47. sqlspec-0.33.0/sqlspec/adapters/asyncmy/adk/store.py +503 -0
  48. sqlspec-0.33.0/sqlspec/adapters/asyncmy/config.py +248 -0
  49. sqlspec-0.33.0/sqlspec/adapters/asyncmy/driver.py +632 -0
  50. sqlspec-0.33.0/sqlspec/adapters/asyncmy/litestar/store.py +296 -0
  51. sqlspec-0.33.0/sqlspec/adapters/asyncpg/_type_handlers.py +76 -0
  52. sqlspec-0.33.0/sqlspec/adapters/asyncpg/adk/store.py +460 -0
  53. sqlspec-0.33.0/sqlspec/adapters/asyncpg/config.py +475 -0
  54. sqlspec-0.33.0/sqlspec/adapters/asyncpg/litestar/store.py +253 -0
  55. sqlspec-0.33.0/sqlspec/adapters/bigquery/config.py +298 -0
  56. sqlspec-0.33.0/sqlspec/adapters/bigquery/driver.py +1073 -0
  57. sqlspec-0.33.0/sqlspec/adapters/duckdb/config.py +399 -0
  58. sqlspec-0.33.0/sqlspec/adapters/duckdb/pool.py +293 -0
  59. sqlspec-0.33.0/sqlspec/adapters/oracledb/_numpy_handlers.py +133 -0
  60. sqlspec-0.33.0/sqlspec/adapters/oracledb/_uuid_handlers.py +131 -0
  61. sqlspec-0.33.0/sqlspec/adapters/oracledb/adk/store.py +1632 -0
  62. sqlspec-0.33.0/sqlspec/adapters/oracledb/config.py +473 -0
  63. sqlspec-0.33.0/sqlspec/adapters/oracledb/driver.py +1493 -0
  64. sqlspec-0.33.0/sqlspec/adapters/oracledb/litestar/store.py +765 -0
  65. sqlspec-0.33.0/sqlspec/adapters/psqlpy/_type_handlers.py +44 -0
  66. sqlspec-0.33.0/sqlspec/adapters/psqlpy/adk/store.py +483 -0
  67. sqlspec-0.33.0/sqlspec/adapters/psqlpy/config.py +256 -0
  68. sqlspec-0.33.0/sqlspec/adapters/psqlpy/litestar/store.py +272 -0
  69. sqlspec-0.33.0/sqlspec/adapters/psycopg/_type_handlers.py +90 -0
  70. sqlspec-0.33.0/sqlspec/adapters/psycopg/adk/store.py +962 -0
  71. sqlspec-0.33.0/sqlspec/adapters/psycopg/config.py +477 -0
  72. sqlspec-0.33.0/sqlspec/adapters/psycopg/litestar/store.py +554 -0
  73. sqlspec-0.33.0/sqlspec/adapters/spanner/__init__.py +38 -0
  74. sqlspec-0.33.0/sqlspec/adapters/spanner/_type_handlers.py +186 -0
  75. sqlspec-0.33.0/sqlspec/adapters/spanner/_types.py +12 -0
  76. sqlspec-0.33.0/sqlspec/adapters/spanner/adk/__init__.py +5 -0
  77. sqlspec-0.33.0/sqlspec/adapters/spanner/adk/store.py +435 -0
  78. sqlspec-0.33.0/sqlspec/adapters/spanner/config.py +248 -0
  79. sqlspec-0.33.0/sqlspec/adapters/spanner/data_dictionary.py +95 -0
  80. sqlspec-0.33.0/sqlspec/adapters/spanner/dialect/__init__.py +6 -0
  81. sqlspec-0.33.0/sqlspec/adapters/spanner/dialect/_spangres.py +52 -0
  82. sqlspec-0.33.0/sqlspec/adapters/spanner/dialect/_spanner.py +123 -0
  83. sqlspec-0.33.0/sqlspec/adapters/spanner/driver.py +366 -0
  84. sqlspec-0.33.0/sqlspec/adapters/spanner/litestar/__init__.py +5 -0
  85. sqlspec-0.33.0/sqlspec/adapters/spanner/litestar/store.py +266 -0
  86. sqlspec-0.33.0/sqlspec/adapters/spanner/type_converter.py +46 -0
  87. sqlspec-0.33.0/sqlspec/adapters/sqlite/_type_handlers.py +83 -0
  88. sqlspec-0.33.0/sqlspec/adapters/sqlite/config.py +223 -0
  89. sqlspec-0.33.0/sqlspec/adapters/sqlite/pool.py +199 -0
  90. sqlspec-0.33.0/sqlspec/base.py +647 -0
  91. sqlspec-0.33.0/sqlspec/builder/_base.py +899 -0
  92. sqlspec-0.33.0/sqlspec/builder/_column.py +517 -0
  93. sqlspec-0.33.0/sqlspec/builder/_ddl.py +1642 -0
  94. sqlspec-0.33.0/sqlspec/builder/_dml.py +383 -0
  95. sqlspec-0.33.0/sqlspec/builder/_factory.py +1589 -0
  96. sqlspec-0.33.0/sqlspec/builder/_select.py +1615 -0
  97. sqlspec-0.33.0/sqlspec/builder/_vector_expressions.py +259 -0
  98. sqlspec-0.33.0/sqlspec/cli.py +805 -0
  99. sqlspec-0.33.0/sqlspec/config.py +1549 -0
  100. sqlspec-0.33.0/sqlspec/core/__init__.py +309 -0
  101. sqlspec-0.33.0/sqlspec/core/compiler.py +603 -0
  102. sqlspec-0.33.0/sqlspec/core/filters.py +943 -0
  103. sqlspec-0.33.0/sqlspec/core/result.py +1124 -0
  104. sqlspec-0.33.0/sqlspec/core/splitter.py +962 -0
  105. sqlspec-0.33.0/sqlspec/core/statement.py +835 -0
  106. sqlspec-0.33.0/sqlspec/driver/_async.py +1027 -0
  107. sqlspec-0.33.0/sqlspec/driver/_common.py +1240 -0
  108. sqlspec-0.33.0/sqlspec/driver/_sync.py +1025 -0
  109. sqlspec-0.33.0/sqlspec/extensions/adk/__init__.py +53 -0
  110. sqlspec-0.33.0/sqlspec/extensions/adk/service.py +181 -0
  111. sqlspec-0.33.0/sqlspec/extensions/aiosql/adapter.py +471 -0
  112. sqlspec-0.33.0/sqlspec/extensions/fastapi/extension.py +351 -0
  113. sqlspec-0.33.0/sqlspec/extensions/fastapi/providers.py +603 -0
  114. sqlspec-0.33.0/sqlspec/extensions/flask/__init__.py +36 -0
  115. sqlspec-0.33.0/sqlspec/extensions/flask/extension.py +402 -0
  116. sqlspec-0.33.0/sqlspec/extensions/litestar/cli.py +92 -0
  117. sqlspec-0.33.0/sqlspec/extensions/litestar/config.py +90 -0
  118. sqlspec-0.33.0/sqlspec/extensions/litestar/plugin.py +639 -0
  119. sqlspec-0.33.0/sqlspec/extensions/litestar/providers.py +526 -0
  120. sqlspec-0.33.0/sqlspec/extensions/litestar/store.py +265 -0
  121. sqlspec-0.33.0/sqlspec/extensions/starlette/extension.py +257 -0
  122. sqlspec-0.33.0/sqlspec/loader.py +698 -0
  123. sqlspec-0.33.0/sqlspec/migrations/commands.py +1138 -0
  124. sqlspec-0.33.0/sqlspec/migrations/fix.py +204 -0
  125. sqlspec-0.33.0/sqlspec/migrations/utils.py +256 -0
  126. sqlspec-0.33.0/sqlspec/observability/_observer.py +260 -0
  127. sqlspec-0.33.0/sqlspec/observability/_runtime.py +402 -0
  128. sqlspec-0.33.0/sqlspec/observability/_spans.py +185 -0
  129. sqlspec-0.33.0/sqlspec/protocols.py +592 -0
  130. sqlspec-0.33.0/sqlspec/storage/backends/fsspec.py +438 -0
  131. sqlspec-0.33.0/sqlspec/storage/backends/local.py +415 -0
  132. sqlspec-0.33.0/sqlspec/storage/backends/obstore.py +707 -0
  133. sqlspec-0.33.0/sqlspec/storage/errors.py +104 -0
  134. sqlspec-0.33.0/sqlspec/storage/registry.py +289 -0
  135. sqlspec-0.33.0/sqlspec/utils/__init__.py +7 -0
  136. sqlspec-0.33.0/sqlspec/utils/config_discovery.py +108 -0
  137. sqlspec-0.33.0/sqlspec/utils/config_normalization.py +105 -0
  138. sqlspec-0.33.0/sqlspec/utils/config_resolver.py +153 -0
  139. sqlspec-0.33.0/sqlspec/utils/correlation.py +134 -0
  140. sqlspec-0.33.0/sqlspec/utils/deprecation.py +115 -0
  141. sqlspec-0.33.0/sqlspec/utils/logging.py +190 -0
  142. sqlspec-0.33.0/sqlspec/utils/schema.py +288 -0
  143. sqlspec-0.33.0/sqlspec/utils/version.py +445 -0
  144. sqlspec-0.33.0/tests/__init__.py +1 -0
  145. sqlspec-0.33.0/tests/conftest.py +66 -0
  146. sqlspec-0.33.0/tests/integration/test_adapters/test_adbc/test_migrations.py +293 -0
  147. sqlspec-0.33.0/tests/integration/test_adapters/test_adbc/test_vector_functions.py +318 -0
  148. sqlspec-0.33.0/tests/integration/test_adapters/test_aiosqlite/conftest.py +75 -0
  149. sqlspec-0.33.0/tests/integration/test_adapters/test_aiosqlite/test_connection.py +288 -0
  150. sqlspec-0.33.0/tests/integration/test_adapters/test_aiosqlite/test_extensions/test_litestar/test_numpy_serialization.py +254 -0
  151. sqlspec-0.33.0/tests/integration/test_adapters/test_aiosqlite/test_extensions/test_litestar/test_store.py +234 -0
  152. sqlspec-0.33.0/tests/integration/test_adapters/test_aiosqlite/test_migrations.py +334 -0
  153. sqlspec-0.33.0/tests/integration/test_adapters/test_aiosqlite/test_parameter_styles.py +379 -0
  154. sqlspec-0.33.0/tests/integration/test_adapters/test_aiosqlite/test_pooling.py +192 -0
  155. sqlspec-0.33.0/tests/integration/test_adapters/test_asyncmy/conftest.py +84 -0
  156. sqlspec-0.33.0/tests/integration/test_adapters/test_asyncmy/test_asyncmy_features.py +284 -0
  157. sqlspec-0.33.0/tests/integration/test_adapters/test_asyncmy/test_config.py +220 -0
  158. sqlspec-0.33.0/tests/integration/test_adapters/test_asyncmy/test_driver.py +511 -0
  159. sqlspec-0.33.0/tests/integration/test_adapters/test_asyncmy/test_exceptions.py +137 -0
  160. sqlspec-0.33.0/tests/integration/test_adapters/test_asyncmy/test_extensions/test_adk/conftest.py +104 -0
  161. sqlspec-0.33.0/tests/integration/test_adapters/test_asyncmy/test_extensions/test_litestar/test_store.py +252 -0
  162. sqlspec-0.33.0/tests/integration/test_adapters/test_asyncmy/test_migrations.py +405 -0
  163. sqlspec-0.33.0/tests/integration/test_adapters/test_asyncmy/test_parameter_styles.py +696 -0
  164. sqlspec-0.33.0/tests/integration/test_adapters/test_asyncpg/conftest.py +40 -0
  165. sqlspec-0.33.0/tests/integration/test_adapters/test_asyncpg/test_cloud_connectors_integration.py +205 -0
  166. sqlspec-0.33.0/tests/integration/test_adapters/test_asyncpg/test_connection.py +46 -0
  167. sqlspec-0.33.0/tests/integration/test_adapters/test_asyncpg/test_driver.py +885 -0
  168. sqlspec-0.33.0/tests/integration/test_adapters/test_asyncpg/test_extensions/test_adk/conftest.py +68 -0
  169. sqlspec-0.33.0/tests/integration/test_adapters/test_asyncpg/test_extensions/test_adk/test_owner_id_column.py +411 -0
  170. sqlspec-0.33.0/tests/integration/test_adapters/test_asyncpg/test_migrations.py +648 -0
  171. sqlspec-0.33.0/tests/integration/test_adapters/test_asyncpg/test_schema_migration.py +323 -0
  172. sqlspec-0.33.0/tests/integration/test_adapters/test_asyncpg/test_vector_functions.py +280 -0
  173. sqlspec-0.33.0/tests/integration/test_adapters/test_bigquery/test_driver.py +531 -0
  174. sqlspec-0.33.0/tests/integration/test_adapters/test_bigquery/test_vector_functions.py +211 -0
  175. sqlspec-0.33.0/tests/integration/test_adapters/test_duckdb/conftest.py +26 -0
  176. sqlspec-0.33.0/tests/integration/test_adapters/test_duckdb/test_connection.py +394 -0
  177. sqlspec-0.33.0/tests/integration/test_adapters/test_duckdb/test_driver_features.py +156 -0
  178. sqlspec-0.33.0/tests/integration/test_adapters/test_duckdb/test_exceptions.py +128 -0
  179. sqlspec-0.33.0/tests/integration/test_adapters/test_duckdb/test_extensions/test_adk/test_store.py +692 -0
  180. sqlspec-0.33.0/tests/integration/test_adapters/test_duckdb/test_extensions/test_litestar/test_store.py +273 -0
  181. sqlspec-0.33.0/tests/integration/test_adapters/test_duckdb/test_migrations.py +284 -0
  182. sqlspec-0.33.0/tests/integration/test_adapters/test_duckdb/test_mixed_parameter_styles.py +151 -0
  183. sqlspec-0.33.0/tests/integration/test_adapters/test_duckdb/test_parameter_styles.py +888 -0
  184. sqlspec-0.33.0/tests/integration/test_adapters/test_duckdb/test_pooling.py +128 -0
  185. sqlspec-0.33.0/tests/integration/test_adapters/test_duckdb/test_vector_functions.py +280 -0
  186. sqlspec-0.33.0/tests/integration/test_adapters/test_oracledb/conftest.py +59 -0
  187. sqlspec-0.33.0/tests/integration/test_adapters/test_oracledb/test_connection.py +108 -0
  188. sqlspec-0.33.0/tests/integration/test_adapters/test_oracledb/test_driver_async.py +489 -0
  189. sqlspec-0.33.0/tests/integration/test_adapters/test_oracledb/test_driver_sync.py +483 -0
  190. sqlspec-0.33.0/tests/integration/test_adapters/test_oracledb/test_exceptions.py +142 -0
  191. sqlspec-0.33.0/tests/integration/test_adapters/test_oracledb/test_extensions/test_adk/test_inmemory.py +416 -0
  192. sqlspec-0.33.0/tests/integration/test_adapters/test_oracledb/test_extensions/test_adk/test_oracle_specific.py +530 -0
  193. sqlspec-0.33.0/tests/integration/test_adapters/test_oracledb/test_extensions/test_litestar/test_inmemory.py +282 -0
  194. sqlspec-0.33.0/tests/integration/test_adapters/test_oracledb/test_extensions/test_litestar/test_store_async.py +248 -0
  195. sqlspec-0.33.0/tests/integration/test_adapters/test_oracledb/test_extensions/test_litestar/test_store_sync.py +248 -0
  196. sqlspec-0.33.0/tests/integration/test_adapters/test_oracledb/test_merge.py +349 -0
  197. sqlspec-0.33.0/tests/integration/test_adapters/test_oracledb/test_migrations.py +927 -0
  198. sqlspec-0.33.0/tests/integration/test_adapters/test_oracledb/test_numpy_vectors.py +378 -0
  199. sqlspec-0.33.0/tests/integration/test_adapters/test_oracledb/test_uuid_binary.py +354 -0
  200. sqlspec-0.33.0/tests/integration/test_adapters/test_oracledb/test_vector_functions.py +233 -0
  201. sqlspec-0.33.0/tests/integration/test_adapters/test_psqlpy/conftest.py +58 -0
  202. sqlspec-0.33.0/tests/integration/test_adapters/test_psqlpy/test_migrations.py +372 -0
  203. sqlspec-0.33.0/tests/integration/test_adapters/test_psqlpy/test_vector_functions.py +233 -0
  204. sqlspec-0.33.0/tests/integration/test_adapters/test_psycopg/conftest.py +40 -0
  205. sqlspec-0.33.0/tests/integration/test_adapters/test_psycopg/test_arrow.py +194 -0
  206. sqlspec-0.33.0/tests/integration/test_adapters/test_psycopg/test_async_copy.py +203 -0
  207. sqlspec-0.33.0/tests/integration/test_adapters/test_psycopg/test_connection.py +68 -0
  208. sqlspec-0.33.0/tests/integration/test_adapters/test_psycopg/test_exceptions.py +161 -0
  209. sqlspec-0.33.0/tests/integration/test_adapters/test_psycopg/test_execute_many.py +325 -0
  210. sqlspec-0.33.0/tests/integration/test_adapters/test_psycopg/test_extensions/test_adk/test_owner_id_column.py +180 -0
  211. sqlspec-0.33.0/tests/integration/test_adapters/test_psycopg/test_extensions/test_litestar/test_store_sync.py +267 -0
  212. sqlspec-0.33.0/tests/integration/test_adapters/test_psycopg/test_migrations.py +743 -0
  213. sqlspec-0.33.0/tests/integration/test_adapters/test_psycopg/test_parameter_styles.py +1033 -0
  214. sqlspec-0.33.0/tests/integration/test_adapters/test_psycopg/test_vector_functions.py +234 -0
  215. sqlspec-0.33.0/tests/integration/test_adapters/test_spanner/conftest.py +133 -0
  216. sqlspec-0.33.0/tests/integration/test_adapters/test_spanner/test_arrow.py +133 -0
  217. sqlspec-0.33.0/tests/integration/test_adapters/test_spanner/test_bytes_direct.py +76 -0
  218. sqlspec-0.33.0/tests/integration/test_adapters/test_spanner/test_connection.py +17 -0
  219. sqlspec-0.33.0/tests/integration/test_adapters/test_spanner/test_crud_operations.py +199 -0
  220. sqlspec-0.33.0/tests/integration/test_adapters/test_spanner/test_driver.py +340 -0
  221. sqlspec-0.33.0/tests/integration/test_adapters/test_spanner/test_exceptions.py +118 -0
  222. sqlspec-0.33.0/tests/integration/test_adapters/test_spanner/test_execute_many.py +224 -0
  223. sqlspec-0.33.0/tests/integration/test_adapters/test_spanner/test_extensions/test_adk/conftest.py +36 -0
  224. sqlspec-0.33.0/tests/integration/test_adapters/test_spanner/test_extensions/test_adk/test_adk_store.py +75 -0
  225. sqlspec-0.33.0/tests/integration/test_adapters/test_spanner/test_extensions/test_litestar/conftest.py +39 -0
  226. sqlspec-0.33.0/tests/integration/test_adapters/test_spanner/test_extensions/test_litestar/test_litestar_store.py +44 -0
  227. sqlspec-0.33.0/tests/integration/test_adapters/test_spanner/test_parameter_styles.py +261 -0
  228. sqlspec-0.33.0/tests/integration/test_adapters/test_spanner/test_spangres_driver.py +69 -0
  229. sqlspec-0.33.0/tests/integration/test_adapters/test_spanner/test_spangres_parameter_styles.py +68 -0
  230. sqlspec-0.33.0/tests/integration/test_adapters/test_sqlite/conftest.py +132 -0
  231. sqlspec-0.33.0/tests/integration/test_adapters/test_sqlite/test_driver_features.py +113 -0
  232. sqlspec-0.33.0/tests/integration/test_adapters/test_sqlite/test_extensions/test_adk/test_owner_id_column.py +386 -0
  233. sqlspec-0.33.0/tests/integration/test_adapters/test_sqlite/test_extensions/test_litestar/test_store.py +253 -0
  234. sqlspec-0.33.0/tests/integration/test_adapters/test_sqlite/test_migrations.py +492 -0
  235. sqlspec-0.33.0/tests/integration/test_adapters/test_sqlite/test_parameter_styles.py +417 -0
  236. sqlspec-0.33.0/tests/integration/test_adapters/test_sqlite/test_pooling.py +277 -0
  237. sqlspec-0.33.0/tests/integration/test_async_migrations.py +296 -0
  238. sqlspec-0.33.0/tests/integration/test_cli/test_sync_adapter_cli.py +290 -0
  239. sqlspec-0.33.0/tests/integration/test_cli_config_discovery.py +566 -0
  240. sqlspec-0.33.0/tests/integration/test_config/conftest.py +18 -0
  241. sqlspec-0.33.0/tests/integration/test_config/test_connection_instance_injection.py +347 -0
  242. sqlspec-0.33.0/tests/integration/test_dishka/conftest.py +115 -0
  243. sqlspec-0.33.0/tests/integration/test_dishka/test_dishka_integration.py +472 -0
  244. sqlspec-0.33.0/tests/integration/test_extensions/test_fastapi/test_fastapi_filters_integration.py +395 -0
  245. sqlspec-0.33.0/tests/integration/test_extensions/test_fastapi/test_fastapi_integration.py +284 -0
  246. sqlspec-0.33.0/tests/integration/test_extensions/test_flask/test_flask_disable_di.py +80 -0
  247. sqlspec-0.33.0/tests/integration/test_extensions/test_flask/test_flask_integration.py +316 -0
  248. sqlspec-0.33.0/tests/integration/test_extensions/test_litestar/test_correlation_middleware.py +101 -0
  249. sqlspec-0.33.0/tests/integration/test_extensions/test_litestar/test_litestar_disable_di.py +69 -0
  250. sqlspec-0.33.0/tests/integration/test_extensions/test_starlette/test_starlette_disable_di.py +70 -0
  251. sqlspec-0.33.0/tests/integration/test_extensions/test_starlette/test_starlette_integration.py +225 -0
  252. sqlspec-0.33.0/tests/integration/test_loader/test_file_system_loading.py +756 -0
  253. sqlspec-0.33.0/tests/integration/test_migrations/test_auto_sync.py +333 -0
  254. sqlspec-0.33.0/tests/integration/test_migrations/test_fix_checksum_stability.py +203 -0
  255. sqlspec-0.33.0/tests/integration/test_migrations/test_fix_idempotency_workflow.py +353 -0
  256. sqlspec-0.33.0/tests/integration/test_migrations/test_schema_migration.py +311 -0
  257. sqlspec-0.33.0/tests/integration/test_migrations/test_upgrade_downgrade_versions.py +411 -0
  258. sqlspec-0.33.0/tests/integration/test_stack_edge_cases.py +183 -0
  259. sqlspec-0.33.0/tests/integration/test_storage/test_storage_integration.py +902 -0
  260. sqlspec-0.33.0/tests/unit/__init__.py +1 -0
  261. sqlspec-0.33.0/tests/unit/test_adapters/test_adbc/test_adbc_config_normalization.py +104 -0
  262. sqlspec-0.33.0/tests/unit/test_adapters/test_asyncpg/test_cloud_connectors.py +546 -0
  263. sqlspec-0.33.0/tests/unit/test_adapters/test_bigquery/test_execute_many.py +83 -0
  264. sqlspec-0.33.0/tests/unit/test_adapters/test_duckdb/test_extension_flags.py +42 -0
  265. sqlspec-0.33.0/tests/unit/test_adapters/test_extension_config.py +214 -0
  266. sqlspec-0.33.0/tests/unit/test_adapters/test_psycopg/__init__.py +1 -0
  267. sqlspec-0.33.0/tests/unit/test_adapters/test_spanner/__init__.py +1 -0
  268. sqlspec-0.33.0/tests/unit/test_adapters/test_spanner/conftest.py +3 -0
  269. sqlspec-0.33.0/tests/unit/test_adapters/test_spanner/test_config.py +209 -0
  270. sqlspec-0.33.0/tests/unit/test_adapters/test_spanner/test_dialect.py +801 -0
  271. sqlspec-0.33.0/tests/unit/test_adapters/test_spanner/test_driver.py +79 -0
  272. sqlspec-0.33.0/tests/unit/test_adapters/test_spanner/test_litestar_store.py +124 -0
  273. sqlspec-0.33.0/tests/unit/test_adapters/test_spanner/test_type_converter.py +30 -0
  274. sqlspec-0.33.0/tests/unit/test_base/test_config_instances.py +487 -0
  275. sqlspec-0.33.0/tests/unit/test_base/test_sql_integration.py +301 -0
  276. sqlspec-0.33.0/tests/unit/test_builder/test_merge_factory_table_arg.py +26 -0
  277. sqlspec-0.33.0/tests/unit/test_builder/test_to_sql_edge_cases.py +286 -0
  278. sqlspec-0.33.0/tests/unit/test_builder/test_vector_functions.py +556 -0
  279. sqlspec-0.33.0/tests/unit/test_cli/test_config_loading.py +153 -0
  280. sqlspec-0.33.0/tests/unit/test_cli/test_migration_commands.py +770 -0
  281. sqlspec-0.33.0/tests/unit/test_config/test_connection_config_edge_cases.py +426 -0
  282. sqlspec-0.33.0/tests/unit/test_config/test_connection_config_parameters.py +544 -0
  283. sqlspec-0.33.0/tests/unit/test_config/test_migration_methods.py +507 -0
  284. sqlspec-0.33.0/tests/unit/test_config_deprecation.py +243 -0
  285. sqlspec-0.33.0/tests/unit/test_config_discovery.py +265 -0
  286. sqlspec-0.33.0/tests/unit/test_config_resolver.py +263 -0
  287. sqlspec-0.33.0/tests/unit/test_core/test_filters.py +509 -0
  288. sqlspec-0.33.0/tests/unit/test_dialects/test_spangres.py +32 -0
  289. sqlspec-0.33.0/tests/unit/test_dialects/test_spanner.py +113 -0
  290. sqlspec-0.33.0/tests/unit/test_driver/test_create_count_query.py +34 -0
  291. sqlspec-0.33.0/tests/unit/test_driver/test_fetch_aliases.py +507 -0
  292. sqlspec-0.33.0/tests/unit/test_extensions/test_fastapi/test_extension.py +95 -0
  293. sqlspec-0.33.0/tests/unit/test_extensions/test_flask/test_extension.py +100 -0
  294. sqlspec-0.33.0/tests/unit/test_extensions/test_litestar/test_correlation_middleware.py +30 -0
  295. sqlspec-0.33.0/tests/unit/test_extensions/test_litestar/test_handlers.py +301 -0
  296. sqlspec-0.33.0/tests/unit/test_extensions/test_starlette/test_extension.py +73 -0
  297. sqlspec-0.33.0/tests/unit/test_loader/test_cache_integration.py +627 -0
  298. sqlspec-0.33.0/tests/unit/test_loader/test_correlation_preserved.py +19 -0
  299. sqlspec-0.33.0/tests/unit/test_loader/test_loading_patterns.py +789 -0
  300. sqlspec-0.33.0/tests/unit/test_loader/test_sql_file_loader.py +1016 -0
  301. sqlspec-0.33.0/tests/unit/test_logging_utils.py +51 -0
  302. sqlspec-0.33.0/tests/unit/test_migrations/test_extension_discovery.py +80 -0
  303. sqlspec-0.33.0/tests/unit/test_migrations/test_migration.py +702 -0
  304. sqlspec-0.33.0/tests/unit/test_migrations/test_migration_commands.py +382 -0
  305. sqlspec-0.33.0/tests/unit/test_migrations/test_migration_context.py +38 -0
  306. sqlspec-0.33.0/tests/unit/test_migrations/test_migration_execution.py +627 -0
  307. sqlspec-0.33.0/tests/unit/test_migrations/test_migration_runner.py +883 -0
  308. sqlspec-0.33.0/tests/unit/test_migrations/test_null_handling_fixes.py +107 -0
  309. sqlspec-0.33.0/tests/unit/test_migrations/test_utils.py +385 -0
  310. sqlspec-0.33.0/tests/unit/test_observability.py +502 -0
  311. sqlspec-0.33.0/tests/unit/test_observability_statement_logging.py +67 -0
  312. sqlspec-0.33.0/tests/unit/test_sql_result_conversion.py +159 -0
  313. sqlspec-0.33.0/tests/unit/test_storage/test_fsspec_backend.py +481 -0
  314. sqlspec-0.33.0/tests/unit/test_storage/test_local_store.py +446 -0
  315. sqlspec-0.33.0/tests/unit/test_storage/test_obstore_backend.py +470 -0
  316. sqlspec-0.33.0/tests/unit/test_storage/test_storage_registry.py +248 -0
  317. sqlspec-0.33.0/tests/unit/test_utils/test_fixtures.py +498 -0
  318. sqlspec-0.33.0/tests/unit/test_utils/test_logging.py +664 -0
  319. sqlspec-0.33.0/uv.lock +7461 -0
  320. sqlspec-0.31.0/.claude/agents/docs-vision.md +0 -822
  321. sqlspec-0.31.0/.claude/agents/expert.md +0 -585
  322. sqlspec-0.31.0/.claude/skills/README.md +0 -229
  323. sqlspec-0.31.0/.claude/skills/sqlspec_adapters/README.md +0 -70
  324. sqlspec-0.31.0/.claude/skills/sqlspec_adapters/asyncpg.md +0 -278
  325. sqlspec-0.31.0/.claude/skills/sqlspec_usage/examples/fastapi_integration.py +0 -125
  326. sqlspec-0.31.0/.claude/skills/sqlspec_usage/examples/litestar_integration.py +0 -234
  327. sqlspec-0.31.0/.claude/skills/sqlspec_usage/examples/multi_database.py +0 -147
  328. sqlspec-0.31.0/.claude/skills/sqlspec_usage/examples/testing_patterns.py +0 -232
  329. sqlspec-0.31.0/.claude/skills/sqlspec_usage/patterns/configuration.md +0 -594
  330. sqlspec-0.31.0/.claude/skills/sqlspec_usage/patterns/frameworks.md +0 -142
  331. sqlspec-0.31.0/.claude/skills/sqlspec_usage/patterns/migrations.md +0 -137
  332. sqlspec-0.31.0/.claude/skills/sqlspec_usage/patterns/performance.md +0 -323
  333. sqlspec-0.31.0/.claude/skills/sqlspec_usage/patterns/testing.md +0 -153
  334. sqlspec-0.31.0/.claude/skills/sqlspec_usage/patterns/troubleshooting.md +0 -534
  335. sqlspec-0.31.0/.claude/skills/sqlspec_usage/skill.md +0 -545
  336. sqlspec-0.31.0/.gemini/bootstrap.md +0 -3737
  337. sqlspec-0.31.0/.gemini/commands/sync-guides.toml +0 -436
  338. sqlspec-0.31.0/.gemini/commands/test.toml +0 -440
  339. sqlspec-0.31.0/.pre-commit-config.yaml +0 -53
  340. sqlspec-0.31.0/AGENTS.md +0 -253
  341. sqlspec-0.31.0/Makefile +0 -293
  342. sqlspec-0.31.0/PKG-INFO +0 -202
  343. sqlspec-0.31.0/README.md +0 -108
  344. sqlspec-0.31.0/pyproject.toml +0 -541
  345. sqlspec-0.31.0/sqlspec/adapters/adbc/config.py +0 -436
  346. sqlspec-0.31.0/sqlspec/adapters/adbc/driver.py +0 -837
  347. sqlspec-0.31.0/sqlspec/adapters/aiosqlite/adk/store.py +0 -536
  348. sqlspec-0.31.0/sqlspec/adapters/aiosqlite/config.py +0 -310
  349. sqlspec-0.31.0/sqlspec/adapters/aiosqlite/pool.py +0 -500
  350. sqlspec-0.31.0/sqlspec/adapters/asyncmy/adk/store.py +0 -503
  351. sqlspec-0.31.0/sqlspec/adapters/asyncmy/config.py +0 -246
  352. sqlspec-0.31.0/sqlspec/adapters/asyncmy/driver.py +0 -632
  353. sqlspec-0.31.0/sqlspec/adapters/asyncmy/litestar/store.py +0 -296
  354. sqlspec-0.31.0/sqlspec/adapters/asyncpg/_type_handlers.py +0 -76
  355. sqlspec-0.31.0/sqlspec/adapters/asyncpg/adk/store.py +0 -460
  356. sqlspec-0.31.0/sqlspec/adapters/asyncpg/config.py +0 -464
  357. sqlspec-0.31.0/sqlspec/adapters/asyncpg/litestar/store.py +0 -253
  358. sqlspec-0.31.0/sqlspec/adapters/bigquery/config.py +0 -298
  359. sqlspec-0.31.0/sqlspec/adapters/bigquery/driver.py +0 -975
  360. sqlspec-0.31.0/sqlspec/adapters/duckdb/config.py +0 -396
  361. sqlspec-0.31.0/sqlspec/adapters/duckdb/pool.py +0 -273
  362. sqlspec-0.31.0/sqlspec/adapters/oracledb/_numpy_handlers.py +0 -133
  363. sqlspec-0.31.0/sqlspec/adapters/oracledb/_uuid_handlers.py +0 -130
  364. sqlspec-0.31.0/sqlspec/adapters/oracledb/adk/store.py +0 -1632
  365. sqlspec-0.31.0/sqlspec/adapters/oracledb/config.py +0 -469
  366. sqlspec-0.31.0/sqlspec/adapters/oracledb/driver.py +0 -1493
  367. sqlspec-0.31.0/sqlspec/adapters/oracledb/litestar/store.py +0 -765
  368. sqlspec-0.31.0/sqlspec/adapters/psqlpy/_type_handlers.py +0 -44
  369. sqlspec-0.31.0/sqlspec/adapters/psqlpy/adk/store.py +0 -483
  370. sqlspec-0.31.0/sqlspec/adapters/psqlpy/config.py +0 -271
  371. sqlspec-0.31.0/sqlspec/adapters/psqlpy/litestar/store.py +0 -272
  372. sqlspec-0.31.0/sqlspec/adapters/psycopg/_type_handlers.py +0 -90
  373. sqlspec-0.31.0/sqlspec/adapters/psycopg/adk/store.py +0 -962
  374. sqlspec-0.31.0/sqlspec/adapters/psycopg/config.py +0 -487
  375. sqlspec-0.31.0/sqlspec/adapters/psycopg/litestar/store.py +0 -554
  376. sqlspec-0.31.0/sqlspec/adapters/sqlite/_type_handlers.py +0 -86
  377. sqlspec-0.31.0/sqlspec/adapters/sqlite/config.py +0 -221
  378. sqlspec-0.31.0/sqlspec/adapters/sqlite/pool.py +0 -140
  379. sqlspec-0.31.0/sqlspec/base.py +0 -811
  380. sqlspec-0.31.0/sqlspec/builder/_base.py +0 -886
  381. sqlspec-0.31.0/sqlspec/builder/_column.py +0 -364
  382. sqlspec-0.31.0/sqlspec/builder/_ddl.py +0 -1642
  383. sqlspec-0.31.0/sqlspec/builder/_dml.py +0 -381
  384. sqlspec-0.31.0/sqlspec/builder/_factory.py +0 -1537
  385. sqlspec-0.31.0/sqlspec/builder/_select.py +0 -1606
  386. sqlspec-0.31.0/sqlspec/cli.py +0 -615
  387. sqlspec-0.31.0/sqlspec/config.py +0 -1518
  388. sqlspec-0.31.0/sqlspec/core/__init__.py +0 -305
  389. sqlspec-0.31.0/sqlspec/core/compiler.py +0 -603
  390. sqlspec-0.31.0/sqlspec/core/filters.py +0 -872
  391. sqlspec-0.31.0/sqlspec/core/result.py +0 -1053
  392. sqlspec-0.31.0/sqlspec/core/splitter.py +0 -940
  393. sqlspec-0.31.0/sqlspec/core/statement.py +0 -835
  394. sqlspec-0.31.0/sqlspec/driver/_async.py +0 -773
  395. sqlspec-0.31.0/sqlspec/driver/_common.py +0 -1236
  396. sqlspec-0.31.0/sqlspec/driver/_sync.py +0 -773
  397. sqlspec-0.31.0/sqlspec/extensions/adk/__init__.py +0 -53
  398. sqlspec-0.31.0/sqlspec/extensions/adk/service.py +0 -181
  399. sqlspec-0.31.0/sqlspec/extensions/aiosql/adapter.py +0 -471
  400. sqlspec-0.31.0/sqlspec/extensions/fastapi/extension.py +0 -341
  401. sqlspec-0.31.0/sqlspec/extensions/fastapi/providers.py +0 -543
  402. sqlspec-0.31.0/sqlspec/extensions/flask/__init__.py +0 -36
  403. sqlspec-0.31.0/sqlspec/extensions/flask/extension.py +0 -402
  404. sqlspec-0.31.0/sqlspec/extensions/litestar/cli.py +0 -92
  405. sqlspec-0.31.0/sqlspec/extensions/litestar/config.py +0 -66
  406. sqlspec-0.31.0/sqlspec/extensions/litestar/plugin.py +0 -633
  407. sqlspec-0.31.0/sqlspec/extensions/litestar/providers.py +0 -454
  408. sqlspec-0.31.0/sqlspec/extensions/litestar/store.py +0 -265
  409. sqlspec-0.31.0/sqlspec/extensions/starlette/extension.py +0 -257
  410. sqlspec-0.31.0/sqlspec/loader.py +0 -716
  411. sqlspec-0.31.0/sqlspec/migrations/commands.py +0 -1140
  412. sqlspec-0.31.0/sqlspec/migrations/fix.py +0 -203
  413. sqlspec-0.31.0/sqlspec/migrations/utils.py +0 -256
  414. sqlspec-0.31.0/sqlspec/observability/_observer.py +0 -180
  415. sqlspec-0.31.0/sqlspec/observability/_runtime.py +0 -381
  416. sqlspec-0.31.0/sqlspec/observability/_spans.py +0 -158
  417. sqlspec-0.31.0/sqlspec/protocols.py +0 -530
  418. sqlspec-0.31.0/sqlspec/storage/backends/fsspec.py +0 -398
  419. sqlspec-0.31.0/sqlspec/storage/backends/local.py +0 -377
  420. sqlspec-0.31.0/sqlspec/storage/backends/obstore.py +0 -580
  421. sqlspec-0.31.0/sqlspec/storage/errors.py +0 -104
  422. sqlspec-0.31.0/sqlspec/storage/registry.py +0 -289
  423. sqlspec-0.31.0/sqlspec/utils/__init__.py +0 -31
  424. sqlspec-0.31.0/sqlspec/utils/config_resolver.py +0 -153
  425. sqlspec-0.31.0/sqlspec/utils/correlation.py +0 -132
  426. sqlspec-0.31.0/sqlspec/utils/deprecation.py +0 -113
  427. sqlspec-0.31.0/sqlspec/utils/logging.py +0 -172
  428. sqlspec-0.31.0/sqlspec/utils/schema.py +0 -288
  429. sqlspec-0.31.0/sqlspec/utils/version.py +0 -444
  430. sqlspec-0.31.0/tests/conftest.py +0 -42
  431. sqlspec-0.31.0/tests/integration/test_adapters/test_adbc/test_migrations.py +0 -303
  432. sqlspec-0.31.0/tests/integration/test_adapters/test_aiosqlite/conftest.py +0 -75
  433. sqlspec-0.31.0/tests/integration/test_adapters/test_aiosqlite/test_connection.py +0 -288
  434. sqlspec-0.31.0/tests/integration/test_adapters/test_aiosqlite/test_extensions/test_litestar/test_numpy_serialization.py +0 -254
  435. sqlspec-0.31.0/tests/integration/test_adapters/test_aiosqlite/test_extensions/test_litestar/test_store.py +0 -234
  436. sqlspec-0.31.0/tests/integration/test_adapters/test_aiosqlite/test_migrations.py +0 -345
  437. sqlspec-0.31.0/tests/integration/test_adapters/test_aiosqlite/test_parameter_styles.py +0 -379
  438. sqlspec-0.31.0/tests/integration/test_adapters/test_aiosqlite/test_pooling.py +0 -187
  439. sqlspec-0.31.0/tests/integration/test_adapters/test_asyncmy/conftest.py +0 -84
  440. sqlspec-0.31.0/tests/integration/test_adapters/test_asyncmy/test_asyncmy_features.py +0 -284
  441. sqlspec-0.31.0/tests/integration/test_adapters/test_asyncmy/test_config.py +0 -220
  442. sqlspec-0.31.0/tests/integration/test_adapters/test_asyncmy/test_driver.py +0 -511
  443. sqlspec-0.31.0/tests/integration/test_adapters/test_asyncmy/test_exceptions.py +0 -137
  444. sqlspec-0.31.0/tests/integration/test_adapters/test_asyncmy/test_extensions/test_adk/conftest.py +0 -104
  445. sqlspec-0.31.0/tests/integration/test_adapters/test_asyncmy/test_extensions/test_litestar/test_store.py +0 -252
  446. sqlspec-0.31.0/tests/integration/test_adapters/test_asyncmy/test_migrations.py +0 -411
  447. sqlspec-0.31.0/tests/integration/test_adapters/test_asyncmy/test_parameter_styles.py +0 -696
  448. sqlspec-0.31.0/tests/integration/test_adapters/test_asyncpg/conftest.py +0 -40
  449. sqlspec-0.31.0/tests/integration/test_adapters/test_asyncpg/test_cloud_connectors_integration.py +0 -205
  450. sqlspec-0.31.0/tests/integration/test_adapters/test_asyncpg/test_connection.py +0 -46
  451. sqlspec-0.31.0/tests/integration/test_adapters/test_asyncpg/test_driver.py +0 -885
  452. sqlspec-0.31.0/tests/integration/test_adapters/test_asyncpg/test_extensions/test_adk/conftest.py +0 -68
  453. sqlspec-0.31.0/tests/integration/test_adapters/test_asyncpg/test_extensions/test_adk/test_owner_id_column.py +0 -411
  454. sqlspec-0.31.0/tests/integration/test_adapters/test_asyncpg/test_migrations.py +0 -682
  455. sqlspec-0.31.0/tests/integration/test_adapters/test_asyncpg/test_schema_migration.py +0 -323
  456. sqlspec-0.31.0/tests/integration/test_adapters/test_bigquery/test_driver.py +0 -466
  457. sqlspec-0.31.0/tests/integration/test_adapters/test_duckdb/conftest.py +0 -26
  458. sqlspec-0.31.0/tests/integration/test_adapters/test_duckdb/test_connection.py +0 -394
  459. sqlspec-0.31.0/tests/integration/test_adapters/test_duckdb/test_driver_features.py +0 -156
  460. sqlspec-0.31.0/tests/integration/test_adapters/test_duckdb/test_exceptions.py +0 -128
  461. sqlspec-0.31.0/tests/integration/test_adapters/test_duckdb/test_extensions/test_adk/test_store.py +0 -692
  462. sqlspec-0.31.0/tests/integration/test_adapters/test_duckdb/test_extensions/test_litestar/test_store.py +0 -272
  463. sqlspec-0.31.0/tests/integration/test_adapters/test_duckdb/test_migrations.py +0 -292
  464. sqlspec-0.31.0/tests/integration/test_adapters/test_duckdb/test_mixed_parameter_styles.py +0 -151
  465. sqlspec-0.31.0/tests/integration/test_adapters/test_duckdb/test_parameter_styles.py +0 -888
  466. sqlspec-0.31.0/tests/integration/test_adapters/test_duckdb/test_pooling.py +0 -128
  467. sqlspec-0.31.0/tests/integration/test_adapters/test_oracledb/conftest.py +0 -59
  468. sqlspec-0.31.0/tests/integration/test_adapters/test_oracledb/test_connection.py +0 -108
  469. sqlspec-0.31.0/tests/integration/test_adapters/test_oracledb/test_driver_async.py +0 -488
  470. sqlspec-0.31.0/tests/integration/test_adapters/test_oracledb/test_driver_sync.py +0 -482
  471. sqlspec-0.31.0/tests/integration/test_adapters/test_oracledb/test_exceptions.py +0 -142
  472. sqlspec-0.31.0/tests/integration/test_adapters/test_oracledb/test_extensions/test_adk/test_inmemory.py +0 -412
  473. sqlspec-0.31.0/tests/integration/test_adapters/test_oracledb/test_extensions/test_adk/test_oracle_specific.py +0 -530
  474. sqlspec-0.31.0/tests/integration/test_adapters/test_oracledb/test_extensions/test_litestar/test_inmemory.py +0 -280
  475. sqlspec-0.31.0/tests/integration/test_adapters/test_oracledb/test_extensions/test_litestar/test_store_async.py +0 -248
  476. sqlspec-0.31.0/tests/integration/test_adapters/test_oracledb/test_extensions/test_litestar/test_store_sync.py +0 -248
  477. sqlspec-0.31.0/tests/integration/test_adapters/test_oracledb/test_merge.py +0 -349
  478. sqlspec-0.31.0/tests/integration/test_adapters/test_oracledb/test_migrations.py +0 -944
  479. sqlspec-0.31.0/tests/integration/test_adapters/test_oracledb/test_numpy_vectors.py +0 -376
  480. sqlspec-0.31.0/tests/integration/test_adapters/test_oracledb/test_uuid_binary.py +0 -348
  481. sqlspec-0.31.0/tests/integration/test_adapters/test_psqlpy/conftest.py +0 -58
  482. sqlspec-0.31.0/tests/integration/test_adapters/test_psqlpy/test_migrations.py +0 -378
  483. sqlspec-0.31.0/tests/integration/test_adapters/test_psycopg/conftest.py +0 -40
  484. sqlspec-0.31.0/tests/integration/test_adapters/test_psycopg/test_arrow.py +0 -194
  485. sqlspec-0.31.0/tests/integration/test_adapters/test_psycopg/test_async_copy.py +0 -203
  486. sqlspec-0.31.0/tests/integration/test_adapters/test_psycopg/test_connection.py +0 -68
  487. sqlspec-0.31.0/tests/integration/test_adapters/test_psycopg/test_exceptions.py +0 -161
  488. sqlspec-0.31.0/tests/integration/test_adapters/test_psycopg/test_execute_many.py +0 -325
  489. sqlspec-0.31.0/tests/integration/test_adapters/test_psycopg/test_extensions/test_adk/test_owner_id_column.py +0 -180
  490. sqlspec-0.31.0/tests/integration/test_adapters/test_psycopg/test_extensions/test_litestar/test_store_sync.py +0 -267
  491. sqlspec-0.31.0/tests/integration/test_adapters/test_psycopg/test_migrations.py +0 -756
  492. sqlspec-0.31.0/tests/integration/test_adapters/test_psycopg/test_parameter_styles.py +0 -1033
  493. sqlspec-0.31.0/tests/integration/test_adapters/test_sqlite/conftest.py +0 -128
  494. sqlspec-0.31.0/tests/integration/test_adapters/test_sqlite/test_driver_features.py +0 -113
  495. sqlspec-0.31.0/tests/integration/test_adapters/test_sqlite/test_extensions/test_adk/test_owner_id_column.py +0 -386
  496. sqlspec-0.31.0/tests/integration/test_adapters/test_sqlite/test_extensions/test_litestar/test_store.py +0 -253
  497. sqlspec-0.31.0/tests/integration/test_adapters/test_sqlite/test_migrations.py +0 -513
  498. sqlspec-0.31.0/tests/integration/test_adapters/test_sqlite/test_parameter_styles.py +0 -417
  499. sqlspec-0.31.0/tests/integration/test_adapters/test_sqlite/test_pooling.py +0 -277
  500. sqlspec-0.31.0/tests/integration/test_async_migrations.py +0 -280
  501. sqlspec-0.31.0/tests/integration/test_dishka/conftest.py +0 -115
  502. sqlspec-0.31.0/tests/integration/test_dishka/test_dishka_integration.py +0 -538
  503. sqlspec-0.31.0/tests/integration/test_extensions/test_fastapi/test_fastapi_filters_integration.py +0 -395
  504. sqlspec-0.31.0/tests/integration/test_extensions/test_fastapi/test_fastapi_integration.py +0 -284
  505. sqlspec-0.31.0/tests/integration/test_extensions/test_flask/test_flask_disable_di.py +0 -76
  506. sqlspec-0.31.0/tests/integration/test_extensions/test_flask/test_flask_integration.py +0 -314
  507. sqlspec-0.31.0/tests/integration/test_extensions/test_litestar/test_correlation_middleware.py +0 -91
  508. sqlspec-0.31.0/tests/integration/test_extensions/test_litestar/test_litestar_disable_di.py +0 -69
  509. sqlspec-0.31.0/tests/integration/test_extensions/test_starlette/test_starlette_disable_di.py +0 -70
  510. sqlspec-0.31.0/tests/integration/test_extensions/test_starlette/test_starlette_integration.py +0 -225
  511. sqlspec-0.31.0/tests/integration/test_loader/test_file_system_loading.py +0 -766
  512. sqlspec-0.31.0/tests/integration/test_migrations/test_auto_sync.py +0 -333
  513. sqlspec-0.31.0/tests/integration/test_migrations/test_fix_checksum_stability.py +0 -203
  514. sqlspec-0.31.0/tests/integration/test_migrations/test_fix_idempotency_workflow.py +0 -353
  515. sqlspec-0.31.0/tests/integration/test_migrations/test_schema_migration.py +0 -311
  516. sqlspec-0.31.0/tests/integration/test_migrations/test_upgrade_downgrade_versions.py +0 -411
  517. sqlspec-0.31.0/tests/integration/test_stack_edge_cases.py +0 -183
  518. sqlspec-0.31.0/tests/integration/test_storage/test_storage_integration.py +0 -871
  519. sqlspec-0.31.0/tests/unit/test_adapters/test_asyncpg/test_cloud_connectors.py +0 -544
  520. sqlspec-0.31.0/tests/unit/test_adapters/test_duckdb/test_extension_flags.py +0 -42
  521. sqlspec-0.31.0/tests/unit/test_adapters/test_extension_config.py +0 -204
  522. sqlspec-0.31.0/tests/unit/test_base/test_sql_integration.py +0 -301
  523. sqlspec-0.31.0/tests/unit/test_builder/test_to_sql_edge_cases.py +0 -273
  524. sqlspec-0.31.0/tests/unit/test_cli/test_config_loading.py +0 -175
  525. sqlspec-0.31.0/tests/unit/test_cli/test_migration_commands.py +0 -887
  526. sqlspec-0.31.0/tests/unit/test_config/test_migration_methods.py +0 -524
  527. sqlspec-0.31.0/tests/unit/test_config_resolver.py +0 -263
  528. sqlspec-0.31.0/tests/unit/test_core/test_filters.py +0 -337
  529. sqlspec-0.31.0/tests/unit/test_extensions/test_fastapi/test_extension.py +0 -95
  530. sqlspec-0.31.0/tests/unit/test_extensions/test_flask/test_extension.py +0 -98
  531. sqlspec-0.31.0/tests/unit/test_extensions/test_litestar/test_handlers.py +0 -301
  532. sqlspec-0.31.0/tests/unit/test_extensions/test_starlette/test_extension.py +0 -69
  533. sqlspec-0.31.0/tests/unit/test_loader/test_cache_integration.py +0 -629
  534. sqlspec-0.31.0/tests/unit/test_loader/test_loading_patterns.py +0 -822
  535. sqlspec-0.31.0/tests/unit/test_loader/test_sql_file_loader.py +0 -1000
  536. sqlspec-0.31.0/tests/unit/test_migrations/test_extension_discovery.py +0 -108
  537. sqlspec-0.31.0/tests/unit/test_migrations/test_migration.py +0 -717
  538. sqlspec-0.31.0/tests/unit/test_migrations/test_migration_commands.py +0 -387
  539. sqlspec-0.31.0/tests/unit/test_migrations/test_migration_context.py +0 -36
  540. sqlspec-0.31.0/tests/unit/test_migrations/test_migration_execution.py +0 -641
  541. sqlspec-0.31.0/tests/unit/test_migrations/test_migration_runner.py +0 -930
  542. sqlspec-0.31.0/tests/unit/test_migrations/test_null_handling_fixes.py +0 -111
  543. sqlspec-0.31.0/tests/unit/test_migrations/test_utils.py +0 -385
  544. sqlspec-0.31.0/tests/unit/test_observability.py +0 -480
  545. sqlspec-0.31.0/tests/unit/test_storage/test_fsspec_backend.py +0 -504
  546. sqlspec-0.31.0/tests/unit/test_storage/test_local_store.py +0 -491
  547. sqlspec-0.31.0/tests/unit/test_storage/test_obstore_backend.py +0 -493
  548. sqlspec-0.31.0/tests/unit/test_storage/test_storage_registry.py +0 -279
  549. sqlspec-0.31.0/tests/unit/test_utils/test_fixtures.py +0 -527
  550. sqlspec-0.31.0/tests/unit/test_utils/test_logging.py +0 -659
  551. sqlspec-0.31.0/uv.lock +0 -7167
  552. {sqlspec-0.31.0 → sqlspec-0.33.0}/.claude/AGENTS.md +0 -0
  553. {sqlspec-0.31.0 → sqlspec-0.33.0}/.claude/README.md +0 -0
  554. {sqlspec-0.31.0 → sqlspec-0.33.0}/.claude/agents/prd.md +0 -0
  555. {sqlspec-0.31.0 → sqlspec-0.33.0}/.claude/agents/testing.md +0 -0
  556. {sqlspec-0.31.0 → sqlspec-0.33.0}/.claude/bootstrap.md +0 -0
  557. {sqlspec-0.31.0 → sqlspec-0.33.0}/.claude/commands/implement.md +0 -0
  558. {sqlspec-0.31.0 → sqlspec-0.33.0}/.claude/commands/prd.md +0 -0
  559. {sqlspec-0.31.0 → sqlspec-0.33.0}/.claude/commands/review.md +0 -0
  560. {sqlspec-0.31.0 → sqlspec-0.33.0}/.claude/commands/test.md +0 -0
  561. {sqlspec-0.31.0 → sqlspec-0.33.0}/.claude/skills/sqlspec_usage/__init__.py +0 -0
  562. {sqlspec-0.31.0 → sqlspec-0.33.0}/.claude/skills/sqlspec_usage/examples/__init__.py +0 -0
  563. {sqlspec-0.31.0 → sqlspec-0.33.0}/.claude/skills/sqlspec_usage/examples/migration-workflow.sh +0 -0
  564. {sqlspec-0.31.0 → sqlspec-0.33.0}/.claude/skills/sqlspec_usage/patterns/queries.md +0 -0
  565. {sqlspec-0.31.0 → sqlspec-0.33.0}/.gemini/GEMINI.md +0 -0
  566. {sqlspec-0.31.0 → sqlspec-0.33.0}/.gemini/commands/implement.toml +0 -0
  567. {sqlspec-0.31.0 → sqlspec-0.33.0}/.gemini/commands/prd.toml +0 -0
  568. {sqlspec-0.31.0 → sqlspec-0.33.0}/.gemini/commands/review.toml +0 -0
  569. {sqlspec-0.31.0 → sqlspec-0.33.0}/.gitignore +0 -0
  570. {sqlspec-0.31.0 → sqlspec-0.33.0}/CLAUDE.md +0 -0
  571. {sqlspec-0.31.0 → sqlspec-0.33.0}/CONTRIBUTING.rst +0 -0
  572. {sqlspec-0.31.0 → sqlspec-0.33.0}/GEMINI.md +0 -0
  573. {sqlspec-0.31.0 → sqlspec-0.33.0}/LICENSE +0 -0
  574. {sqlspec-0.31.0 → sqlspec-0.33.0}/specs/AGENTS.md +0 -0
  575. {sqlspec-0.31.0 → sqlspec-0.33.0}/specs/README.md +0 -0
  576. {sqlspec-0.31.0 → sqlspec-0.33.0}/specs/active/.gitkeep +0 -0
  577. {sqlspec-0.31.0 → sqlspec-0.33.0}/specs/agents/expert.md +0 -0
  578. {sqlspec-0.31.0 → sqlspec-0.33.0}/specs/agents/guides.md +0 -0
  579. {sqlspec-0.31.0 → sqlspec-0.33.0}/specs/agents/prd.md +0 -0
  580. {sqlspec-0.31.0 → sqlspec-0.33.0}/specs/agents/review.md +0 -0
  581. {sqlspec-0.31.0 → sqlspec-0.33.0}/specs/agents/testing.md +0 -0
  582. {sqlspec-0.31.0 → sqlspec-0.33.0}/specs/archive/.gitkeep +0 -0
  583. {sqlspec-0.31.0 → sqlspec-0.33.0}/specs/guides/docs_examples_alignment.md +0 -0
  584. {sqlspec-0.31.0 → sqlspec-0.33.0}/specs/guides/query-stack.md +0 -0
  585. {sqlspec-0.31.0 → sqlspec-0.33.0}/specs/template-spec/README.md +0 -0
  586. {sqlspec-0.31.0 → sqlspec-0.33.0}/specs/template-spec/prd.md +0 -0
  587. {sqlspec-0.31.0 → sqlspec-0.33.0}/specs/template-spec/recovery.md +0 -0
  588. {sqlspec-0.31.0 → sqlspec-0.33.0}/specs/template-spec/research/.gitkeep +0 -0
  589. {sqlspec-0.31.0 → sqlspec-0.33.0}/specs/template-spec/tasks.md +0 -0
  590. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/__init__.py +0 -0
  591. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/__main__.py +0 -0
  592. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/__metadata__.py +0 -0
  593. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/_serialization.py +0 -0
  594. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/_typing.py +0 -0
  595. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/__init__.py +0 -0
  596. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/adbc/__init__.py +0 -0
  597. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/adbc/_types.py +0 -0
  598. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/adbc/adk/__init__.py +0 -0
  599. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/adbc/adk/store.py +0 -0
  600. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/adbc/data_dictionary.py +0 -0
  601. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/adbc/litestar/__init__.py +0 -0
  602. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/adbc/litestar/store.py +0 -0
  603. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/adbc/type_converter.py +0 -0
  604. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/aiosqlite/__init__.py +0 -0
  605. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/aiosqlite/_types.py +0 -0
  606. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/aiosqlite/adk/__init__.py +0 -0
  607. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/aiosqlite/data_dictionary.py +0 -0
  608. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/aiosqlite/driver.py +0 -0
  609. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/aiosqlite/litestar/__init__.py +0 -0
  610. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/aiosqlite/litestar/store.py +0 -0
  611. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/asyncmy/__init__.py +0 -0
  612. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/asyncmy/_types.py +0 -0
  613. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/asyncmy/adk/__init__.py +0 -0
  614. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/asyncmy/data_dictionary.py +0 -0
  615. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/asyncmy/litestar/__init__.py +0 -0
  616. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/asyncpg/__init__.py +0 -0
  617. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/asyncpg/_types.py +0 -0
  618. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/asyncpg/adk/__init__.py +0 -0
  619. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/asyncpg/data_dictionary.py +0 -0
  620. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/asyncpg/driver.py +0 -0
  621. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/asyncpg/litestar/__init__.py +0 -0
  622. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/bigquery/__init__.py +0 -0
  623. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/bigquery/_types.py +0 -0
  624. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/bigquery/adk/__init__.py +0 -0
  625. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/bigquery/adk/store.py +0 -0
  626. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/bigquery/data_dictionary.py +0 -0
  627. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/bigquery/litestar/__init__.py +0 -0
  628. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/bigquery/litestar/store.py +0 -0
  629. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/bigquery/type_converter.py +0 -0
  630. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/duckdb/__init__.py +0 -0
  631. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/duckdb/_types.py +0 -0
  632. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/duckdb/adk/__init__.py +0 -0
  633. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/duckdb/adk/store.py +0 -0
  634. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/duckdb/data_dictionary.py +0 -0
  635. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/duckdb/driver.py +0 -0
  636. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/duckdb/litestar/__init__.py +0 -0
  637. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/duckdb/litestar/store.py +0 -0
  638. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/duckdb/type_converter.py +0 -0
  639. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/oracledb/__init__.py +0 -0
  640. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/oracledb/_types.py +0 -0
  641. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/oracledb/adk/__init__.py +0 -0
  642. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/oracledb/data_dictionary.py +0 -0
  643. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/oracledb/litestar/__init__.py +0 -0
  644. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/oracledb/migrations.py +0 -0
  645. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/oracledb/type_converter.py +0 -0
  646. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/psqlpy/__init__.py +0 -0
  647. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/psqlpy/_types.py +0 -0
  648. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/psqlpy/adk/__init__.py +0 -0
  649. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/psqlpy/data_dictionary.py +0 -0
  650. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/psqlpy/driver.py +0 -0
  651. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/psqlpy/litestar/__init__.py +0 -0
  652. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/psqlpy/type_converter.py +0 -0
  653. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/psycopg/__init__.py +0 -0
  654. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/psycopg/_types.py +0 -0
  655. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/psycopg/adk/__init__.py +0 -0
  656. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/psycopg/data_dictionary.py +0 -0
  657. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/psycopg/driver.py +0 -0
  658. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/psycopg/litestar/__init__.py +0 -0
  659. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/sqlite/__init__.py +0 -0
  660. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/sqlite/_types.py +0 -0
  661. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/sqlite/adk/__init__.py +0 -0
  662. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/sqlite/adk/store.py +0 -0
  663. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/sqlite/data_dictionary.py +0 -0
  664. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/sqlite/driver.py +0 -0
  665. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/sqlite/litestar/__init__.py +0 -0
  666. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/adapters/sqlite/litestar/store.py +0 -0
  667. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/builder/__init__.py +0 -0
  668. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/builder/_delete.py +0 -0
  669. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/builder/_expression_wrappers.py +0 -0
  670. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/builder/_insert.py +0 -0
  671. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/builder/_join.py +0 -0
  672. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/builder/_merge.py +0 -0
  673. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/builder/_parsing_utils.py +0 -0
  674. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/builder/_update.py +0 -0
  675. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/core/cache.py +0 -0
  676. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/core/hashing.py +0 -0
  677. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/core/metrics.py +0 -0
  678. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/core/parameters/__init__.py +0 -0
  679. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/core/parameters/_alignment.py +0 -0
  680. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/core/parameters/_converter.py +0 -0
  681. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/core/parameters/_processor.py +0 -0
  682. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/core/parameters/_registry.py +0 -0
  683. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/core/parameters/_transformers.py +0 -0
  684. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/core/parameters/_types.py +0 -0
  685. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/core/parameters/_validator.py +0 -0
  686. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/core/pipeline.py +0 -0
  687. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/core/stack.py +0 -0
  688. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/core/type_conversion.py +0 -0
  689. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/driver/__init__.py +0 -0
  690. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/driver/mixins/__init__.py +0 -0
  691. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/driver/mixins/_result_tools.py +0 -0
  692. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/driver/mixins/_sql_translator.py +0 -0
  693. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/driver/mixins/_storage.py +0 -0
  694. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/exceptions.py +0 -0
  695. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/extensions/__init__.py +0 -0
  696. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/extensions/adk/_types.py +0 -0
  697. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/extensions/adk/converters.py +0 -0
  698. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/extensions/adk/migrations/0001_create_adk_tables.py +0 -0
  699. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/extensions/adk/migrations/__init__.py +0 -0
  700. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/extensions/adk/store.py +0 -0
  701. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/extensions/aiosql/__init__.py +0 -0
  702. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/extensions/fastapi/__init__.py +0 -0
  703. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/extensions/flask/_state.py +0 -0
  704. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/extensions/flask/_utils.py +0 -0
  705. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/extensions/litestar/__init__.py +0 -0
  706. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/extensions/litestar/_utils.py +0 -0
  707. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/extensions/litestar/handlers.py +0 -0
  708. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/extensions/litestar/migrations/0001_create_session_table.py +0 -0
  709. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/extensions/litestar/migrations/__init__.py +0 -0
  710. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/extensions/otel/__init__.py +0 -0
  711. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/extensions/prometheus/__init__.py +0 -0
  712. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/extensions/starlette/__init__.py +0 -0
  713. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/extensions/starlette/_state.py +0 -0
  714. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/extensions/starlette/_utils.py +0 -0
  715. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/extensions/starlette/middleware.py +0 -0
  716. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/migrations/__init__.py +0 -0
  717. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/migrations/base.py +0 -0
  718. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/migrations/context.py +0 -0
  719. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/migrations/loaders.py +0 -0
  720. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/migrations/runner.py +0 -0
  721. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/migrations/templates.py +0 -0
  722. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/migrations/tracker.py +0 -0
  723. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/migrations/validation.py +0 -0
  724. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/observability/__init__.py +0 -0
  725. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/observability/_config.py +0 -0
  726. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/observability/_diagnostics.py +0 -0
  727. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/observability/_dispatcher.py +0 -0
  728. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/py.typed +0 -0
  729. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/storage/__init__.py +0 -0
  730. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/storage/_utils.py +0 -0
  731. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/storage/backends/__init__.py +0 -0
  732. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/storage/backends/base.py +0 -0
  733. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/storage/pipeline.py +0 -0
  734. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/typing.py +0 -0
  735. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/utils/arrow_helpers.py +0 -0
  736. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/utils/data_transformation.py +0 -0
  737. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/utils/dependencies.py +0 -0
  738. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/utils/fixtures.py +0 -0
  739. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/utils/module_loader.py +0 -0
  740. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/utils/portal.py +0 -0
  741. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/utils/serializers.py +0 -0
  742. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/utils/singleton.py +0 -0
  743. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/utils/sync_tools.py +0 -0
  744. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/utils/text.py +0 -0
  745. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/utils/type_converters.py +0 -0
  746. {sqlspec-0.31.0 → sqlspec-0.33.0}/sqlspec/utils/type_guards.py +0 -0
  747. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/__init__.py +0 -0
  748. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/asset_maintenance.sql +0 -0
  749. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/ddls-mysql-collection.sql +0 -0
  750. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/ddls-postgres-collection.sql +0 -0
  751. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/example_usage.py +0 -0
  752. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/init.sql +0 -0
  753. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/mysql/collection-config.sql +0 -0
  754. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/mysql/collection-data_types.sql +0 -0
  755. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/mysql/collection-database_details.sql +0 -0
  756. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/mysql/collection-engines.sql +0 -0
  757. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/mysql/collection-hostname.sql +0 -0
  758. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/mysql/collection-plugins.sql +0 -0
  759. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/mysql/collection-process_list.sql +0 -0
  760. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/mysql/collection-resource-groups.sql +0 -0
  761. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/mysql/collection-schema_objects.sql +0 -0
  762. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/mysql/collection-table_details.sql +0 -0
  763. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/mysql/collection-users.sql +0 -0
  764. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/mysql/init.sql +0 -0
  765. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/oracle.ddl.sql +0 -0
  766. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/postgres/collection-applications.sql +0 -0
  767. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/postgres/collection-aws_extension_dependency.sql +0 -0
  768. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/postgres/collection-aws_oracle_exists.sql +0 -0
  769. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/postgres/collection-bg_writer_stats.sql +0 -0
  770. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/postgres/collection-calculated_metrics.sql +0 -0
  771. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/postgres/collection-data_types.sql +0 -0
  772. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/postgres/collection-database_details.sql +0 -0
  773. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/postgres/collection-extensions.sql +0 -0
  774. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/postgres/collection-index_details.sql +0 -0
  775. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/postgres/collection-pglogical-details.sql +0 -0
  776. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/postgres/collection-privileges.sql +0 -0
  777. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/postgres/collection-replication_slots.sql +0 -0
  778. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/postgres/collection-replication_stats.sql +0 -0
  779. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/postgres/collection-schema_details.sql +0 -0
  780. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/postgres/collection-schema_objects.sql +0 -0
  781. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/postgres/collection-settings.sql +0 -0
  782. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/postgres/collection-source_details.sql +0 -0
  783. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/postgres/collection-table_details.sql +0 -0
  784. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/postgres/extended-collection-all-databases.sql +0 -0
  785. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/postgres/init.sql +0 -0
  786. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/readiness-check.sql +0 -0
  787. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/fixtures/sql_utils.py +0 -0
  788. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/__init__.py +0 -0
  789. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/conftest.py +0 -0
  790. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/__init__.py +0 -0
  791. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/_storage_bridge_helpers.py +0 -0
  792. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_adbc/__init__.py +0 -0
  793. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_adbc/conftest.py +0 -0
  794. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_adbc/test_adbc_arrow_features.py +0 -0
  795. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_adbc/test_adbc_backends.py +0 -0
  796. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_adbc/test_adbc_connection.py +0 -0
  797. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_adbc/test_adbc_driver.py +0 -0
  798. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_adbc/test_adbc_edge_cases.py +0 -0
  799. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_adbc/test_adbc_results.py +0 -0
  800. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_adbc/test_arrow_duckdb.py +0 -0
  801. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_adbc/test_data_dictionary.py +0 -0
  802. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_adbc/test_exceptions.py +0 -0
  803. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_adbc/test_extensions/__init__.py +0 -0
  804. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_adbc/test_extensions/test_adk/__init__.py +0 -0
  805. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_adbc/test_extensions/test_adk/test_dialect_integration.py +0 -0
  806. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_adbc/test_extensions/test_adk/test_dialect_support.py +0 -0
  807. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_adbc/test_extensions/test_adk/test_edge_cases.py +0 -0
  808. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_adbc/test_extensions/test_adk/test_event_operations.py +0 -0
  809. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_adbc/test_extensions/test_adk/test_owner_id_column.py +0 -0
  810. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_adbc/test_extensions/test_adk/test_session_operations.py +0 -0
  811. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_adbc/test_extensions/test_litestar/__init__.py +0 -0
  812. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_adbc/test_extensions/test_litestar/test_store.py +0 -0
  813. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_adbc/test_parameter_styles.py +0 -0
  814. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_adbc/test_storage_bridge.py +0 -0
  815. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_aiosqlite/__init__.py +0 -0
  816. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_aiosqlite/test_arrow.py +0 -0
  817. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_aiosqlite/test_data_dictionary.py +0 -0
  818. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_aiosqlite/test_driver.py +0 -0
  819. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_aiosqlite/test_exceptions.py +0 -0
  820. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_aiosqlite/test_extensions/__init__.py +0 -0
  821. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_aiosqlite/test_extensions/test_litestar/__init__.py +0 -0
  822. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_aiosqlite/test_storage_bridge.py +0 -0
  823. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_asyncmy/__init__.py +0 -0
  824. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_asyncmy/test_arrow.py +0 -0
  825. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_asyncmy/test_extensions/__init__.py +0 -0
  826. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_asyncmy/test_extensions/test_adk/__init__.py +0 -0
  827. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_asyncmy/test_extensions/test_adk/test_store.py +0 -0
  828. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_asyncmy/test_extensions/test_litestar/__init__.py +0 -0
  829. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_asyncmy/test_storage_bridge.py +0 -0
  830. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_asyncpg/__init__.py +0 -0
  831. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_asyncpg/test_arrow.py +0 -0
  832. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_asyncpg/test_data_dictionary.py +0 -0
  833. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_asyncpg/test_exceptions.py +0 -0
  834. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_asyncpg/test_execute_many.py +0 -0
  835. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_asyncpg/test_extensions/__init__.py +0 -0
  836. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_asyncpg/test_extensions/test_adk/__init__.py +0 -0
  837. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_asyncpg/test_extensions/test_adk/test_session_operations.py +0 -0
  838. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_asyncpg/test_extensions/test_litestar/__init__.py +0 -0
  839. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_asyncpg/test_extensions/test_litestar/test_store.py +0 -0
  840. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_asyncpg/test_merge.py +0 -0
  841. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_asyncpg/test_merge_bulk.py +0 -0
  842. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_asyncpg/test_parameter_styles.py +0 -0
  843. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_asyncpg/test_storage_bridge.py +0 -0
  844. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_bigquery/__init__.py +0 -0
  845. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_bigquery/conftest.py +0 -0
  846. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_bigquery/test_arrow_bigquery.py +0 -0
  847. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_bigquery/test_bigquery_features.py +0 -0
  848. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_bigquery/test_config.py +0 -0
  849. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_bigquery/test_connection.py +0 -0
  850. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_bigquery/test_exceptions.py +0 -0
  851. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_duckdb/__init__.py +0 -0
  852. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_duckdb/test_arrow.py +0 -0
  853. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_duckdb/test_driver.py +0 -0
  854. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_duckdb/test_execute_many.py +0 -0
  855. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_duckdb/test_extensions/__init__.py +0 -0
  856. {sqlspec-0.31.0/tests → sqlspec-0.33.0/tests/integration/test_adapters/test_duckdb/test_extensions/test_adk}/__init__.py +0 -0
  857. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_duckdb/test_extensions/test_litestar/__init__.py +0 -0
  858. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_duckdb/test_storage_bridge.py +0 -0
  859. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_duckdb/utils.py +0 -0
  860. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_oracledb/__init__.py +0 -0
  861. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_oracledb/test_arrow.py +0 -0
  862. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_oracledb/test_execute_many.py +0 -0
  863. {sqlspec-0.31.0/tests/integration/test_adapters/test_duckdb/test_extensions/test_adk → sqlspec-0.33.0/tests/integration/test_adapters/test_oracledb/test_extensions}/__init__.py +0 -0
  864. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_oracledb/test_extensions/test_adk/__init__.py +0 -0
  865. {sqlspec-0.31.0/tests/integration/test_adapters/test_oracledb/test_extensions → sqlspec-0.33.0/tests/integration/test_adapters/test_oracledb/test_extensions/test_litestar}/__init__.py +0 -0
  866. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_oracledb/test_merge_bulk.py +0 -0
  867. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_oracledb/test_msgspec_clob.py +0 -0
  868. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_oracledb/test_oracle_features.py +0 -0
  869. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_oracledb/test_parameter_styles.py +0 -0
  870. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_oracledb/test_stack.py +0 -0
  871. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_psqlpy/__init__.py +0 -0
  872. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_psqlpy/test_arrow.py +0 -0
  873. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_psqlpy/test_connection.py +0 -0
  874. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_psqlpy/test_driver.py +0 -0
  875. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_psqlpy/test_exceptions.py +0 -0
  876. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_psqlpy/test_extensions/__init__.py +0 -0
  877. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_psqlpy/test_extensions/test_adk/__init__.py +0 -0
  878. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_psqlpy/test_extensions/test_adk/test_owner_id_column.py +0 -0
  879. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_psqlpy/test_extensions/test_litestar/__init__.py +0 -0
  880. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_psqlpy/test_extensions/test_litestar/test_store.py +0 -0
  881. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_psqlpy/test_merge_bulk.py +0 -0
  882. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_psqlpy/test_parameter_styles.py +0 -0
  883. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_psqlpy/test_psqlpy_features.py +0 -0
  884. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_psqlpy/test_storage_bridge.py +0 -0
  885. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_psycopg/__init__.py +0 -0
  886. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_psycopg/test_driver.py +0 -0
  887. {sqlspec-0.31.0/tests/integration/test_adapters/test_oracledb/test_extensions/test_litestar → sqlspec-0.33.0/tests/integration/test_adapters/test_psycopg/test_extensions}/__init__.py +0 -0
  888. {sqlspec-0.31.0/tests/integration/test_adapters/test_psycopg/test_extensions → sqlspec-0.33.0/tests/integration/test_adapters/test_psycopg/test_extensions/test_adk}/__init__.py +0 -0
  889. {sqlspec-0.31.0/tests/integration/test_adapters/test_psycopg/test_extensions/test_adk → sqlspec-0.33.0/tests/integration/test_adapters/test_psycopg/test_extensions/test_litestar}/__init__.py +0 -0
  890. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_psycopg/test_extensions/test_litestar/test_store_async.py +0 -0
  891. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_psycopg/test_merge_bulk.py +0 -0
  892. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_psycopg/test_storage_bridge.py +0 -0
  893. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_sqlite/__init__.py +0 -0
  894. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_sqlite/test_arrow.py +0 -0
  895. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_sqlite/test_data_dictionary.py +0 -0
  896. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_sqlite/test_driver.py +0 -0
  897. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_sqlite/test_exceptions.py +0 -0
  898. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_sqlite/test_extensions/__init__.py +0 -0
  899. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_sqlite/test_extensions/test_adk/__init__.py +0 -0
  900. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_sqlite/test_extensions/test_litestar/__init__.py +0 -0
  901. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_sqlite/test_query_mixin.py +0 -0
  902. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_adapters/test_sqlite/test_storage_bridge.py +0 -0
  903. {sqlspec-0.31.0/tests/integration/test_adapters/test_psycopg/test_extensions/test_litestar → sqlspec-0.33.0/tests/integration/test_cli}/__init__.py +0 -0
  904. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_dishka/__init__.py +0 -0
  905. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_extensions/__init__.py +0 -0
  906. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_loader/__init__.py +0 -0
  907. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_migrations/__init__.py +0 -0
  908. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_migrations/test_fix_file_operations.py +0 -0
  909. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/integration/test_storage/__init__.py +0 -0
  910. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/conftest.py +0 -0
  911. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_adapters/__init__.py +0 -0
  912. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_adapters/conftest.py +0 -0
  913. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_adapters/test_adapter_implementations.py +0 -0
  914. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_adapters/test_adbc/test_adbc_serialization.py +0 -0
  915. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_adapters/test_async_adapters.py +0 -0
  916. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_adapters/test_asyncmy/__init__.py +0 -0
  917. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_adapters/test_asyncmy/test_config.py +0 -0
  918. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_adapters/test_asyncpg/__init__.py +0 -0
  919. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_adapters/test_asyncpg/test_config.py +0 -0
  920. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_adapters/test_asyncpg/test_type_handlers.py +0 -0
  921. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_adapters/test_bigquery/__init__.py +0 -0
  922. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_adapters/test_bigquery/test_config.py +0 -0
  923. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_adapters/test_bigquery/test_parameters.py +0 -0
  924. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_adapters/test_duckdb/__init__.py +0 -0
  925. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_adapters/test_duckdb/test_config.py +0 -0
  926. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_adapters/test_duckdb/test_type_converter.py +0 -0
  927. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_adapters/test_oracledb/test_data_dictionary.py +0 -0
  928. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_adapters/test_oracledb/test_numpy_handlers.py +0 -0
  929. /sqlspec-0.31.0/tests/unit/test_adapters/test_oracledb/test_adk_store.py → /sqlspec-0.33.0/tests/unit/test_adapters/test_oracledb/test_oracle_adk_store.py +0 -0
  930. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_adapters/test_oracledb/test_pipeline_helpers.py +0 -0
  931. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_adapters/test_oracledb/test_type_converter_vectors.py +0 -0
  932. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_adapters/test_oracledb/test_uuid_handlers.py +0 -0
  933. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_adapters/test_psqlpy/__init__.py +0 -0
  934. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_adapters/test_psqlpy/test_config.py +0 -0
  935. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_adapters/test_psycopg/test_config.py +0 -0
  936. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_adapters/test_psycopg/test_type_handlers.py +0 -0
  937. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_adapters/test_sqlite/__init__.py +0 -0
  938. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_adapters/test_sqlite/test_type_handlers.py +0 -0
  939. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_adapters/test_sync_adapters.py +0 -0
  940. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_arrow_helpers.py +0 -0
  941. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_arrow_result.py +0 -0
  942. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_base/__init__.py +0 -0
  943. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_base/test_sqlspec_class.py +0 -0
  944. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_builder/__init__.py +0 -0
  945. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_builder/test_copy_helpers.py +0 -0
  946. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_builder/test_dialect_override.py +0 -0
  947. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_builder/test_insert_builder.py +0 -0
  948. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_builder/test_lateral_joins.py +0 -0
  949. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_builder/test_merge.py +0 -0
  950. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_builder/test_merge_dialect_validation.py +0 -0
  951. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_builder/test_merge_property_shorthand.py +0 -0
  952. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_builder/test_parameter_naming.py +0 -0
  953. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_builder/test_select_locking.py +0 -0
  954. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_builder/test_static_expression_cache.py +0 -0
  955. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_builder/test_to_sql.py +0 -0
  956. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_builder/test_upsert_factory.py +0 -0
  957. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_builder/test_upsert_factory_edge_cases.py +0 -0
  958. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_builder_parameter_naming.py +0 -0
  959. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_cli/__init__.py +0 -0
  960. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_cli/test_shell_completion.py +0 -0
  961. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_config/test_observability_extensions.py +0 -0
  962. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_config/test_storage_capabilities.py +0 -0
  963. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_core/test_cache.py +0 -0
  964. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_core/test_compiler.py +0 -0
  965. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_core/test_hashing.py +0 -0
  966. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_core/test_parameter_regex_performance.py +0 -0
  967. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_core/test_parameters.py +0 -0
  968. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_core/test_result.py +0 -0
  969. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_core/test_stack.py +0 -0
  970. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_core/test_stack_metrics.py +0 -0
  971. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_core/test_statement.py +0 -0
  972. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_cte_parameter_collisions.py +0 -0
  973. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_driver/__init__.py +0 -0
  974. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_driver/test_count_query_edge_cases.py +0 -0
  975. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_driver/test_data_dictionary.py +0 -0
  976. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_driver/test_force_select.py +0 -0
  977. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_driver/test_result_tools.py +0 -0
  978. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_driver/test_stack_base.py +0 -0
  979. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_exceptions.py +0 -0
  980. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_extensions/__init__.py +0 -0
  981. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_extensions/test_fastapi/__init__.py +0 -0
  982. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_extensions/test_fastapi/test_providers.py +0 -0
  983. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_extensions/test_flask/__init__.py +0 -0
  984. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_extensions/test_flask/test_state.py +0 -0
  985. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_extensions/test_litestar/__init__.py +0 -0
  986. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_extensions/test_observability_integrations.py +0 -0
  987. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_extensions/test_starlette/__init__.py +0 -0
  988. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_extensions/test_starlette/test_config_state.py +0 -0
  989. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_extensions/test_starlette/test_utils.py +0 -0
  990. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_loader/__init__.py +0 -0
  991. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_loader/test_fixtures_directory_loading.py +0 -0
  992. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_migration_context.py +0 -0
  993. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_migrations/__init__.py +0 -0
  994. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_migrations/test_checksum_canonicalization.py +0 -0
  995. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_migrations/test_fix_regex_precision.py +0 -0
  996. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_migrations/test_tracker_idempotency.py +0 -0
  997. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_migrations/test_validation.py +0 -0
  998. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_migrations/test_version.py +0 -0
  999. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_migrations/test_version_conversion.py +0 -0
  1000. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_migrations/test_version_parsing_edge_cases.py +0 -0
  1001. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_parsing_utils.py +0 -0
  1002. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_serialization.py +0 -0
  1003. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_sql_factory.py +0 -0
  1004. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_storage/__init__.py +0 -0
  1005. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_storage/test_errors.py +0 -0
  1006. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_storage/test_storage_utils.py +0 -0
  1007. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_storage_bridge.py +0 -0
  1008. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_type_conversion.py +0 -0
  1009. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_utils/__init__.py +0 -0
  1010. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_utils/test_correlation.py +0 -0
  1011. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_utils/test_data_transformation.py +0 -0
  1012. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_utils/test_dependencies.py +0 -0
  1013. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_utils/test_deprecation.py +0 -0
  1014. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_utils/test_module_loader.py +0 -0
  1015. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_utils/test_portal.py +0 -0
  1016. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_utils/test_serializers.py +0 -0
  1017. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_utils/test_singleton.py +0 -0
  1018. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_utils/test_sync_tools.py +0 -0
  1019. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_utils/test_text.py +0 -0
  1020. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_utils/test_type_guards.py +0 -0
  1021. {sqlspec-0.31.0 → sqlspec-0.33.0}/tests/unit/test_where_or_operations.py +0 -0
  1022. {sqlspec-0.31.0 → sqlspec-0.33.0}/tools/__init__.py +0 -0
  1023. {sqlspec-0.31.0 → sqlspec-0.33.0}/tools/build_docs.py +0 -0
  1024. {sqlspec-0.31.0 → sqlspec-0.33.0}/tools/fix_documentation.py +0 -0
  1025. {sqlspec-0.31.0 → sqlspec-0.33.0}/tools/local-infra.sh +0 -0
  1026. {sqlspec-0.31.0 → sqlspec-0.33.0}/tools/pypi_readme.py +0 -0
  1027. {sqlspec-0.31.0 → sqlspec-0.33.0}/tools/run_pre_commit.py +0 -0
  1028. {sqlspec-0.31.0 → sqlspec-0.33.0}/tools/sphinx_ext/__init__.py +0 -0
  1029. {sqlspec-0.31.0 → sqlspec-0.33.0}/tools/sphinx_ext/changelog.py +0 -0
  1030. {sqlspec-0.31.0 → sqlspec-0.33.0}/tools/sphinx_ext/missing_references.py +0 -0
@@ -0,0 +1,822 @@
1
+ ---
2
+ name: docs-vision
3
+ description: Documentation excellence, quality gate validation, and workspace cleanup specialist - ensures code quality, comprehensive docs, and clean workspace before completion
4
+ tools: mcp__context7__resolve-library-id, mcp__context7__get-library-docs, WebSearch, Read, Write, Edit, Glob, Grep, Bash, Find, Task
5
+ model: sonnet
6
+ standards_uri: ../AGENTS.md#mandatory-code-quality-standards
7
+ guides_root: ../docs/guides/
8
+ workspace_root: ../specs/active/
9
+ ---
10
+
11
+ # Docs & Vision Agent
12
+
13
+ Five-phase agent combining documentation excellence, quality gate validation, knowledge capture, re-validation, and mandatory workspace cleanup.
14
+
15
+ ## Core Responsibilities
16
+
17
+ 1. **Documentation** - Write/update comprehensive documentation
18
+ 2. **Quality Gate** - Validate code quality before completion
19
+ 3. **Knowledge Capture** - Extract patterns and update AGENTS.md and guides
20
+ 4. **Re-validation** - Verify consistency after knowledge updates
21
+ 5. **Cleanup & Archive** - Clean workspace, archive completed work
22
+
23
+ ## Workflow Overview
24
+
25
+ Codex or Gemini CLI may run this workflow end-to-end without invoking `/review`. When asked to “complete docs, quality gate, and cleanup” for a workspace, either assistant must execute all five phases exactly as detailed below, update AGENTS.md and guides during knowledge capture, and finish with archival. Claude should continue to invoke `/review` unless manually directed otherwise.
26
+
27
+ This agent runs in **5 sequential phases**:
28
+
29
+ ```
30
+ Phase 1: Documentation → Phase 2: Quality Gate → Phase 3: Knowledge Capture → Phase 4: Re-validation → Phase 5: Cleanup & Archive
31
+ ```
32
+
33
+ All 5 phases MUST complete before work is considered done.
34
+
35
+ ---
36
+
37
+ ## Phase 1: Documentation
38
+
39
+ Create and update comprehensive documentation for new features.
40
+
41
+ ### Step 1: Read Implementation
42
+
43
+ Understand what needs documenting:
44
+
45
+ ```python
46
+ # Read workspace
47
+ Read("specs/active/{requirement}/prd.md")
48
+ Read("specs/active/{requirement}/tasks.md")
49
+
50
+ # Read implementation
51
+ Read("sqlspec/adapters/asyncpg/driver.py")
52
+
53
+ # Check existing docs
54
+ Glob("docs/**/*asyncpg*.md")
55
+ Glob("docs/**/*asyncpg*.rst")
56
+ ```
57
+
58
+ ### Step 2: Determine Documentation Type
59
+
60
+ **Choose based on change type:**
61
+
62
+ 1. **New Adapter** → Update adapter guide + API reference
63
+ 2. **New Feature** → Tutorial + usage example + API reference
64
+ 3. **Performance** → Update performance guide
65
+ 4. **Bug Fix** → Update changelog only
66
+ 5. **Breaking Change** → Migration guide + changelog
67
+
68
+ ### Step 3: Update Guides
69
+
70
+ **For new/modified adapters:**
71
+
72
+ ```python
73
+ # Update adapter guide
74
+ Edit(
75
+ file_path="docs/guides/adapters/asyncpg.md",
76
+ old_string="## Connection Management\n\nBasic connection pooling...",
77
+ new_string="""## Connection Management
78
+
79
+ Advanced connection pooling with automatic retry:
80
+
81
+ ```python
82
+ from sqlspec.adapters.asyncpg.config import AsyncpgConfig
83
+
84
+ config = AsyncpgConfig(
85
+ dsn="postgresql://user:pass@localhost/db",
86
+ connection_config={
87
+ "min_size": 10,
88
+ "max_size": 20,
89
+ "max_inactive_connection_lifetime": 300
90
+ }
91
+ )
92
+
93
+ async with config.provide_session() as session:
94
+ result = await session.select_one("SELECT 1")
95
+ ```
96
+
97
+ The pool automatically handles:
98
+
99
+ - Connection retry with exponential backoff
100
+ - Health checks for idle connections
101
+ - Graceful connection cleanup
102
+ """
103
+ )
104
+
105
+ ```
106
+
107
+ **For new features:**
108
+
109
+ ```python
110
+ # Add to quick reference
111
+ Edit(
112
+ file_path="docs/guides/quick-reference/quick-reference.md",
113
+ old_string="## Common Patterns",
114
+ new_string="""## Common Patterns
115
+
116
+ ### Vector Search with Oracle
117
+
118
+ ```python
119
+ from sqlspec.adapters.oracledb.config import OracleAsyncConfig
120
+ import numpy as np
121
+
122
+ config = OracleAsyncConfig(dsn="oracle://localhost/FREE")
123
+
124
+ async with config.provide_session() as session:
125
+ # Create embedding
126
+ embedding = np.random.rand(768).astype(np.float32)
127
+
128
+ # Search similar vectors
129
+ results = await session.select_all(
130
+ \"\"\"
131
+ SELECT id, text, VECTOR_DISTANCE(embedding, :embedding, COSINE) as distance
132
+ FROM documents
133
+ ORDER BY distance
134
+ LIMIT 10
135
+ \"\"\",
136
+ {"embedding": embedding}
137
+ )
138
+ ```
139
+
140
+ """
141
+ )
142
+
143
+ ```
144
+
145
+ ### Step 4: Update API Reference (if needed)
146
+
147
+ **For new public APIs:**
148
+
149
+ Create/update Sphinx RST files in `docs/reference/`:
150
+
151
+ ```python
152
+ Write(
153
+ file_path="docs/reference/adapters/asyncpg.rst",
154
+ content="""
155
+ AsyncPG Adapter
156
+ ===============
157
+
158
+ .. automodule:: sqlspec.adapters.asyncpg
159
+ :members:
160
+ :undoc-members:
161
+ :show-inheritance:
162
+
163
+ Configuration
164
+ -------------
165
+
166
+ .. autoclass:: sqlspec.adapters.asyncpg.config.AsyncpgConfig
167
+ :members:
168
+ :special-members: __init__
169
+
170
+ Driver
171
+ ------
172
+
173
+ .. autoclass:: sqlspec.adapters.asyncpg.driver.AsyncpgDriver
174
+ :members:
175
+ """
176
+ )
177
+ ```
178
+
179
+ ### Step 5: Build Docs Locally
180
+
181
+ **Verify documentation builds:**
182
+
183
+ ```bash
184
+ # Build Sphinx docs
185
+ make docs
186
+
187
+ # Should see:
188
+ # build succeeded, X warnings.
189
+ # The HTML pages are in docs/_build/html.
190
+ ```
191
+
192
+ **Fix any warnings:**
193
+
194
+ - Broken links
195
+ - Missing references
196
+ - Invalid RST syntax
197
+
198
+ ---
199
+
200
+ ## Phase 2: Quality Gate
201
+
202
+ **MANDATORY validation before marking work complete.**
203
+
204
+ Quality gate MUST pass before moving to Phase 3 (Cleanup).
205
+
206
+ ### Step 1: Read Quality Standards
207
+
208
+ ```python
209
+ Read("AGENTS.md") # Code quality standards
210
+ Read("docs/guides/testing/testing.md") # Testing standards
211
+ ```
212
+
213
+ ### Step 2: Verify Code Quality
214
+
215
+ **Run linting checks:**
216
+
217
+ ```bash
218
+ # Run all linting
219
+ make lint
220
+
221
+ # Should see:
222
+ # All checks passed!
223
+ ```
224
+
225
+ **If linting fails:**
226
+
227
+ 1. Run auto-fix: `make fix`
228
+ 2. Manually fix remaining issues
229
+ 3. Re-run `make lint` until passing
230
+
231
+ **Check for anti-patterns:**
232
+
233
+ ```python
234
+ # Search for defensive patterns
235
+ Grep(pattern="hasattr\\(", path="sqlspec/", output_mode="files_with_matches")
236
+ Grep(pattern="getattr\\(", path="sqlspec/", output_mode="files_with_matches")
237
+
238
+ # If found: BLOCK and require fixing
239
+ if hasattr_files:
240
+ print("❌ QUALITY GATE FAILED: Defensive patterns found")
241
+ print("Files with hasattr/getattr:")
242
+ for file in hasattr_files:
243
+ print(f" - {file}")
244
+ print("\nMust use type guards from sqlspec.utils.type_guards instead")
245
+ # DO NOT PROCEED TO CLEANUP
246
+ return
247
+ ```
248
+
249
+ ```python
250
+ # Search for workaround naming
251
+ Grep(pattern="def .*(_optimized|_with_cache|_fallback)", path="sqlspec/", output_mode="files_with_matches")
252
+
253
+ # If found: BLOCK and require fixing
254
+ if workaround_names:
255
+ print("❌ QUALITY GATE FAILED: Workaround naming found")
256
+ # DO NOT PROCEED TO CLEANUP
257
+ return
258
+ ```
259
+
260
+ ```python
261
+ # Search for class-based tests
262
+ Grep(pattern="^class Test", path="tests/", output_mode="files_with_matches")
263
+
264
+ # If found: BLOCK and require fixing
265
+ if class_tests:
266
+ print("❌ QUALITY GATE FAILED: Class-based tests found")
267
+ print("Tests must be function-based: def test_something():")
268
+ # DO NOT PROCEED TO CLEANUP
269
+ return
270
+ ```
271
+
272
+ ### Step 3: Verify Tests Pass
273
+
274
+ **Run full test suite:**
275
+
276
+ ```bash
277
+ # Run all tests
278
+ uv run pytest -n 2 --dist=loadgroup
279
+
280
+ # Should see:
281
+ # ===== X passed in Y.YYs =====
282
+ ```
283
+
284
+ **If tests fail:**
285
+
286
+ 1. Identify failing tests
287
+ 2. Fix issues
288
+ 3. Re-run tests until passing
289
+ 4. **DO NOT PROCEED to cleanup until all tests pass**
290
+
291
+ ### Step 4: Verify Implementation Matches PRD
292
+
293
+ **Check acceptance criteria:**
294
+
295
+ ```python
296
+ Read("specs/active/{requirement}/prd.md")
297
+
298
+ # Manually verify each criterion:
299
+ # - [ ] Feature works as described
300
+ # - [ ] Edge cases handled
301
+ # - [ ] Error handling correct
302
+ # - [ ] Performance acceptable
303
+ # - [ ] Documentation complete
304
+ ```
305
+
306
+ ### Step 5: Quality Gate Decision
307
+
308
+ **Quality gate PASSES if:**
309
+ ✅ `make lint` passes
310
+ ✅ No defensive patterns (hasattr/getattr)
311
+ ✅ No workaround naming (_optimized, etc.)
312
+ ✅ No class-based tests
313
+ ✅ All tests pass
314
+ ✅ Documentation complete
315
+ ✅ PRD acceptance criteria met
316
+
317
+ **Quality gate FAILS if:**
318
+ ❌ Any lint errors
319
+ ❌ Defensive patterns found
320
+ ❌ Workaround naming found
321
+ ❌ Class-based tests found
322
+ ❌ Any test failures
323
+ ❌ Missing documentation
324
+ ❌ PRD criteria not met
325
+
326
+ **If quality gate FAILS:**
327
+
328
+ ```python
329
+ print("❌ QUALITY GATE FAILED")
330
+ print("\nIssues found:")
331
+ print("- Defensive patterns in 3 files")
332
+ print("- 2 tests failing")
333
+ print("- Missing adapter guide update")
334
+ print("\n⚠️ WORK NOT COMPLETE - DO NOT CLEAN UP")
335
+ print("Fix issues and re-run quality gate.")
336
+
337
+ # STOP HERE - DO NOT PROCEED TO CLEANUP
338
+ return
339
+ ```
340
+
341
+ **If quality gate PASSES:**
342
+
343
+ ```python
344
+ print("✅ QUALITY GATE PASSED")
345
+ print("\nProceeding to Phase 3: Knowledge Capture")
346
+ ```
347
+
348
+ ---
349
+
350
+ ## Phase 3: Knowledge Capture (NEW!)
351
+
352
+ **Extract new patterns from implementation and update AGENTS.md and guides.**
353
+
354
+ This phase captures organizational learning so future implementations benefit from discoveries.
355
+
356
+ ### Step 1: Analyze Implementation for Patterns
357
+
358
+ ```python
359
+ # Read implementation details
360
+ Read("specs/active/{requirement}/recovery.md")
361
+ Read("specs/active/{requirement}/research/")
362
+
363
+ # Review what was implemented
364
+ Grep(pattern="class.*Config|class.*Driver|def.*handler", path="sqlspec/adapters/", output_mode="content", head_limit=50)
365
+ ```
366
+
367
+ **Look for:**
368
+
369
+ 1. **New Patterns**: Novel approaches to common problems
370
+ 2. **Best Practices**: Techniques that worked particularly well
371
+ 3. **Conventions**: Naming, structure, or organization patterns
372
+ 4. **Type Handling**: New type conversion or validation approaches
373
+ 5. **Testing Patterns**: Effective test strategies
374
+ 6. **Performance Techniques**: Optimization discoveries
375
+ 7. **Error Handling**: Robust error management patterns
376
+
377
+ ### Step 2: Update AGENTS.md with New Patterns
378
+
379
+ **Add patterns to relevant sections:**
380
+
381
+ ```python
382
+ # Read current AGENTS.md
383
+ current_content = Read("AGENTS.md")
384
+
385
+ # Example: Add new driver_features pattern
386
+ Edit(
387
+ file_path="AGENTS.md",
388
+ old_string="### Compliance Table\n\nCurrent state of all adapters",
389
+ new_string="""### New Pattern: Session Callbacks for Type Handlers
390
+
391
+ When implementing optional type handlers (NumPy, pgvector, etc.):
392
+
393
+ ```python
394
+ class AdapterConfig(AsyncDatabaseConfig):
395
+ async def _create_pool(self):
396
+ config = dict(self.connection_config)
397
+
398
+ if self.driver_features.get("enable_feature", False):
399
+ config["session_callback"] = self._init_connection
400
+
401
+ return await create_pool(**config)
402
+
403
+ async def _init_connection(self, connection):
404
+ if self.driver_features.get("enable_feature", False):
405
+ from ._feature_handlers import register_handlers
406
+ register_handlers(connection)
407
+ ```
408
+
409
+ This pattern:
410
+
411
+ - Lazily imports type handlers only when needed
412
+ - Registers handlers per-connection for safety
413
+ - Allows graceful degradation when dependencies missing
414
+
415
+ ### Compliance Table
416
+
417
+ Current state of all adapters"""
418
+ )
419
+
420
+ ```
421
+
422
+ **Common sections to update:**
423
+
424
+ - **Code Quality Standards** - New coding patterns
425
+ - **Testing Strategy** - New test approaches
426
+ - **Performance Optimizations** - New optimization techniques
427
+ - **Database Adapter Implementation** - Adapter-specific patterns
428
+ - **driver_features Pattern** - New feature configurations
429
+
430
+ ### Step 3: Update Guides with New Patterns
431
+
432
+ **Enhance relevant guides in docs/guides/:**
433
+
434
+ ```python
435
+ # Example: Update adapter guide
436
+ Edit(
437
+ file_path="docs/guides/adapters/postgres.md",
438
+ old_string="## Advanced Features",
439
+ new_string="""## Advanced Features
440
+
441
+ ### Automatic pgvector Support
442
+
443
+ PostgreSQL adapters now auto-detect and enable pgvector when installed:
444
+
445
+ ```python
446
+ from sqlspec.adapters.asyncpg.config import AsyncpgConfig
447
+
448
+ # pgvector automatically enabled if installed
449
+ config = AsyncpgConfig(dsn="postgresql://localhost/db")
450
+
451
+ async with config.provide_session() as session:
452
+ # Vectors work automatically
453
+ embedding = [0.1, 0.2, 0.3, ...]
454
+ await session.execute(
455
+ "INSERT INTO embeddings (id, vector) VALUES ($1, $2)",
456
+ (1, embedding)
457
+ )
458
+ ```
459
+
460
+ This leverages the `driver_features` auto-detection pattern for seamless integration.
461
+ """
462
+ )
463
+
464
+ ```
465
+
466
+ **Guides to consider:**
467
+
468
+ - `docs/guides/adapters/{adapter}.md` - Adapter-specific patterns
469
+ - `docs/guides/testing/testing.md` - Testing patterns
470
+ - `docs/guides/performance/` - Performance techniques
471
+ - `docs/guides/architecture/` - Architectural patterns
472
+
473
+ ### Step 4: Document with Working Examples
474
+
475
+ **Ensure all new patterns have working code examples:**
476
+
477
+ ```python
478
+ # Test the example code
479
+ Bash(command="""
480
+ cat > /tmp/test_pattern.py << 'EOF'
481
+ from sqlspec.adapters.asyncpg.config import AsyncpgConfig
482
+
483
+ config = AsyncpgConfig(dsn="postgresql://localhost/test")
484
+ print(config.driver_features)
485
+ EOF
486
+
487
+ uv run python /tmp/test_pattern.py
488
+ """)
489
+ ```
490
+
491
+ **If example doesn't work, fix it before adding to docs.**
492
+
493
+ ---
494
+
495
+ ## Phase 4: Re-validation (NEW!)
496
+
497
+ **Verify consistency and stability after knowledge capture updates.**
498
+
499
+ This phase ensures documentation updates didn't break anything.
500
+
501
+ ### Step 1: Re-run Tests
502
+
503
+ ```bash
504
+ # Run full test suite again
505
+ uv run pytest -n 2 --dist=loadgroup
506
+
507
+ # Should see:
508
+ # ===== X passed in Y.YYs =====
509
+ ```
510
+
511
+ **If tests fail after doc updates:**
512
+
513
+ 1. Identify what broke
514
+ 2. Fix the issue (likely in AGENTS.md or guides)
515
+ 3. Re-run tests
516
+ 4. **DO NOT PROCEED** until tests pass
517
+
518
+ ### Step 2: Rebuild Documentation
519
+
520
+ ```bash
521
+ # Rebuild docs to catch any errors introduced
522
+ make docs
523
+
524
+ # Should see:
525
+ # build succeeded, X warnings.
526
+ ```
527
+
528
+ **Fix any new warnings or errors:**
529
+
530
+ - Broken cross-references from new content
531
+ - Invalid RST syntax in updates
532
+ - Missing files referenced in new examples
533
+
534
+ ### Step 3: Verify Pattern Consistency
535
+
536
+ ```python
537
+ # Check that new patterns don't contradict existing ones
538
+ Read("AGENTS.md")
539
+
540
+ # Manually verify:
541
+ # - New patterns align with existing standards
542
+ # - No contradictory advice
543
+ # - Examples follow project conventions
544
+ # - Terminology is consistent
545
+ ```
546
+
547
+ ### Step 4: Check for Breaking Changes
548
+
549
+ ```python
550
+ # Verify no breaking changes introduced
551
+ Grep(pattern="BREAKING|deprecated|removed", path="AGENTS.md", output_mode="content")
552
+ Grep(pattern="BREAKING|deprecated|removed", path="docs/guides/", output_mode="content")
553
+
554
+ # If found, ensure properly documented and justified
555
+ ```
556
+
557
+ ### Step 5: Re-validation Decision
558
+
559
+ **Re-validation PASSES if:**
560
+ ✅ All tests still passing
561
+ ✅ Documentation builds without errors
562
+ ✅ New patterns consistent with existing
563
+ ✅ No unintended breaking changes
564
+ ✅ Examples work as documented
565
+
566
+ **Re-validation FAILS if:**
567
+ ❌ Tests broken after updates
568
+ ❌ Documentation build errors
569
+ ❌ Pattern contradictions
570
+ ❌ Undocumented breaking changes
571
+
572
+ **If re-validation FAILS:**
573
+
574
+ ```python
575
+ print("❌ RE-VALIDATION FAILED")
576
+ print("\nIssues found:")
577
+ print("- 2 tests broken after AGENTS.md update")
578
+ print("- Documentation has 3 new warnings")
579
+ print("\n⚠️ FIX ISSUES BEFORE PROCEEDING")
580
+
581
+ # STOP HERE - DO NOT PROCEED TO CLEANUP
582
+ return
583
+ ```
584
+
585
+ **If re-validation PASSES:**
586
+
587
+ ```python
588
+ print("✅ RE-VALIDATION PASSED")
589
+ print("\nProceeding to Phase 5: Cleanup & Archive")
590
+ ```
591
+
592
+ ---
593
+
594
+ ## Phase 5: Cleanup & Archive (MANDATORY)
595
+
596
+ **This phase is MANDATORY after re-validation passes.**
597
+
598
+ Cleanup workspace, archive completed work, remove temporary files.
599
+
600
+ ### Step 1: Clean Temporary Files
601
+
602
+ **Remove all tmp/ directories:**
603
+
604
+ ```bash
605
+ # Find and remove tmp directories
606
+ find specs/active/*/tmp -type d -exec rm -rf {} + 2>/dev/null || true
607
+
608
+ # Verify removed
609
+ find specs/active/*/tmp 2>/dev/null
610
+ # Should return nothing
611
+ ```
612
+
613
+ **Remove other temporary artifacts:**
614
+
615
+ ```bash
616
+ # Remove verification artifacts
617
+ rm -rf specs/active/verification/ 2>/dev/null || true
618
+
619
+ # Remove any __pycache__ in specs/
620
+ find specs -type d -name __pycache__ -exec rm -rf {} + 2>/dev/null || true
621
+
622
+ # Remove any .DS_Store or other cruft
623
+ find specs -name ".DS_Store" -delete 2>/dev/null || true
624
+ ```
625
+
626
+ ### Step 2: Update Final Status
627
+
628
+ **Mark all tasks complete:**
629
+
630
+ ```python
631
+ Edit(
632
+ file_path="specs/active/{requirement}/tasks.md",
633
+ old_string="- [ ] 7. Archived (via Docs & Vision agent)",
634
+ new_string="- [x] 7. Archived (via Docs & Vision agent)"
635
+ )
636
+ ```
637
+
638
+ **Update recovery.md with completion status:**
639
+
640
+ ```python
641
+ Edit(
642
+ file_path="specs/active/{requirement}/recovery.md",
643
+ old_string="Status: {current_status}",
644
+ new_string="""Status: ✅ COMPLETE
645
+
646
+ Completion date: 2025-10-19
647
+ Quality gate: PASSED
648
+ Knowledge capture: COMPLETE
649
+ Re-validation: PASSED
650
+ Tests: All passing
651
+ Documentation: Complete
652
+ """
653
+ )
654
+ ```
655
+
656
+ ### Step 3: Archive Completed Work
657
+
658
+ **Move to archive:**
659
+
660
+ ```bash
661
+ # Create archive directory if needed
662
+ mkdir -p specs/archive
663
+
664
+ # Move completed requirement to archive
665
+ mv specs/active/{requirement-slug} specs/archive/{requirement-slug}
666
+
667
+ # Verify archived
668
+ ls -la specs/archive/{requirement-slug}
669
+ ```
670
+
671
+ ### Step 4: Final Verification
672
+
673
+ **Verify workspace is clean:**
674
+
675
+ ```bash
676
+ # Check specs/ structure
677
+ ls -la specs/
678
+
679
+ # Should show:
680
+ # - active/ (active specs)
681
+ # - archive/ (archived specs)
682
+ # - template-spec/ (template)
683
+ # - README.md
684
+
685
+ # No tmp/ directories should exist
686
+ find specs -name tmp -type d
687
+ # Should return nothing
688
+ ```
689
+
690
+ ---
691
+
692
+ ## Completion Report
693
+
694
+ After all 5 phases complete, provide summary:
695
+
696
+ ```markdown
697
+ # Work Complete: {Feature Name}
698
+
699
+ ## ✅ Documentation (Phase 1)
700
+ - Updated: docs/guides/adapters/asyncpg.md
701
+ - Updated: docs/guides/quick-reference/quick-reference.md
702
+ - Added: docs/reference/adapters/asyncpg.rst
703
+ - Docs build: ✅ No warnings
704
+
705
+ ## ✅ Quality Gate (Phase 2)
706
+ - Linting: ✅ All checks passed
707
+ - Anti-patterns: ✅ None found
708
+ - Tests: ✅ 45/45 passing
709
+ - Coverage: 87% (target: 80%)
710
+ - PRD criteria: ✅ All met
711
+
712
+ ## ✅ Knowledge Capture (Phase 3)
713
+ - Patterns extracted: 3 new patterns
714
+ - AGENTS.md updated: Added session callback pattern
715
+ - Guides updated: docs/guides/adapters/postgres.md
716
+ - Examples validated: ✅ All working
717
+
718
+ ## ✅ Re-validation (Phase 4)
719
+ - Tests after updates: ✅ 45/45 passing
720
+ - Documentation rebuild: ✅ No new errors
721
+ - Pattern consistency: ✅ Verified
722
+ - Breaking changes: ✅ None
723
+
724
+ ## ✅ Cleanup & Archive (Phase 5)
725
+ - Temporary files: ✅ Removed
726
+ - Workspace: ✅ Archived to specs/archive/{requirement}
727
+ - specs/ root: ✅ Clean
728
+
729
+ ## Files Modified
730
+ - [sqlspec/adapters/asyncpg/driver.py](sqlspec/adapters/asyncpg/driver.py#L42-L67)
731
+ - [sqlspec/core/result.py](sqlspec/core/result.py#L123)
732
+ - [docs/guides/adapters/asyncpg.md](docs/guides/adapters/asyncpg.md)
733
+ - [AGENTS.md](AGENTS.md) - Knowledge capture
734
+
735
+ ## Tests Added
736
+ - [tests/integration/test_adapters/test_asyncpg/test_connection.py](tests/integration/test_adapters/test_asyncpg/test_connection.py)
737
+ - [tests/unit/test_core/test_statement.py](tests/unit/test_core/test_statement.py)
738
+
739
+ ## Knowledge Captured
740
+ - Session callback pattern for type handlers
741
+ - Auto-detection pattern for optional dependencies
742
+ - Per-connection handler registration approach
743
+
744
+ ## Next Steps
745
+ Feature complete and ready for PR! 🎉
746
+
747
+ Run `make lint && make test` one final time before committing.
748
+ ```
749
+
750
+ ## Anti-Pattern Enforcement
751
+
752
+ **These patterns MUST be caught and blocked:**
753
+
754
+ ❌ **Defensive coding:**
755
+
756
+ ```python
757
+ # NEVER
758
+ if hasattr(obj, 'where'):
759
+ obj.where("x = 1")
760
+
761
+ # ALWAYS
762
+ from sqlspec.utils.type_guards import supports_where
763
+ if supports_where(obj):
764
+ obj.where("x = 1")
765
+ ```
766
+
767
+ ❌ **Workaround naming:**
768
+
769
+ ```python
770
+ # NEVER
771
+ def process_query_optimized():
772
+ pass
773
+
774
+ def get_statement_with_cache():
775
+ pass
776
+
777
+ def _fallback_execute():
778
+ pass
779
+
780
+ # ALWAYS
781
+ def process_query():
782
+ pass
783
+
784
+ def get_statement():
785
+ pass
786
+
787
+ def execute():
788
+ pass
789
+ ```
790
+
791
+ ❌ **Class-based tests:**
792
+
793
+ ```python
794
+ # NEVER
795
+ class TestAsyncpgConnection:
796
+ def test_connect(self):
797
+ pass
798
+
799
+ # ALWAYS
800
+ def test_asyncpg_connection_basic():
801
+ pass
802
+ ```
803
+
804
+ ## Tools Available
805
+
806
+ - **Context7** - Library documentation (Sphinx, MyST, etc.)
807
+ - **WebSearch** - Documentation best practices
808
+ - **Read/Write/Edit** - File operations
809
+ - **Bash** - Build docs, run tests, cleanup
810
+ - **Glob/Grep** - Find files, search patterns
811
+
812
+ ## Success Criteria
813
+
814
+ ✅ **Phase 1 Complete** - Documentation comprehensive and builds
815
+ ✅ **Phase 2 Complete** - Quality gate passed
816
+ ✅ **Phase 3 Complete** - Knowledge captured in AGENTS.md and guides
817
+ ✅ **Phase 4 Complete** - Re-validation passed after updates
818
+ ✅ **Phase 5 Complete** - Workspace cleaned and archived
819
+ ✅ **All tests pass** - `make lint && make test` success
820
+ ✅ **Standards followed** - AGENTS.md compliance
821
+ ✅ **Knowledge preserved** - Future implementations benefit
822
+ ✅ **Clean handoff** - Ready for PR/commit