sqlspec 0.5.0__tar.gz → 0.38.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.
- {sqlspec-0.5.0 → sqlspec-0.38.0}/.gitignore +31 -1
- {sqlspec-0.5.0 → sqlspec-0.38.0}/.pre-commit-config.yaml +7 -6
- {sqlspec-0.5.0 → sqlspec-0.38.0}/CONTRIBUTING.rst +12 -5
- sqlspec-0.38.0/LICENSE +21 -0
- {sqlspec-0.5.0 → sqlspec-0.38.0}/Makefile +112 -14
- sqlspec-0.38.0/PKG-INFO +205 -0
- sqlspec-0.38.0/README.md +109 -0
- sqlspec-0.38.0/pyproject.toml +570 -0
- sqlspec-0.38.0/sqlspec/__init__.py +140 -0
- sqlspec-0.38.0/sqlspec/__main__.py +12 -0
- {sqlspec-0.5.0 → sqlspec-0.38.0}/sqlspec/__metadata__.py +2 -6
- sqlspec-0.38.0/sqlspec/_serialization.py +315 -0
- sqlspec-0.38.0/sqlspec/_typing.py +700 -0
- sqlspec-0.38.0/sqlspec/adapters/adbc/__init__.py +5 -0
- sqlspec-0.38.0/sqlspec/adapters/adbc/_typing.py +82 -0
- sqlspec-0.38.0/sqlspec/adapters/adbc/adk/__init__.py +5 -0
- sqlspec-0.38.0/sqlspec/adapters/adbc/adk/store.py +1273 -0
- sqlspec-0.38.0/sqlspec/adapters/adbc/config.py +295 -0
- sqlspec-0.38.0/sqlspec/adapters/adbc/core.py +800 -0
- sqlspec-0.38.0/sqlspec/adapters/adbc/data_dictionary.py +334 -0
- sqlspec-0.38.0/sqlspec/adapters/adbc/driver.py +543 -0
- sqlspec-0.38.0/sqlspec/adapters/adbc/events/__init__.py +5 -0
- sqlspec-0.38.0/sqlspec/adapters/adbc/events/store.py +285 -0
- sqlspec-0.38.0/sqlspec/adapters/adbc/litestar/__init__.py +5 -0
- sqlspec-0.38.0/sqlspec/adapters/adbc/litestar/store.py +502 -0
- sqlspec-0.38.0/sqlspec/adapters/adbc/type_converter.py +140 -0
- sqlspec-0.38.0/sqlspec/adapters/aiosqlite/__init__.py +25 -0
- sqlspec-0.38.0/sqlspec/adapters/aiosqlite/_typing.py +82 -0
- sqlspec-0.38.0/sqlspec/adapters/aiosqlite/adk/__init__.py +5 -0
- sqlspec-0.38.0/sqlspec/adapters/aiosqlite/adk/store.py +818 -0
- sqlspec-0.38.0/sqlspec/adapters/aiosqlite/config.py +334 -0
- sqlspec-0.38.0/sqlspec/adapters/aiosqlite/core.py +315 -0
- sqlspec-0.38.0/sqlspec/adapters/aiosqlite/data_dictionary.py +208 -0
- sqlspec-0.38.0/sqlspec/adapters/aiosqlite/driver.py +319 -0
- sqlspec-0.38.0/sqlspec/adapters/aiosqlite/events/__init__.py +5 -0
- sqlspec-0.38.0/sqlspec/adapters/aiosqlite/events/store.py +20 -0
- sqlspec-0.38.0/sqlspec/adapters/aiosqlite/litestar/__init__.py +5 -0
- sqlspec-0.38.0/sqlspec/adapters/aiosqlite/litestar/store.py +279 -0
- sqlspec-0.38.0/sqlspec/adapters/aiosqlite/pool.py +618 -0
- sqlspec-0.38.0/sqlspec/adapters/asyncmy/__init__.py +21 -0
- sqlspec-0.38.0/sqlspec/adapters/asyncmy/_typing.py +87 -0
- sqlspec-0.38.0/sqlspec/adapters/asyncmy/adk/__init__.py +5 -0
- sqlspec-0.38.0/sqlspec/adapters/asyncmy/adk/store.py +703 -0
- sqlspec-0.38.0/sqlspec/adapters/asyncmy/config.py +300 -0
- sqlspec-0.38.0/sqlspec/adapters/asyncmy/core.py +414 -0
- sqlspec-0.38.0/sqlspec/adapters/asyncmy/data_dictionary.py +124 -0
- sqlspec-0.38.0/sqlspec/adapters/asyncmy/driver.py +389 -0
- sqlspec-0.38.0/sqlspec/adapters/asyncmy/events/__init__.py +5 -0
- sqlspec-0.38.0/sqlspec/adapters/asyncmy/events/store.py +104 -0
- sqlspec-0.38.0/sqlspec/adapters/asyncmy/litestar/__init__.py +5 -0
- sqlspec-0.38.0/sqlspec/adapters/asyncmy/litestar/store.py +296 -0
- sqlspec-0.38.0/sqlspec/adapters/asyncpg/__init__.py +19 -0
- sqlspec-0.38.0/sqlspec/adapters/asyncpg/_typing.py +88 -0
- sqlspec-0.38.0/sqlspec/adapters/asyncpg/adk/__init__.py +5 -0
- sqlspec-0.38.0/sqlspec/adapters/asyncpg/adk/store.py +748 -0
- sqlspec-0.38.0/sqlspec/adapters/asyncpg/config.py +567 -0
- sqlspec-0.38.0/sqlspec/adapters/asyncpg/core.py +387 -0
- sqlspec-0.38.0/sqlspec/adapters/asyncpg/data_dictionary.py +162 -0
- sqlspec-0.38.0/sqlspec/adapters/asyncpg/driver.py +487 -0
- sqlspec-0.38.0/sqlspec/adapters/asyncpg/events/__init__.py +6 -0
- sqlspec-0.38.0/sqlspec/adapters/asyncpg/events/backend.py +286 -0
- sqlspec-0.38.0/sqlspec/adapters/asyncpg/events/store.py +40 -0
- sqlspec-0.38.0/sqlspec/adapters/asyncpg/litestar/__init__.py +5 -0
- sqlspec-0.38.0/sqlspec/adapters/asyncpg/litestar/store.py +251 -0
- sqlspec-0.38.0/sqlspec/adapters/bigquery/__init__.py +14 -0
- sqlspec-0.38.0/sqlspec/adapters/bigquery/_typing.py +86 -0
- sqlspec-0.38.0/sqlspec/adapters/bigquery/adk/__init__.py +5 -0
- sqlspec-0.38.0/sqlspec/adapters/bigquery/adk/store.py +827 -0
- sqlspec-0.38.0/sqlspec/adapters/bigquery/config.py +353 -0
- sqlspec-0.38.0/sqlspec/adapters/bigquery/core.py +735 -0
- sqlspec-0.38.0/sqlspec/adapters/bigquery/data_dictionary.py +128 -0
- sqlspec-0.38.0/sqlspec/adapters/bigquery/driver.py +558 -0
- sqlspec-0.38.0/sqlspec/adapters/bigquery/events/__init__.py +5 -0
- sqlspec-0.38.0/sqlspec/adapters/bigquery/events/store.py +139 -0
- sqlspec-0.38.0/sqlspec/adapters/bigquery/litestar/__init__.py +5 -0
- sqlspec-0.38.0/sqlspec/adapters/bigquery/litestar/store.py +325 -0
- sqlspec-0.38.0/sqlspec/adapters/bigquery/type_converter.py +107 -0
- sqlspec-0.38.0/sqlspec/adapters/cockroach_asyncpg/__init__.py +24 -0
- sqlspec-0.38.0/sqlspec/adapters/cockroach_asyncpg/_typing.py +72 -0
- sqlspec-0.38.0/sqlspec/adapters/cockroach_asyncpg/adk/__init__.py +3 -0
- sqlspec-0.38.0/sqlspec/adapters/cockroach_asyncpg/adk/store.py +410 -0
- sqlspec-0.38.0/sqlspec/adapters/cockroach_asyncpg/config.py +236 -0
- sqlspec-0.38.0/sqlspec/adapters/cockroach_asyncpg/core.py +55 -0
- sqlspec-0.38.0/sqlspec/adapters/cockroach_asyncpg/data_dictionary.py +107 -0
- sqlspec-0.38.0/sqlspec/adapters/cockroach_asyncpg/driver.py +144 -0
- sqlspec-0.38.0/sqlspec/adapters/cockroach_asyncpg/events/__init__.py +3 -0
- sqlspec-0.38.0/sqlspec/adapters/cockroach_asyncpg/events/store.py +20 -0
- sqlspec-0.38.0/sqlspec/adapters/cockroach_asyncpg/litestar/__init__.py +3 -0
- sqlspec-0.38.0/sqlspec/adapters/cockroach_asyncpg/litestar/store.py +142 -0
- sqlspec-0.38.0/sqlspec/adapters/cockroach_psycopg/__init__.py +38 -0
- sqlspec-0.38.0/sqlspec/adapters/cockroach_psycopg/_typing.py +129 -0
- sqlspec-0.38.0/sqlspec/adapters/cockroach_psycopg/adk/__init__.py +13 -0
- sqlspec-0.38.0/sqlspec/adapters/cockroach_psycopg/adk/store.py +868 -0
- sqlspec-0.38.0/sqlspec/adapters/cockroach_psycopg/config.py +480 -0
- sqlspec-0.38.0/sqlspec/adapters/cockroach_psycopg/core.py +63 -0
- sqlspec-0.38.0/sqlspec/adapters/cockroach_psycopg/data_dictionary.py +215 -0
- sqlspec-0.38.0/sqlspec/adapters/cockroach_psycopg/driver.py +284 -0
- sqlspec-0.38.0/sqlspec/adapters/cockroach_psycopg/events/__init__.py +6 -0
- sqlspec-0.38.0/sqlspec/adapters/cockroach_psycopg/events/store.py +34 -0
- sqlspec-0.38.0/sqlspec/adapters/cockroach_psycopg/litestar/__init__.py +3 -0
- sqlspec-0.38.0/sqlspec/adapters/cockroach_psycopg/litestar/store.py +325 -0
- sqlspec-0.38.0/sqlspec/adapters/duckdb/__init__.py +25 -0
- sqlspec-0.38.0/sqlspec/adapters/duckdb/_typing.py +81 -0
- sqlspec-0.38.0/sqlspec/adapters/duckdb/adk/__init__.py +14 -0
- sqlspec-0.38.0/sqlspec/adapters/duckdb/adk/store.py +850 -0
- sqlspec-0.38.0/sqlspec/adapters/duckdb/config.py +463 -0
- sqlspec-0.38.0/sqlspec/adapters/duckdb/core.py +285 -0
- sqlspec-0.38.0/sqlspec/adapters/duckdb/data_dictionary.py +140 -0
- sqlspec-0.38.0/sqlspec/adapters/duckdb/driver.py +440 -0
- sqlspec-0.38.0/sqlspec/adapters/duckdb/events/__init__.py +5 -0
- sqlspec-0.38.0/sqlspec/adapters/duckdb/events/store.py +57 -0
- sqlspec-0.38.0/sqlspec/adapters/duckdb/litestar/__init__.py +5 -0
- sqlspec-0.38.0/sqlspec/adapters/duckdb/litestar/store.py +330 -0
- sqlspec-0.38.0/sqlspec/adapters/duckdb/pool.py +350 -0
- sqlspec-0.38.0/sqlspec/adapters/duckdb/type_converter.py +118 -0
- sqlspec-0.38.0/sqlspec/adapters/mock/__init__.py +72 -0
- sqlspec-0.38.0/sqlspec/adapters/mock/_typing.py +147 -0
- sqlspec-0.38.0/sqlspec/adapters/mock/config.py +483 -0
- sqlspec-0.38.0/sqlspec/adapters/mock/core.py +319 -0
- sqlspec-0.38.0/sqlspec/adapters/mock/data_dictionary.py +366 -0
- sqlspec-0.38.0/sqlspec/adapters/mock/driver.py +733 -0
- sqlspec-0.38.0/sqlspec/adapters/mysqlconnector/__init__.py +36 -0
- sqlspec-0.38.0/sqlspec/adapters/mysqlconnector/_typing.py +141 -0
- sqlspec-0.38.0/sqlspec/adapters/mysqlconnector/adk/__init__.py +15 -0
- sqlspec-0.38.0/sqlspec/adapters/mysqlconnector/adk/store.py +1060 -0
- sqlspec-0.38.0/sqlspec/adapters/mysqlconnector/config.py +392 -0
- sqlspec-0.38.0/sqlspec/adapters/mysqlconnector/core.py +357 -0
- sqlspec-0.38.0/sqlspec/adapters/mysqlconnector/data_dictionary.py +235 -0
- sqlspec-0.38.0/sqlspec/adapters/mysqlconnector/driver.py +495 -0
- sqlspec-0.38.0/sqlspec/adapters/mysqlconnector/events/__init__.py +8 -0
- sqlspec-0.38.0/sqlspec/adapters/mysqlconnector/events/store.py +98 -0
- sqlspec-0.38.0/sqlspec/adapters/mysqlconnector/litestar/__init__.py +5 -0
- sqlspec-0.38.0/sqlspec/adapters/mysqlconnector/litestar/store.py +426 -0
- sqlspec-0.38.0/sqlspec/adapters/oracledb/__init__.py +60 -0
- sqlspec-0.38.0/sqlspec/adapters/oracledb/_numpy_handlers.py +141 -0
- sqlspec-0.38.0/sqlspec/adapters/oracledb/_typing.py +182 -0
- sqlspec-0.38.0/sqlspec/adapters/oracledb/_uuid_handlers.py +166 -0
- sqlspec-0.38.0/sqlspec/adapters/oracledb/adk/__init__.py +10 -0
- sqlspec-0.38.0/sqlspec/adapters/oracledb/adk/store.py +2369 -0
- sqlspec-0.38.0/sqlspec/adapters/oracledb/config.py +546 -0
- sqlspec-0.38.0/sqlspec/adapters/oracledb/core.py +560 -0
- sqlspec-0.38.0/sqlspec/adapters/oracledb/data_dictionary.py +536 -0
- sqlspec-0.38.0/sqlspec/adapters/oracledb/driver.py +1241 -0
- sqlspec-0.38.0/sqlspec/adapters/oracledb/events/__init__.py +16 -0
- sqlspec-0.38.0/sqlspec/adapters/oracledb/events/backend.py +347 -0
- sqlspec-0.38.0/sqlspec/adapters/oracledb/events/store.py +420 -0
- sqlspec-0.38.0/sqlspec/adapters/oracledb/litestar/__init__.py +5 -0
- sqlspec-0.38.0/sqlspec/adapters/oracledb/litestar/store.py +781 -0
- sqlspec-0.38.0/sqlspec/adapters/oracledb/migrations.py +535 -0
- sqlspec-0.38.0/sqlspec/adapters/oracledb/type_converter.py +211 -0
- sqlspec-0.38.0/sqlspec/adapters/psqlpy/__init__.py +17 -0
- sqlspec-0.38.0/sqlspec/adapters/psqlpy/_typing.py +79 -0
- sqlspec-0.38.0/sqlspec/adapters/psqlpy/adk/__init__.py +5 -0
- sqlspec-0.38.0/sqlspec/adapters/psqlpy/adk/store.py +766 -0
- sqlspec-0.38.0/sqlspec/adapters/psqlpy/config.py +302 -0
- sqlspec-0.38.0/sqlspec/adapters/psqlpy/core.py +509 -0
- sqlspec-0.38.0/sqlspec/adapters/psqlpy/data_dictionary.py +126 -0
- sqlspec-0.38.0/sqlspec/adapters/psqlpy/driver.py +444 -0
- sqlspec-0.38.0/sqlspec/adapters/psqlpy/events/__init__.py +6 -0
- sqlspec-0.38.0/sqlspec/adapters/psqlpy/events/backend.py +310 -0
- sqlspec-0.38.0/sqlspec/adapters/psqlpy/events/store.py +20 -0
- sqlspec-0.38.0/sqlspec/adapters/psqlpy/litestar/__init__.py +5 -0
- sqlspec-0.38.0/sqlspec/adapters/psqlpy/litestar/store.py +270 -0
- sqlspec-0.38.0/sqlspec/adapters/psqlpy/type_converter.py +113 -0
- sqlspec-0.38.0/sqlspec/adapters/psycopg/__init__.py +32 -0
- sqlspec-0.38.0/sqlspec/adapters/psycopg/_typing.py +164 -0
- sqlspec-0.38.0/sqlspec/adapters/psycopg/adk/__init__.py +10 -0
- sqlspec-0.38.0/sqlspec/adapters/psycopg/adk/store.py +1387 -0
- sqlspec-0.38.0/sqlspec/adapters/psycopg/config.py +572 -0
- sqlspec-0.38.0/sqlspec/adapters/psycopg/core.py +486 -0
- sqlspec-0.38.0/sqlspec/adapters/psycopg/data_dictionary.py +289 -0
- sqlspec-0.38.0/sqlspec/adapters/psycopg/driver.py +1005 -0
- sqlspec-0.38.0/sqlspec/adapters/psycopg/events/__init__.py +20 -0
- sqlspec-0.38.0/sqlspec/adapters/psycopg/events/backend.py +458 -0
- sqlspec-0.38.0/sqlspec/adapters/psycopg/events/store.py +42 -0
- sqlspec-0.38.0/sqlspec/adapters/psycopg/litestar/__init__.py +5 -0
- sqlspec-0.38.0/sqlspec/adapters/psycopg/litestar/store.py +552 -0
- sqlspec-0.38.0/sqlspec/adapters/psycopg/type_converter.py +93 -0
- sqlspec-0.38.0/sqlspec/adapters/pymysql/__init__.py +21 -0
- sqlspec-0.38.0/sqlspec/adapters/pymysql/_typing.py +71 -0
- sqlspec-0.38.0/sqlspec/adapters/pymysql/adk/__init__.py +5 -0
- sqlspec-0.38.0/sqlspec/adapters/pymysql/adk/store.py +540 -0
- sqlspec-0.38.0/sqlspec/adapters/pymysql/config.py +195 -0
- sqlspec-0.38.0/sqlspec/adapters/pymysql/core.py +353 -0
- sqlspec-0.38.0/sqlspec/adapters/pymysql/data_dictionary.py +122 -0
- sqlspec-0.38.0/sqlspec/adapters/pymysql/driver.py +265 -0
- sqlspec-0.38.0/sqlspec/adapters/pymysql/events/__init__.py +5 -0
- sqlspec-0.38.0/sqlspec/adapters/pymysql/events/store.py +50 -0
- sqlspec-0.38.0/sqlspec/adapters/pymysql/litestar/__init__.py +5 -0
- sqlspec-0.38.0/sqlspec/adapters/pymysql/litestar/store.py +232 -0
- sqlspec-0.38.0/sqlspec/adapters/pymysql/pool.py +164 -0
- sqlspec-0.38.0/sqlspec/adapters/spanner/__init__.py +40 -0
- sqlspec-0.38.0/sqlspec/adapters/spanner/_typing.py +86 -0
- sqlspec-0.38.0/sqlspec/adapters/spanner/adk/__init__.py +5 -0
- sqlspec-0.38.0/sqlspec/adapters/spanner/adk/store.py +732 -0
- sqlspec-0.38.0/sqlspec/adapters/spanner/config.py +350 -0
- sqlspec-0.38.0/sqlspec/adapters/spanner/core.py +216 -0
- sqlspec-0.38.0/sqlspec/adapters/spanner/data_dictionary.py +120 -0
- sqlspec-0.38.0/sqlspec/adapters/spanner/dialect/__init__.py +6 -0
- sqlspec-0.38.0/sqlspec/adapters/spanner/dialect/_spangres.py +57 -0
- sqlspec-0.38.0/sqlspec/adapters/spanner/dialect/_spanner.py +130 -0
- sqlspec-0.38.0/sqlspec/adapters/spanner/driver.py +373 -0
- sqlspec-0.38.0/sqlspec/adapters/spanner/events/__init__.py +5 -0
- sqlspec-0.38.0/sqlspec/adapters/spanner/events/store.py +187 -0
- sqlspec-0.38.0/sqlspec/adapters/spanner/litestar/__init__.py +5 -0
- sqlspec-0.38.0/sqlspec/adapters/spanner/litestar/store.py +291 -0
- sqlspec-0.38.0/sqlspec/adapters/spanner/type_converter.py +331 -0
- sqlspec-0.38.0/sqlspec/adapters/sqlite/__init__.py +19 -0
- sqlspec-0.38.0/sqlspec/adapters/sqlite/_typing.py +80 -0
- sqlspec-0.38.0/sqlspec/adapters/sqlite/adk/__init__.py +5 -0
- sqlspec-0.38.0/sqlspec/adapters/sqlite/adk/store.py +958 -0
- sqlspec-0.38.0/sqlspec/adapters/sqlite/config.py +280 -0
- sqlspec-0.38.0/sqlspec/adapters/sqlite/core.py +355 -0
- sqlspec-0.38.0/sqlspec/adapters/sqlite/data_dictionary.py +202 -0
- sqlspec-0.38.0/sqlspec/adapters/sqlite/driver.py +365 -0
- sqlspec-0.38.0/sqlspec/adapters/sqlite/events/__init__.py +5 -0
- sqlspec-0.38.0/sqlspec/adapters/sqlite/events/store.py +20 -0
- sqlspec-0.38.0/sqlspec/adapters/sqlite/litestar/__init__.py +5 -0
- sqlspec-0.38.0/sqlspec/adapters/sqlite/litestar/store.py +316 -0
- sqlspec-0.38.0/sqlspec/adapters/sqlite/pool.py +229 -0
- sqlspec-0.38.0/sqlspec/adapters/sqlite/type_converter.py +114 -0
- sqlspec-0.38.0/sqlspec/base.py +747 -0
- sqlspec-0.38.0/sqlspec/builder/__init__.py +181 -0
- sqlspec-0.38.0/sqlspec/builder/_base.py +1022 -0
- sqlspec-0.38.0/sqlspec/builder/_column.py +521 -0
- sqlspec-0.38.0/sqlspec/builder/_ddl.py +1691 -0
- sqlspec-0.38.0/sqlspec/builder/_delete.py +95 -0
- sqlspec-0.38.0/sqlspec/builder/_dml.py +365 -0
- sqlspec-0.38.0/sqlspec/builder/_explain.py +579 -0
- sqlspec-0.38.0/sqlspec/builder/_expression_wrappers.py +46 -0
- sqlspec-0.38.0/sqlspec/builder/_factory.py +1955 -0
- sqlspec-0.38.0/sqlspec/builder/_insert.py +328 -0
- sqlspec-0.38.0/sqlspec/builder/_join.py +499 -0
- sqlspec-0.38.0/sqlspec/builder/_merge.py +821 -0
- sqlspec-0.38.0/sqlspec/builder/_parsing_utils.py +297 -0
- sqlspec-0.38.0/sqlspec/builder/_select.py +1672 -0
- sqlspec-0.38.0/sqlspec/builder/_temporal.py +139 -0
- sqlspec-0.38.0/sqlspec/builder/_update.py +173 -0
- sqlspec-0.38.0/sqlspec/builder/_vector_expressions.py +267 -0
- sqlspec-0.38.0/sqlspec/cli.py +911 -0
- sqlspec-0.38.0/sqlspec/config.py +1755 -0
- sqlspec-0.38.0/sqlspec/core/__init__.py +374 -0
- sqlspec-0.38.0/sqlspec/core/_correlation.py +176 -0
- sqlspec-0.38.0/sqlspec/core/cache.py +1094 -0
- sqlspec-0.38.0/sqlspec/core/compiler.py +962 -0
- sqlspec-0.38.0/sqlspec/core/explain.py +275 -0
- sqlspec-0.38.0/sqlspec/core/filters.py +952 -0
- sqlspec-0.38.0/sqlspec/core/hashing.py +262 -0
- sqlspec-0.38.0/sqlspec/core/metrics.py +83 -0
- sqlspec-0.38.0/sqlspec/core/parameters/__init__.py +71 -0
- sqlspec-0.38.0/sqlspec/core/parameters/_alignment.py +270 -0
- sqlspec-0.38.0/sqlspec/core/parameters/_converter.py +543 -0
- sqlspec-0.38.0/sqlspec/core/parameters/_processor.py +505 -0
- sqlspec-0.38.0/sqlspec/core/parameters/_registry.py +206 -0
- sqlspec-0.38.0/sqlspec/core/parameters/_transformers.py +292 -0
- sqlspec-0.38.0/sqlspec/core/parameters/_types.py +499 -0
- sqlspec-0.38.0/sqlspec/core/parameters/_validator.py +180 -0
- sqlspec-0.38.0/sqlspec/core/pipeline.py +319 -0
- sqlspec-0.38.0/sqlspec/core/query_modifiers.py +510 -0
- sqlspec-0.38.0/sqlspec/core/result/__init__.py +23 -0
- sqlspec-0.38.0/sqlspec/core/result/_base.py +1121 -0
- sqlspec-0.38.0/sqlspec/core/result/_io.py +28 -0
- sqlspec-0.38.0/sqlspec/core/splitter.py +966 -0
- sqlspec-0.38.0/sqlspec/core/stack.py +163 -0
- sqlspec-0.38.0/sqlspec/core/statement.py +1529 -0
- sqlspec-0.38.0/sqlspec/core/type_converter.py +339 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/__init__.py +22 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/_loader.py +123 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/_registry.py +74 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/_types.py +121 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/dialects/__init__.py +21 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/dialects/bigquery.py +49 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/dialects/cockroachdb.py +43 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/dialects/duckdb.py +47 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/dialects/mysql.py +42 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/dialects/oracle.py +34 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/dialects/postgres.py +46 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/dialects/spanner.py +37 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/dialects/sqlite.py +42 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/bigquery/columns.sql +23 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/bigquery/foreign_keys.sql +34 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/bigquery/indexes.sql +19 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/bigquery/tables.sql +33 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/bigquery/version.sql +3 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/cockroachdb/columns.sql +34 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/cockroachdb/foreign_keys.sql +40 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/cockroachdb/indexes.sql +32 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/cockroachdb/tables.sql +44 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/cockroachdb/version.sql +3 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/duckdb/columns.sql +23 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/duckdb/foreign_keys.sql +36 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/duckdb/indexes.sql +19 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/duckdb/tables.sql +38 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/duckdb/version.sql +3 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/mysql/columns.sql +23 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/mysql/foreign_keys.sql +28 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/mysql/indexes.sql +26 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/mysql/tables.sql +33 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/mysql/version.sql +3 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/oracle/columns.sql +23 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/oracle/foreign_keys.sql +48 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/oracle/indexes.sql +44 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/oracle/tables.sql +25 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/oracle/version.sql +20 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/postgres/columns.sql +34 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/postgres/foreign_keys.sql +40 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/postgres/indexes.sql +56 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/postgres/tables.sql +44 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/postgres/version.sql +3 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/spanner/columns.sql +23 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/spanner/foreign_keys.sql +70 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/spanner/indexes.sql +30 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/spanner/tables.sql +9 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/spanner/version.sql +3 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/sqlite/columns.sql +23 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/sqlite/foreign_keys.sql +22 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/sqlite/indexes.sql +7 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/sqlite/tables.sql +28 -0
- sqlspec-0.38.0/sqlspec/data_dictionary/sql/sqlite/version.sql +3 -0
- sqlspec-0.38.0/sqlspec/driver/__init__.py +32 -0
- sqlspec-0.38.0/sqlspec/driver/_async.py +1981 -0
- sqlspec-0.38.0/sqlspec/driver/_common.py +1632 -0
- sqlspec-0.38.0/sqlspec/driver/_sql_helpers.py +148 -0
- sqlspec-0.38.0/sqlspec/driver/_storage_helpers.py +144 -0
- sqlspec-0.38.0/sqlspec/driver/_sync.py +1952 -0
- sqlspec-0.38.0/sqlspec/exceptions.py +449 -0
- sqlspec-0.38.0/sqlspec/extensions/adk/__init__.py +70 -0
- sqlspec-0.38.0/sqlspec/extensions/adk/_types.py +51 -0
- sqlspec-0.38.0/sqlspec/extensions/adk/converters.py +172 -0
- sqlspec-0.38.0/sqlspec/extensions/adk/memory/__init__.py +69 -0
- sqlspec-0.38.0/sqlspec/extensions/adk/memory/_types.py +30 -0
- sqlspec-0.38.0/sqlspec/extensions/adk/memory/converters.py +149 -0
- sqlspec-0.38.0/sqlspec/extensions/adk/memory/service.py +217 -0
- sqlspec-0.38.0/sqlspec/extensions/adk/memory/store.py +569 -0
- sqlspec-0.38.0/sqlspec/extensions/adk/migrations/0001_create_adk_tables.py +246 -0
- sqlspec-0.38.0/sqlspec/extensions/adk/service.py +225 -0
- sqlspec-0.38.0/sqlspec/extensions/adk/store.py +567 -0
- sqlspec-0.38.0/sqlspec/extensions/events/__init__.py +51 -0
- sqlspec-0.38.0/sqlspec/extensions/events/_channel.py +703 -0
- sqlspec-0.38.0/sqlspec/extensions/events/_hints.py +45 -0
- sqlspec-0.38.0/sqlspec/extensions/events/_models.py +23 -0
- sqlspec-0.38.0/sqlspec/extensions/events/_payload.py +69 -0
- sqlspec-0.38.0/sqlspec/extensions/events/_protocols.py +134 -0
- sqlspec-0.38.0/sqlspec/extensions/events/_queue.py +461 -0
- sqlspec-0.38.0/sqlspec/extensions/events/_store.py +209 -0
- sqlspec-0.38.0/sqlspec/extensions/events/migrations/0001_create_event_queue.py +59 -0
- sqlspec-0.38.0/sqlspec/extensions/events/migrations/__init__.py +3 -0
- sqlspec-0.38.0/sqlspec/extensions/fastapi/__init__.py +19 -0
- sqlspec-0.38.0/sqlspec/extensions/fastapi/extension.py +351 -0
- sqlspec-0.38.0/sqlspec/extensions/fastapi/providers.py +607 -0
- sqlspec-0.38.0/sqlspec/extensions/flask/__init__.py +37 -0
- sqlspec-0.38.0/sqlspec/extensions/flask/_state.py +76 -0
- sqlspec-0.38.0/sqlspec/extensions/flask/_utils.py +71 -0
- sqlspec-0.38.0/sqlspec/extensions/flask/extension.py +519 -0
- sqlspec-0.38.0/sqlspec/extensions/litestar/__init__.py +28 -0
- sqlspec-0.38.0/sqlspec/extensions/litestar/_utils.py +52 -0
- sqlspec-0.38.0/sqlspec/extensions/litestar/channels.py +165 -0
- sqlspec-0.38.0/sqlspec/extensions/litestar/cli.py +102 -0
- sqlspec-0.38.0/sqlspec/extensions/litestar/config.py +90 -0
- sqlspec-0.38.0/sqlspec/extensions/litestar/handlers.py +316 -0
- sqlspec-0.38.0/sqlspec/extensions/litestar/migrations/0001_create_session_table.py +137 -0
- sqlspec-0.38.0/sqlspec/extensions/litestar/migrations/__init__.py +3 -0
- sqlspec-0.38.0/sqlspec/extensions/litestar/plugin.py +671 -0
- sqlspec-0.38.0/sqlspec/extensions/litestar/providers.py +526 -0
- sqlspec-0.38.0/sqlspec/extensions/litestar/store.py +296 -0
- sqlspec-0.38.0/sqlspec/extensions/otel/__init__.py +58 -0
- sqlspec-0.38.0/sqlspec/extensions/prometheus/__init__.py +113 -0
- sqlspec-0.38.0/sqlspec/extensions/starlette/__init__.py +19 -0
- sqlspec-0.38.0/sqlspec/extensions/starlette/_state.py +30 -0
- sqlspec-0.38.0/sqlspec/extensions/starlette/_utils.py +96 -0
- sqlspec-0.38.0/sqlspec/extensions/starlette/extension.py +346 -0
- sqlspec-0.38.0/sqlspec/extensions/starlette/middleware.py +235 -0
- sqlspec-0.38.0/sqlspec/loader.py +702 -0
- sqlspec-0.38.0/sqlspec/migrations/__init__.py +36 -0
- sqlspec-0.38.0/sqlspec/migrations/base.py +731 -0
- sqlspec-0.38.0/sqlspec/migrations/commands.py +1232 -0
- sqlspec-0.38.0/sqlspec/migrations/context.py +157 -0
- sqlspec-0.38.0/sqlspec/migrations/fix.py +204 -0
- sqlspec-0.38.0/sqlspec/migrations/loaders.py +443 -0
- sqlspec-0.38.0/sqlspec/migrations/runner.py +1172 -0
- sqlspec-0.38.0/sqlspec/migrations/templates.py +234 -0
- sqlspec-0.38.0/sqlspec/migrations/tracker.py +611 -0
- sqlspec-0.38.0/sqlspec/migrations/utils.py +256 -0
- sqlspec-0.38.0/sqlspec/migrations/validation.py +207 -0
- sqlspec-0.38.0/sqlspec/migrations/version.py +446 -0
- sqlspec-0.38.0/sqlspec/observability/__init__.py +57 -0
- sqlspec-0.38.0/sqlspec/observability/_common.py +77 -0
- sqlspec-0.38.0/sqlspec/observability/_config.py +348 -0
- sqlspec-0.38.0/sqlspec/observability/_diagnostics.py +74 -0
- sqlspec-0.38.0/sqlspec/observability/_dispatcher.py +152 -0
- sqlspec-0.38.0/sqlspec/observability/_formatters/__init__.py +13 -0
- sqlspec-0.38.0/sqlspec/observability/_formatters/_aws.py +102 -0
- sqlspec-0.38.0/sqlspec/observability/_formatters/_azure.py +96 -0
- sqlspec-0.38.0/sqlspec/observability/_formatters/_base.py +57 -0
- sqlspec-0.38.0/sqlspec/observability/_formatters/_gcp.py +131 -0
- sqlspec-0.38.0/sqlspec/observability/_formatting.py +58 -0
- sqlspec-0.38.0/sqlspec/observability/_observer.py +363 -0
- sqlspec-0.38.0/sqlspec/observability/_runtime.py +420 -0
- sqlspec-0.38.0/sqlspec/observability/_sampling.py +188 -0
- sqlspec-0.38.0/sqlspec/observability/_spans.py +161 -0
- sqlspec-0.38.0/sqlspec/protocols.py +948 -0
- sqlspec-0.38.0/sqlspec/storage/__init__.py +48 -0
- sqlspec-0.38.0/sqlspec/storage/_utils.py +104 -0
- sqlspec-0.38.0/sqlspec/storage/backends/__init__.py +1 -0
- sqlspec-0.38.0/sqlspec/storage/backends/base.py +253 -0
- sqlspec-0.38.0/sqlspec/storage/backends/fsspec.py +529 -0
- sqlspec-0.38.0/sqlspec/storage/backends/local.py +441 -0
- sqlspec-0.38.0/sqlspec/storage/backends/obstore.py +916 -0
- sqlspec-0.38.0/sqlspec/storage/errors.py +104 -0
- sqlspec-0.38.0/sqlspec/storage/pipeline.py +582 -0
- sqlspec-0.38.0/sqlspec/storage/registry.py +301 -0
- sqlspec-0.38.0/sqlspec/typing.py +395 -0
- sqlspec-0.38.0/sqlspec/utils/__init__.py +7 -0
- sqlspec-0.38.0/sqlspec/utils/arrow_helpers.py +318 -0
- sqlspec-0.38.0/sqlspec/utils/config_tools.py +314 -0
- sqlspec-0.38.0/sqlspec/utils/correlation.py +134 -0
- sqlspec-0.38.0/sqlspec/utils/deprecation.py +190 -0
- sqlspec-0.38.0/sqlspec/utils/fixtures.py +258 -0
- sqlspec-0.38.0/sqlspec/utils/logging.py +251 -0
- sqlspec-0.38.0/sqlspec/utils/module_loader.py +306 -0
- sqlspec-0.38.0/sqlspec/utils/portal.py +375 -0
- sqlspec-0.38.0/sqlspec/utils/schema.py +986 -0
- sqlspec-0.38.0/sqlspec/utils/serializers.py +408 -0
- sqlspec-0.38.0/sqlspec/utils/singleton.py +41 -0
- sqlspec-0.38.0/sqlspec/utils/sync_tools.py +311 -0
- sqlspec-0.38.0/sqlspec/utils/text.py +108 -0
- sqlspec-0.38.0/sqlspec/utils/type_converters.py +128 -0
- sqlspec-0.38.0/sqlspec/utils/type_guards.py +1391 -0
- sqlspec-0.38.0/sqlspec/utils/uuids.py +225 -0
- sqlspec-0.38.0/tests/__init__.py +1 -0
- sqlspec-0.38.0/tests/conftest.py +120 -0
- sqlspec-0.38.0/tests/fixtures/__init__.py +1 -0
- sqlspec-0.38.0/tests/fixtures/asset_maintenance.sql +12 -0
- sqlspec-0.38.0/tests/fixtures/ddls-mysql-collection.sql +257 -0
- sqlspec-0.38.0/tests/fixtures/ddls-postgres-collection.sql +913 -0
- sqlspec-0.38.0/tests/fixtures/example_usage.py +60 -0
- sqlspec-0.38.0/tests/fixtures/init.sql +25 -0
- sqlspec-0.38.0/tests/fixtures/mysql/collection-config.sql +570 -0
- sqlspec-0.38.0/tests/fixtures/mysql/collection-data_types.sql +42 -0
- sqlspec-0.38.0/tests/fixtures/mysql/collection-database_details.sql +182 -0
- sqlspec-0.38.0/tests/fixtures/mysql/collection-engines.sql +34 -0
- sqlspec-0.38.0/tests/fixtures/mysql/collection-hostname.sql +17 -0
- sqlspec-0.38.0/tests/fixtures/mysql/collection-plugins.sql +44 -0
- sqlspec-0.38.0/tests/fixtures/mysql/collection-process_list.sql +38 -0
- sqlspec-0.38.0/tests/fixtures/mysql/collection-resource-groups.sql +50 -0
- sqlspec-0.38.0/tests/fixtures/mysql/collection-schema_objects.sql +197 -0
- sqlspec-0.38.0/tests/fixtures/mysql/collection-table_details.sql +134 -0
- sqlspec-0.38.0/tests/fixtures/mysql/collection-users.sql +52 -0
- sqlspec-0.38.0/tests/fixtures/mysql/init.sql +39 -0
- sqlspec-0.38.0/tests/fixtures/oracle.ddl.sql +207 -0
- sqlspec-0.38.0/tests/fixtures/postgres/collection-applications.sql +26 -0
- sqlspec-0.38.0/tests/fixtures/postgres/collection-aws_extension_dependency.sql +406 -0
- sqlspec-0.38.0/tests/fixtures/postgres/collection-aws_oracle_exists.sql +25 -0
- sqlspec-0.38.0/tests/fixtures/postgres/collection-bg_writer_stats.sql +63 -0
- sqlspec-0.38.0/tests/fixtures/postgres/collection-calculated_metrics.sql +245 -0
- sqlspec-0.38.0/tests/fixtures/postgres/collection-data_types.sql +72 -0
- sqlspec-0.38.0/tests/fixtures/postgres/collection-database_details.sql +386 -0
- sqlspec-0.38.0/tests/fixtures/postgres/collection-extensions.sql +41 -0
- sqlspec-0.38.0/tests/fixtures/postgres/collection-index_details.sql +75 -0
- sqlspec-0.38.0/tests/fixtures/postgres/collection-pglogical-details.sql +28 -0
- sqlspec-0.38.0/tests/fixtures/postgres/collection-privileges.sql +152 -0
- sqlspec-0.38.0/tests/fixtures/postgres/collection-replication_slots.sql +131 -0
- sqlspec-0.38.0/tests/fixtures/postgres/collection-replication_stats.sql +63 -0
- sqlspec-0.38.0/tests/fixtures/postgres/collection-schema_details.sql +77 -0
- sqlspec-0.38.0/tests/fixtures/postgres/collection-schema_objects.sql +205 -0
- sqlspec-0.38.0/tests/fixtures/postgres/collection-settings.sql +56 -0
- sqlspec-0.38.0/tests/fixtures/postgres/collection-source_details.sql +63 -0
- sqlspec-0.38.0/tests/fixtures/postgres/collection-table_details.sql +496 -0
- sqlspec-0.38.0/tests/fixtures/postgres/extended-collection-all-databases.sql +36 -0
- sqlspec-0.38.0/tests/fixtures/postgres/init.sql +24 -0
- sqlspec-0.38.0/tests/fixtures/readiness-check.sql +35 -0
- sqlspec-0.38.0/tests/fixtures/sql_utils.py +92 -0
- sqlspec-0.38.0/tests/integration/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/_events_helpers.py +34 -0
- sqlspec-0.38.0/tests/integration/adapters/_storage_bridge_helpers.py +28 -0
- sqlspec-0.38.0/tests/integration/adapters/adbc/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/adbc/conftest.py +177 -0
- sqlspec-0.38.0/tests/integration/adapters/adbc/extensions/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/adbc/extensions/adk/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/adbc/extensions/adk/test_dialect_integration.py +229 -0
- sqlspec-0.38.0/tests/integration/adapters/adbc/extensions/adk/test_dialect_support.py +198 -0
- sqlspec-0.38.0/tests/integration/adapters/adbc/extensions/adk/test_edge_cases.py +269 -0
- sqlspec-0.38.0/tests/integration/adapters/adbc/extensions/adk/test_event_operations.py +320 -0
- sqlspec-0.38.0/tests/integration/adapters/adbc/extensions/adk/test_memory_store.py +92 -0
- sqlspec-0.38.0/tests/integration/adapters/adbc/extensions/adk/test_owner_id_column.py +145 -0
- sqlspec-0.38.0/tests/integration/adapters/adbc/extensions/adk/test_session_operations.py +184 -0
- sqlspec-0.38.0/tests/integration/adapters/adbc/extensions/litestar/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/adbc/extensions/litestar/test_store.py +258 -0
- sqlspec-0.38.0/tests/integration/adapters/adbc/test_adbc_backends.py +269 -0
- sqlspec-0.38.0/tests/integration/adapters/adbc/test_adbc_connection.py +201 -0
- sqlspec-0.38.0/tests/integration/adapters/adbc/test_adbc_driver.py +487 -0
- sqlspec-0.38.0/tests/integration/adapters/adbc/test_adbc_edge_cases.py +506 -0
- sqlspec-0.38.0/tests/integration/adapters/adbc/test_adbc_results.py +376 -0
- sqlspec-0.38.0/tests/integration/adapters/adbc/test_arrow_duckdb.py +211 -0
- sqlspec-0.38.0/tests/integration/adapters/adbc/test_arrow_features.py +403 -0
- sqlspec-0.38.0/tests/integration/adapters/adbc/test_data_dictionary.py +142 -0
- sqlspec-0.38.0/tests/integration/adapters/adbc/test_exceptions.py +128 -0
- sqlspec-0.38.0/tests/integration/adapters/adbc/test_explain.py +146 -0
- sqlspec-0.38.0/tests/integration/adapters/adbc/test_migrations.py +293 -0
- sqlspec-0.38.0/tests/integration/adapters/adbc/test_parameter_styles.py +652 -0
- sqlspec-0.38.0/tests/integration/adapters/adbc/test_storage_bridge.py +61 -0
- sqlspec-0.38.0/tests/integration/adapters/adbc/test_vector_functions.py +325 -0
- sqlspec-0.38.0/tests/integration/adapters/aiosqlite/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/aiosqlite/conftest.py +90 -0
- sqlspec-0.38.0/tests/integration/adapters/aiosqlite/extensions/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/aiosqlite/extensions/adk/test_memory_store.py +99 -0
- sqlspec-0.38.0/tests/integration/adapters/aiosqlite/extensions/events/test_queue_backend.py +234 -0
- sqlspec-0.38.0/tests/integration/adapters/aiosqlite/extensions/litestar/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/aiosqlite/extensions/litestar/test_numpy_serialization.py +254 -0
- sqlspec-0.38.0/tests/integration/adapters/aiosqlite/extensions/litestar/test_store.py +234 -0
- sqlspec-0.38.0/tests/integration/adapters/aiosqlite/test_arrow.py +233 -0
- sqlspec-0.38.0/tests/integration/adapters/aiosqlite/test_connection.py +286 -0
- sqlspec-0.38.0/tests/integration/adapters/aiosqlite/test_data_dictionary.py +75 -0
- sqlspec-0.38.0/tests/integration/adapters/aiosqlite/test_driver.py +564 -0
- sqlspec-0.38.0/tests/integration/adapters/aiosqlite/test_exceptions.py +125 -0
- sqlspec-0.38.0/tests/integration/adapters/aiosqlite/test_explain.py +109 -0
- sqlspec-0.38.0/tests/integration/adapters/aiosqlite/test_migrations.py +334 -0
- sqlspec-0.38.0/tests/integration/adapters/aiosqlite/test_parameter_styles.py +379 -0
- sqlspec-0.38.0/tests/integration/adapters/aiosqlite/test_pooling.py +190 -0
- sqlspec-0.38.0/tests/integration/adapters/aiosqlite/test_storage_bridge.py +44 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncmy/__init__.py +3 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncmy/conftest.py +88 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncmy/extensions/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncmy/extensions/adk/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncmy/extensions/adk/conftest.py +118 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncmy/extensions/adk/test_store.py +332 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncmy/extensions/events/test_queue_backend.py +147 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncmy/extensions/litestar/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncmy/extensions/litestar/test_store.py +252 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncmy/test_arrow.py +203 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncmy/test_config.py +220 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncmy/test_driver.py +510 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncmy/test_exceptions.py +137 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncmy/test_explain.py +138 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncmy/test_features.py +284 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncmy/test_migrations.py +405 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncmy/test_parameter_styles.py +696 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncmy/test_storage_bridge.py +61 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncpg/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncpg/conftest.py +41 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncpg/extensions/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncpg/extensions/adk/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncpg/extensions/adk/conftest.py +69 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncpg/extensions/adk/test_owner_id_column.py +411 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncpg/extensions/adk/test_session_operations.py +134 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncpg/extensions/events/test_listen_notify.py +172 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncpg/extensions/events/test_queue_backend.py +38 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncpg/extensions/litestar/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncpg/extensions/litestar/test_store.py +237 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncpg/test_arrow.py +204 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncpg/test_cloud_connectors.py +205 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncpg/test_data_dictionary.py +167 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncpg/test_driver.py +906 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncpg/test_exceptions.py +119 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncpg/test_execute_many.py +271 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncpg/test_explain.py +119 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncpg/test_merge.py +251 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncpg/test_merge_bulk.py +280 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncpg/test_migrations.py +648 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncpg/test_parameter_styles.py +621 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncpg/test_schema_migration.py +323 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncpg/test_storage_bridge.py +69 -0
- sqlspec-0.38.0/tests/integration/adapters/asyncpg/test_vector_functions.py +287 -0
- sqlspec-0.38.0/tests/integration/adapters/bigquery/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/bigquery/conftest.py +75 -0
- sqlspec-0.38.0/tests/integration/adapters/bigquery/test_arrow.py +223 -0
- sqlspec-0.38.0/tests/integration/adapters/bigquery/test_config.py +147 -0
- sqlspec-0.38.0/tests/integration/adapters/bigquery/test_driver.py +540 -0
- sqlspec-0.38.0/tests/integration/adapters/bigquery/test_exceptions.py +93 -0
- sqlspec-0.38.0/tests/integration/adapters/bigquery/test_explain.py +102 -0
- sqlspec-0.38.0/tests/integration/adapters/bigquery/test_features.py +64 -0
- sqlspec-0.38.0/tests/integration/adapters/bigquery/test_vector_functions.py +217 -0
- sqlspec-0.38.0/tests/integration/adapters/cockroach_asyncpg/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/cockroach_asyncpg/conftest.py +38 -0
- sqlspec-0.38.0/tests/integration/adapters/cockroach_asyncpg/test_driver.py +47 -0
- sqlspec-0.38.0/tests/integration/adapters/cockroach_psycopg/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/cockroach_psycopg/conftest.py +59 -0
- sqlspec-0.38.0/tests/integration/adapters/cockroach_psycopg/test_driver.py +85 -0
- sqlspec-0.38.0/tests/integration/adapters/duckdb/__init__.py +5 -0
- sqlspec-0.38.0/tests/integration/adapters/duckdb/conftest.py +26 -0
- sqlspec-0.38.0/tests/integration/adapters/duckdb/extensions/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/duckdb/extensions/adk/test_memory_store.py +92 -0
- sqlspec-0.38.0/tests/integration/adapters/duckdb/extensions/adk/test_store.py +692 -0
- sqlspec-0.38.0/tests/integration/adapters/duckdb/extensions/events/test_queue_backend.py +35 -0
- sqlspec-0.38.0/tests/integration/adapters/duckdb/extensions/litestar/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/duckdb/extensions/litestar/test_store.py +273 -0
- sqlspec-0.38.0/tests/integration/adapters/duckdb/test_arrow.py +193 -0
- sqlspec-0.38.0/tests/integration/adapters/duckdb/test_connection.py +394 -0
- sqlspec-0.38.0/tests/integration/adapters/duckdb/test_driver.py +651 -0
- sqlspec-0.38.0/tests/integration/adapters/duckdb/test_driver_features.py +156 -0
- sqlspec-0.38.0/tests/integration/adapters/duckdb/test_exceptions.py +128 -0
- sqlspec-0.38.0/tests/integration/adapters/duckdb/test_execute_many.py +294 -0
- sqlspec-0.38.0/tests/integration/adapters/duckdb/test_explain.py +160 -0
- sqlspec-0.38.0/tests/integration/adapters/duckdb/test_migrations.py +284 -0
- sqlspec-0.38.0/tests/integration/adapters/duckdb/test_mixed_parameter_styles.py +151 -0
- sqlspec-0.38.0/tests/integration/adapters/duckdb/test_parameter_styles.py +887 -0
- sqlspec-0.38.0/tests/integration/adapters/duckdb/test_pooling.py +128 -0
- sqlspec-0.38.0/tests/integration/adapters/duckdb/test_storage_bridge.py +69 -0
- sqlspec-0.38.0/tests/integration/adapters/duckdb/test_vector_functions.py +289 -0
- sqlspec-0.38.0/tests/integration/adapters/duckdb/utils.py +39 -0
- sqlspec-0.38.0/tests/integration/adapters/mysqlconnector/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/mysqlconnector/conftest.py +175 -0
- sqlspec-0.38.0/tests/integration/adapters/mysqlconnector/extensions/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/mysqlconnector/extensions/adk/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/mysqlconnector/extensions/adk/conftest.py +100 -0
- sqlspec-0.38.0/tests/integration/adapters/mysqlconnector/extensions/adk/test_store.py +353 -0
- sqlspec-0.38.0/tests/integration/adapters/mysqlconnector/extensions/events/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/mysqlconnector/extensions/events/test_queue_backend.py +141 -0
- sqlspec-0.38.0/tests/integration/adapters/mysqlconnector/extensions/litestar/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/mysqlconnector/extensions/litestar/test_store.py +106 -0
- sqlspec-0.38.0/tests/integration/adapters/mysqlconnector/test_config.py +165 -0
- sqlspec-0.38.0/tests/integration/adapters/mysqlconnector/test_driver_async.py +259 -0
- sqlspec-0.38.0/tests/integration/adapters/mysqlconnector/test_driver_sync.py +179 -0
- sqlspec-0.38.0/tests/integration/adapters/mysqlconnector/test_exceptions.py +138 -0
- sqlspec-0.38.0/tests/integration/adapters/oracledb/__init__.py +5 -0
- sqlspec-0.38.0/tests/integration/adapters/oracledb/conftest.py +60 -0
- sqlspec-0.38.0/tests/integration/adapters/oracledb/extensions/adk/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/oracledb/extensions/adk/test_inmemory.py +416 -0
- sqlspec-0.38.0/tests/integration/adapters/oracledb/extensions/adk/test_oracle_specific.py +496 -0
- sqlspec-0.38.0/tests/integration/adapters/oracledb/extensions/events/test_oracle_aq.py +111 -0
- sqlspec-0.38.0/tests/integration/adapters/oracledb/extensions/events/test_queue_backend.py +166 -0
- sqlspec-0.38.0/tests/integration/adapters/oracledb/extensions/litestar/test_inmemory.py +282 -0
- sqlspec-0.38.0/tests/integration/adapters/oracledb/extensions/litestar/test_store_async.py +248 -0
- sqlspec-0.38.0/tests/integration/adapters/oracledb/extensions/litestar/test_store_sync.py +248 -0
- sqlspec-0.38.0/tests/integration/adapters/oracledb/test_arrow.py +258 -0
- sqlspec-0.38.0/tests/integration/adapters/oracledb/test_driver_async.py +529 -0
- sqlspec-0.38.0/tests/integration/adapters/oracledb/test_driver_sync.py +521 -0
- sqlspec-0.38.0/tests/integration/adapters/oracledb/test_exceptions.py +142 -0
- sqlspec-0.38.0/tests/integration/adapters/oracledb/test_execute_many.py +323 -0
- sqlspec-0.38.0/tests/integration/adapters/oracledb/test_explain.py +132 -0
- sqlspec-0.38.0/tests/integration/adapters/oracledb/test_features.py +361 -0
- sqlspec-0.38.0/tests/integration/adapters/oracledb/test_merge.py +360 -0
- sqlspec-0.38.0/tests/integration/adapters/oracledb/test_merge_bulk.py +312 -0
- sqlspec-0.38.0/tests/integration/adapters/oracledb/test_migrations.py +927 -0
- sqlspec-0.38.0/tests/integration/adapters/oracledb/test_msgspec_clob.py +525 -0
- sqlspec-0.38.0/tests/integration/adapters/oracledb/test_numpy_vectors.py +378 -0
- sqlspec-0.38.0/tests/integration/adapters/oracledb/test_parameter_styles.py +818 -0
- sqlspec-0.38.0/tests/integration/adapters/oracledb/test_stack.py +142 -0
- sqlspec-0.38.0/tests/integration/adapters/oracledb/test_uuid_binary.py +354 -0
- sqlspec-0.38.0/tests/integration/adapters/oracledb/test_vector_functions.py +240 -0
- sqlspec-0.38.0/tests/integration/adapters/psqlpy/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/psqlpy/conftest.py +57 -0
- sqlspec-0.38.0/tests/integration/adapters/psqlpy/extensions/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/psqlpy/extensions/adk/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/psqlpy/extensions/adk/test_owner_id_column.py +125 -0
- sqlspec-0.38.0/tests/integration/adapters/psqlpy/extensions/events/test_listen_notify.py +102 -0
- sqlspec-0.38.0/tests/integration/adapters/psqlpy/extensions/events/test_queue_backend.py +50 -0
- sqlspec-0.38.0/tests/integration/adapters/psqlpy/extensions/litestar/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/psqlpy/extensions/litestar/test_store.py +237 -0
- sqlspec-0.38.0/tests/integration/adapters/psqlpy/test_arrow.py +194 -0
- sqlspec-0.38.0/tests/integration/adapters/psqlpy/test_driver.py +661 -0
- sqlspec-0.38.0/tests/integration/adapters/psqlpy/test_exceptions.py +118 -0
- sqlspec-0.38.0/tests/integration/adapters/psqlpy/test_explain.py +110 -0
- sqlspec-0.38.0/tests/integration/adapters/psqlpy/test_features.py +221 -0
- sqlspec-0.38.0/tests/integration/adapters/psqlpy/test_merge_bulk.py +280 -0
- sqlspec-0.38.0/tests/integration/adapters/psqlpy/test_migrations.py +372 -0
- sqlspec-0.38.0/tests/integration/adapters/psqlpy/test_parameter_styles.py +661 -0
- sqlspec-0.38.0/tests/integration/adapters/psqlpy/test_storage_bridge.py +63 -0
- sqlspec-0.38.0/tests/integration/adapters/psqlpy/test_vector_functions.py +240 -0
- sqlspec-0.38.0/tests/integration/adapters/psycopg/__init__.py +3 -0
- sqlspec-0.38.0/tests/integration/adapters/psycopg/conftest.py +53 -0
- sqlspec-0.38.0/tests/integration/adapters/psycopg/extensions/__init__.py +0 -0
- sqlspec-0.38.0/tests/integration/adapters/psycopg/extensions/adk/__init__.py +0 -0
- sqlspec-0.38.0/tests/integration/adapters/psycopg/extensions/adk/test_owner_id_column.py +180 -0
- sqlspec-0.38.0/tests/integration/adapters/psycopg/extensions/events/__init__.py +0 -0
- sqlspec-0.38.0/tests/integration/adapters/psycopg/extensions/events/test_listen_notify.py +158 -0
- sqlspec-0.38.0/tests/integration/adapters/psycopg/extensions/events/test_queue_backend.py +88 -0
- sqlspec-0.38.0/tests/integration/adapters/psycopg/extensions/litestar/__init__.py +0 -0
- sqlspec-0.38.0/tests/integration/adapters/psycopg/extensions/litestar/test_store_async.py +237 -0
- sqlspec-0.38.0/tests/integration/adapters/psycopg/extensions/litestar/test_store_sync.py +267 -0
- sqlspec-0.38.0/tests/integration/adapters/psycopg/test_arrow.py +194 -0
- sqlspec-0.38.0/tests/integration/adapters/psycopg/test_async_copy.py +203 -0
- sqlspec-0.38.0/tests/integration/adapters/psycopg/test_driver.py +755 -0
- sqlspec-0.38.0/tests/integration/adapters/psycopg/test_exceptions.py +161 -0
- sqlspec-0.38.0/tests/integration/adapters/psycopg/test_execute_many.py +324 -0
- sqlspec-0.38.0/tests/integration/adapters/psycopg/test_explain.py +181 -0
- sqlspec-0.38.0/tests/integration/adapters/psycopg/test_merge_bulk.py +282 -0
- sqlspec-0.38.0/tests/integration/adapters/psycopg/test_migrations.py +743 -0
- sqlspec-0.38.0/tests/integration/adapters/psycopg/test_parameter_styles.py +1032 -0
- sqlspec-0.38.0/tests/integration/adapters/psycopg/test_storage_bridge.py +151 -0
- sqlspec-0.38.0/tests/integration/adapters/psycopg/test_vector_functions.py +241 -0
- sqlspec-0.38.0/tests/integration/adapters/pymysql/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/pymysql/conftest.py +82 -0
- sqlspec-0.38.0/tests/integration/adapters/pymysql/extensions/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/pymysql/extensions/events/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/pymysql/extensions/events/test_queue_backend.py +52 -0
- sqlspec-0.38.0/tests/integration/adapters/pymysql/extensions/litestar/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/pymysql/extensions/litestar/test_store.py +65 -0
- sqlspec-0.38.0/tests/integration/adapters/pymysql/test_config.py +80 -0
- sqlspec-0.38.0/tests/integration/adapters/pymysql/test_driver.py +203 -0
- sqlspec-0.38.0/tests/integration/adapters/pymysql/test_exceptions.py +115 -0
- sqlspec-0.38.0/tests/integration/adapters/spanner/__init__.py +0 -0
- sqlspec-0.38.0/tests/integration/adapters/spanner/conftest.py +180 -0
- sqlspec-0.38.0/tests/integration/adapters/spanner/extensions/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/spanner/extensions/adk/__init__.py +0 -0
- sqlspec-0.38.0/tests/integration/adapters/spanner/extensions/adk/conftest.py +36 -0
- sqlspec-0.38.0/tests/integration/adapters/spanner/extensions/adk/test_adk_store.py +75 -0
- sqlspec-0.38.0/tests/integration/adapters/spanner/extensions/events/__init__.py +0 -0
- sqlspec-0.38.0/tests/integration/adapters/spanner/extensions/events/conftest.py +53 -0
- sqlspec-0.38.0/tests/integration/adapters/spanner/extensions/events/test_queue_backend.py +97 -0
- sqlspec-0.38.0/tests/integration/adapters/spanner/extensions/litestar/__init__.py +0 -0
- sqlspec-0.38.0/tests/integration/adapters/spanner/extensions/litestar/conftest.py +39 -0
- sqlspec-0.38.0/tests/integration/adapters/spanner/extensions/litestar/test_store.py +44 -0
- sqlspec-0.38.0/tests/integration/adapters/spanner/test_arrow.py +133 -0
- sqlspec-0.38.0/tests/integration/adapters/spanner/test_bytes_direct.py +76 -0
- sqlspec-0.38.0/tests/integration/adapters/spanner/test_crud_operations.py +199 -0
- sqlspec-0.38.0/tests/integration/adapters/spanner/test_driver.py +352 -0
- sqlspec-0.38.0/tests/integration/adapters/spanner/test_exceptions.py +118 -0
- sqlspec-0.38.0/tests/integration/adapters/spanner/test_execute_many.py +224 -0
- sqlspec-0.38.0/tests/integration/adapters/spanner/test_explain.py +92 -0
- sqlspec-0.38.0/tests/integration/adapters/spanner/test_parameter_styles.py +261 -0
- sqlspec-0.38.0/tests/integration/adapters/spanner/test_spangres_driver.py +65 -0
- sqlspec-0.38.0/tests/integration/adapters/spanner/test_spangres_parameter_styles.py +64 -0
- sqlspec-0.38.0/tests/integration/adapters/sqlite/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/sqlite/conftest.py +130 -0
- sqlspec-0.38.0/tests/integration/adapters/sqlite/extensions/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/sqlite/extensions/adk/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/sqlite/extensions/adk/test_memory_store.py +93 -0
- sqlspec-0.38.0/tests/integration/adapters/sqlite/extensions/adk/test_owner_id_column.py +386 -0
- sqlspec-0.38.0/tests/integration/adapters/sqlite/extensions/events/__init__.py +0 -0
- sqlspec-0.38.0/tests/integration/adapters/sqlite/extensions/events/test_queue_backend.py +182 -0
- sqlspec-0.38.0/tests/integration/adapters/sqlite/extensions/litestar/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/adapters/sqlite/extensions/litestar/test_store.py +253 -0
- sqlspec-0.38.0/tests/integration/adapters/sqlite/test_arrow.py +156 -0
- sqlspec-0.38.0/tests/integration/adapters/sqlite/test_data_dictionary.py +95 -0
- sqlspec-0.38.0/tests/integration/adapters/sqlite/test_driver.py +580 -0
- sqlspec-0.38.0/tests/integration/adapters/sqlite/test_driver_features.py +113 -0
- sqlspec-0.38.0/tests/integration/adapters/sqlite/test_exceptions.py +112 -0
- sqlspec-0.38.0/tests/integration/adapters/sqlite/test_explain.py +147 -0
- sqlspec-0.38.0/tests/integration/adapters/sqlite/test_migrations.py +492 -0
- sqlspec-0.38.0/tests/integration/adapters/sqlite/test_parameter_styles.py +417 -0
- sqlspec-0.38.0/tests/integration/adapters/sqlite/test_pooling.py +279 -0
- sqlspec-0.38.0/tests/integration/adapters/sqlite/test_query_mixin.py +214 -0
- sqlspec-0.38.0/tests/integration/adapters/sqlite/test_storage_bridge.py +45 -0
- sqlspec-0.38.0/tests/integration/cli/__init__.py +0 -0
- sqlspec-0.38.0/tests/integration/cli/test_config_discovery.py +577 -0
- sqlspec-0.38.0/tests/integration/cli/test_sync_adapter.py +290 -0
- sqlspec-0.38.0/tests/integration/config/__init__.py +0 -0
- sqlspec-0.38.0/tests/integration/config/conftest.py +18 -0
- sqlspec-0.38.0/tests/integration/config/test_connection_injection.py +347 -0
- sqlspec-0.38.0/tests/integration/conftest.py +27 -0
- sqlspec-0.38.0/tests/integration/core/__init__.py +0 -0
- sqlspec-0.38.0/tests/integration/core/test_stack_edge_cases.py +185 -0
- sqlspec-0.38.0/tests/integration/dishka/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/dishka/conftest.py +115 -0
- sqlspec-0.38.0/tests/integration/dishka/test_integration.py +472 -0
- sqlspec-0.38.0/tests/integration/extensions/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/extensions/fastapi/__init__.py +0 -0
- sqlspec-0.38.0/tests/integration/extensions/fastapi/test_filters_integration.py +395 -0
- sqlspec-0.38.0/tests/integration/extensions/fastapi/test_integration.py +284 -0
- sqlspec-0.38.0/tests/integration/extensions/flask/__init__.py +0 -0
- sqlspec-0.38.0/tests/integration/extensions/flask/test_disable_di.py +80 -0
- sqlspec-0.38.0/tests/integration/extensions/flask/test_integration.py +316 -0
- sqlspec-0.38.0/tests/integration/extensions/litestar/__init__.py +0 -0
- sqlspec-0.38.0/tests/integration/extensions/litestar/test_channels_backend.py +50 -0
- sqlspec-0.38.0/tests/integration/extensions/litestar/test_correlation_middleware.py +101 -0
- sqlspec-0.38.0/tests/integration/extensions/litestar/test_disable_di.py +69 -0
- sqlspec-0.38.0/tests/integration/extensions/litestar/test_logging_format.py +46 -0
- sqlspec-0.38.0/tests/integration/extensions/litestar/test_offset_pagination_serialization.py +37 -0
- sqlspec-0.38.0/tests/integration/extensions/prometheus/__init__.py +0 -0
- sqlspec-0.38.0/tests/integration/extensions/prometheus/test_integration.py +205 -0
- sqlspec-0.38.0/tests/integration/extensions/starlette/__init__.py +0 -0
- sqlspec-0.38.0/tests/integration/extensions/starlette/test_disable_di.py +70 -0
- sqlspec-0.38.0/tests/integration/extensions/starlette/test_integration.py +225 -0
- sqlspec-0.38.0/tests/integration/loader/__init__.py +5 -0
- sqlspec-0.38.0/tests/integration/loader/test_file_system.py +756 -0
- sqlspec-0.38.0/tests/integration/migrations/__init__.py +5 -0
- sqlspec-0.38.0/tests/integration/migrations/test_async_migrations.py +291 -0
- sqlspec-0.38.0/tests/integration/migrations/test_auto_sync.py +333 -0
- sqlspec-0.38.0/tests/integration/migrations/test_fix_checksum_stability.py +203 -0
- sqlspec-0.38.0/tests/integration/migrations/test_fix_file_operations.py +376 -0
- sqlspec-0.38.0/tests/integration/migrations/test_fix_idempotency_workflow.py +353 -0
- sqlspec-0.38.0/tests/integration/migrations/test_migrations_logging_format.py +38 -0
- sqlspec-0.38.0/tests/integration/migrations/test_schema_migration.py +311 -0
- sqlspec-0.38.0/tests/integration/migrations/test_upgrade_downgrade_versions.py +411 -0
- sqlspec-0.38.0/tests/integration/observability/__init__.py +0 -0
- sqlspec-0.38.0/tests/integration/observability/test_logging_format.py +78 -0
- sqlspec-0.38.0/tests/integration/storage/__init__.py +1 -0
- sqlspec-0.38.0/tests/integration/storage/test_integration.py +931 -0
- sqlspec-0.38.0/tests/integration/storage/test_signing.py +254 -0
- sqlspec-0.38.0/tests/integration/storage/test_streaming.py +49 -0
- sqlspec-0.38.0/tests/unit/__init__.py +1 -0
- sqlspec-0.38.0/tests/unit/adapters/__init__.py +3 -0
- sqlspec-0.38.0/tests/unit/adapters/conftest.py +590 -0
- sqlspec-0.38.0/tests/unit/adapters/test_adapter_implementations.py +431 -0
- sqlspec-0.38.0/tests/unit/adapters/test_adbc/__init__.py +0 -0
- sqlspec-0.38.0/tests/unit/adapters/test_adbc/test_adbc_config_normalization.py +205 -0
- sqlspec-0.38.0/tests/unit/adapters/test_adbc/test_adbc_serialization.py +120 -0
- sqlspec-0.38.0/tests/unit/adapters/test_async_adapters.py +568 -0
- sqlspec-0.38.0/tests/unit/adapters/test_asyncmy/__init__.py +0 -0
- sqlspec-0.38.0/tests/unit/adapters/test_asyncmy/test_config.py +36 -0
- sqlspec-0.38.0/tests/unit/adapters/test_asyncpg/__init__.py +1 -0
- sqlspec-0.38.0/tests/unit/adapters/test_asyncpg/test_cloud_connectors.py +546 -0
- sqlspec-0.38.0/tests/unit/adapters/test_asyncpg/test_config.py +36 -0
- sqlspec-0.38.0/tests/unit/adapters/test_asyncpg/test_type_handlers.py +66 -0
- sqlspec-0.38.0/tests/unit/adapters/test_bigquery/__init__.py +1 -0
- sqlspec-0.38.0/tests/unit/adapters/test_bigquery/test_config.py +28 -0
- sqlspec-0.38.0/tests/unit/adapters/test_bigquery/test_execute_many.py +74 -0
- sqlspec-0.38.0/tests/unit/adapters/test_bigquery/test_parameters.py +13 -0
- sqlspec-0.38.0/tests/unit/adapters/test_cockroach_asyncpg/__init__.py +1 -0
- sqlspec-0.38.0/tests/unit/adapters/test_cockroach_asyncpg/test_config.py +125 -0
- sqlspec-0.38.0/tests/unit/adapters/test_cockroach_asyncpg/test_core.py +169 -0
- sqlspec-0.38.0/tests/unit/adapters/test_cockroach_psycopg/__init__.py +1 -0
- sqlspec-0.38.0/tests/unit/adapters/test_cockroach_psycopg/test_config.py +214 -0
- sqlspec-0.38.0/tests/unit/adapters/test_cockroach_psycopg/test_core.py +169 -0
- sqlspec-0.38.0/tests/unit/adapters/test_duckdb/__init__.py +1 -0
- sqlspec-0.38.0/tests/unit/adapters/test_duckdb/test_config.py +28 -0
- sqlspec-0.38.0/tests/unit/adapters/test_duckdb/test_extension_flags.py +42 -0
- sqlspec-0.38.0/tests/unit/adapters/test_duckdb/test_type_converter.py +82 -0
- sqlspec-0.38.0/tests/unit/adapters/test_extension_config.py +214 -0
- sqlspec-0.38.0/tests/unit/adapters/test_mock/__init__.py +1 -0
- sqlspec-0.38.0/tests/unit/adapters/test_mock/test_config.py +152 -0
- sqlspec-0.38.0/tests/unit/adapters/test_mock/test_core.py +349 -0
- sqlspec-0.38.0/tests/unit/adapters/test_mock/test_cursor_and_exceptions.py +256 -0
- sqlspec-0.38.0/tests/unit/adapters/test_mock/test_data_dictionary.py +319 -0
- sqlspec-0.38.0/tests/unit/adapters/test_mock/test_dialect_transpilation.py +224 -0
- sqlspec-0.38.0/tests/unit/adapters/test_mock/test_driver.py +233 -0
- sqlspec-0.38.0/tests/unit/adapters/test_mock/test_edge_cases.py +389 -0
- sqlspec-0.38.0/tests/unit/adapters/test_oracledb/__init__.py +0 -0
- sqlspec-0.38.0/tests/unit/adapters/test_oracledb/test_data_dictionary_oracledb.py +157 -0
- sqlspec-0.38.0/tests/unit/adapters/test_oracledb/test_numpy_handlers.py +228 -0
- sqlspec-0.38.0/tests/unit/adapters/test_oracledb/test_oracle_adk_store.py +49 -0
- sqlspec-0.38.0/tests/unit/adapters/test_oracledb/test_pipeline_helpers.py +137 -0
- sqlspec-0.38.0/tests/unit/adapters/test_oracledb/test_type_converter_vectors.py +192 -0
- sqlspec-0.38.0/tests/unit/adapters/test_oracledb/test_uuid_handlers.py +240 -0
- sqlspec-0.38.0/tests/unit/adapters/test_pool_logging.py +203 -0
- sqlspec-0.38.0/tests/unit/adapters/test_psqlpy/__init__.py +0 -0
- sqlspec-0.38.0/tests/unit/adapters/test_psqlpy/test_config.py +28 -0
- sqlspec-0.38.0/tests/unit/adapters/test_psycopg/__init__.py +1 -0
- sqlspec-0.38.0/tests/unit/adapters/test_psycopg/test_config.py +58 -0
- sqlspec-0.38.0/tests/unit/adapters/test_psycopg/test_type_handlers.py +102 -0
- sqlspec-0.38.0/tests/unit/adapters/test_spanner/__init__.py +1 -0
- sqlspec-0.38.0/tests/unit/adapters/test_spanner/conftest.py +3 -0
- sqlspec-0.38.0/tests/unit/adapters/test_spanner/test_config.py +210 -0
- sqlspec-0.38.0/tests/unit/adapters/test_spanner/test_dialect.py +801 -0
- sqlspec-0.38.0/tests/unit/adapters/test_spanner/test_driver.py +79 -0
- sqlspec-0.38.0/tests/unit/adapters/test_spanner/test_events_store.py +202 -0
- sqlspec-0.38.0/tests/unit/adapters/test_spanner/test_litestar_store.py +124 -0
- sqlspec-0.38.0/tests/unit/adapters/test_spanner/test_type_converter.py +30 -0
- sqlspec-0.38.0/tests/unit/adapters/test_sqlite/__init__.py +0 -0
- sqlspec-0.38.0/tests/unit/adapters/test_sqlite/test_type_handlers.py +44 -0
- sqlspec-0.38.0/tests/unit/adapters/test_sync_adapters.py +488 -0
- sqlspec-0.38.0/tests/unit/base/__init__.py +1 -0
- sqlspec-0.38.0/tests/unit/base/test_config_instances.py +487 -0
- sqlspec-0.38.0/tests/unit/base/test_sql_integration.py +301 -0
- sqlspec-0.38.0/tests/unit/base/test_sqlspec_class.py +603 -0
- sqlspec-0.38.0/tests/unit/builder/__init__.py +1 -0
- sqlspec-0.38.0/tests/unit/builder/test_cte_parameter_collisions.py +244 -0
- sqlspec-0.38.0/tests/unit/builder/test_dialect_override.py +156 -0
- sqlspec-0.38.0/tests/unit/builder/test_explain.py +1528 -0
- sqlspec-0.38.0/tests/unit/builder/test_insert_builder.py +321 -0
- sqlspec-0.38.0/tests/unit/builder/test_lateral_joins.py +272 -0
- sqlspec-0.38.0/tests/unit/builder/test_merge.py +720 -0
- sqlspec-0.38.0/tests/unit/builder/test_merge_dialect_validation.py +231 -0
- sqlspec-0.38.0/tests/unit/builder/test_merge_property_shorthand.py +183 -0
- sqlspec-0.38.0/tests/unit/builder/test_parameter_naming.py +481 -0
- sqlspec-0.38.0/tests/unit/builder/test_parsing_utils.py +186 -0
- sqlspec-0.38.0/tests/unit/builder/test_select_builder.py +62 -0
- sqlspec-0.38.0/tests/unit/builder/test_select_locking.py +240 -0
- sqlspec-0.38.0/tests/unit/builder/test_sql_factory.py +2062 -0
- sqlspec-0.38.0/tests/unit/builder/test_temporal.py +122 -0
- sqlspec-0.38.0/tests/unit/builder/test_to_sql.py +384 -0
- sqlspec-0.38.0/tests/unit/builder/test_upsert_factory.py +272 -0
- sqlspec-0.38.0/tests/unit/builder/test_vector_functions.py +570 -0
- sqlspec-0.38.0/tests/unit/builder/test_where_or_operations.py +560 -0
- sqlspec-0.38.0/tests/unit/cli/__init__.py +0 -0
- sqlspec-0.38.0/tests/unit/cli/test_config_loading.py +153 -0
- sqlspec-0.38.0/tests/unit/cli/test_migration_commands.py +770 -0
- sqlspec-0.38.0/tests/unit/cli/test_shell_completion.py +59 -0
- sqlspec-0.38.0/tests/unit/config/__init__.py +0 -0
- sqlspec-0.38.0/tests/unit/config/test_connection_config_edge_cases.py +426 -0
- sqlspec-0.38.0/tests/unit/config/test_connection_config_parameters.py +544 -0
- sqlspec-0.38.0/tests/unit/config/test_discovery.py +265 -0
- sqlspec-0.38.0/tests/unit/config/test_migration_methods.py +507 -0
- sqlspec-0.38.0/tests/unit/config/test_observability_extensions.py +66 -0
- sqlspec-0.38.0/tests/unit/config/test_resolver.py +258 -0
- sqlspec-0.38.0/tests/unit/config/test_storage_capabilities.py +109 -0
- sqlspec-0.38.0/tests/unit/conftest.py +1119 -0
- sqlspec-0.38.0/tests/unit/core/__init__.py +0 -0
- sqlspec-0.38.0/tests/unit/core/test_cache.py +844 -0
- sqlspec-0.38.0/tests/unit/core/test_compiler.py +970 -0
- sqlspec-0.38.0/tests/unit/core/test_correlation.py +189 -0
- sqlspec-0.38.0/tests/unit/core/test_data_dictionary.py +87 -0
- sqlspec-0.38.0/tests/unit/core/test_filters.py +509 -0
- sqlspec-0.38.0/tests/unit/core/test_hashing.py +535 -0
- sqlspec-0.38.0/tests/unit/core/test_parameter_regex_performance.py +200 -0
- sqlspec-0.38.0/tests/unit/core/test_parameters.py +1887 -0
- sqlspec-0.38.0/tests/unit/core/test_query_modifiers.py +675 -0
- sqlspec-0.38.0/tests/unit/core/test_result.py +605 -0
- sqlspec-0.38.0/tests/unit/core/test_sql_modifiers.py +483 -0
- sqlspec-0.38.0/tests/unit/core/test_stack.py +135 -0
- sqlspec-0.38.0/tests/unit/core/test_statement.py +1240 -0
- sqlspec-0.38.0/tests/unit/core/test_type_conversion.py +322 -0
- sqlspec-0.38.0/tests/unit/dialects/__init__.py +0 -0
- sqlspec-0.38.0/tests/unit/dialects/test_spangres.py +32 -0
- sqlspec-0.38.0/tests/unit/dialects/test_spanner.py +113 -0
- sqlspec-0.38.0/tests/unit/driver/__init__.py +0 -0
- sqlspec-0.38.0/tests/unit/driver/test_count_query.py +643 -0
- sqlspec-0.38.0/tests/unit/driver/test_data_dictionary.py +364 -0
- sqlspec-0.38.0/tests/unit/driver/test_fetch_aliases.py +531 -0
- sqlspec-0.38.0/tests/unit/driver/test_force_select.py +93 -0
- sqlspec-0.38.0/tests/unit/driver/test_result_tools.py +415 -0
- sqlspec-0.38.0/tests/unit/driver/test_stack_base.py +128 -0
- sqlspec-0.38.0/tests/unit/exceptions/__init__.py +1 -0
- sqlspec-0.38.0/tests/unit/exceptions/test_exceptions.py +158 -0
- sqlspec-0.38.0/tests/unit/extensions/__init__.py +1 -0
- sqlspec-0.38.0/tests/unit/extensions/conftest.py +5 -0
- sqlspec-0.38.0/tests/unit/extensions/test_adk/__init__.py +0 -0
- sqlspec-0.38.0/tests/unit/extensions/test_adk/test_memory_converters.py +69 -0
- sqlspec-0.38.0/tests/unit/extensions/test_events/__init__.py +0 -0
- sqlspec-0.38.0/tests/unit/extensions/test_events/test_adapter_stores.py +1099 -0
- sqlspec-0.38.0/tests/unit/extensions/test_events/test_backend_factories.py +541 -0
- sqlspec-0.38.0/tests/unit/extensions/test_events/test_channel.py +237 -0
- sqlspec-0.38.0/tests/unit/extensions/test_events/test_channel_extended.py +253 -0
- sqlspec-0.38.0/tests/unit/extensions/test_events/test_events_config.py +157 -0
- sqlspec-0.38.0/tests/unit/extensions/test_events/test_hints.py +103 -0
- sqlspec-0.38.0/tests/unit/extensions/test_events/test_models.py +181 -0
- sqlspec-0.38.0/tests/unit/extensions/test_events/test_queue.py +277 -0
- sqlspec-0.38.0/tests/unit/extensions/test_events/test_store.py +108 -0
- sqlspec-0.38.0/tests/unit/extensions/test_events/test_store_hooks.py +701 -0
- sqlspec-0.38.0/tests/unit/extensions/test_fastapi/__init__.py +1 -0
- sqlspec-0.38.0/tests/unit/extensions/test_fastapi/test_extension.py +95 -0
- sqlspec-0.38.0/tests/unit/extensions/test_fastapi/test_providers.py +328 -0
- sqlspec-0.38.0/tests/unit/extensions/test_flask/__init__.py +1 -0
- sqlspec-0.38.0/tests/unit/extensions/test_flask/test_correlation.py +265 -0
- sqlspec-0.38.0/tests/unit/extensions/test_flask/test_extension.py +100 -0
- sqlspec-0.38.0/tests/unit/extensions/test_flask/test_state.py +169 -0
- sqlspec-0.38.0/tests/unit/extensions/test_litestar/__init__.py +1 -0
- sqlspec-0.38.0/tests/unit/extensions/test_litestar/test_correlation_middleware.py +30 -0
- sqlspec-0.38.0/tests/unit/extensions/test_litestar/test_handlers.py +301 -0
- sqlspec-0.38.0/tests/unit/extensions/test_otel/__init__.py +0 -0
- sqlspec-0.38.0/tests/unit/extensions/test_otel/test_enable_tracing.py +25 -0
- sqlspec-0.38.0/tests/unit/extensions/test_prometheus/__init__.py +0 -0
- sqlspec-0.38.0/tests/unit/extensions/test_prometheus/test_enable_metrics.py +41 -0
- sqlspec-0.38.0/tests/unit/extensions/test_prometheus/test_metrics.py +351 -0
- sqlspec-0.38.0/tests/unit/extensions/test_starlette/__init__.py +1 -0
- sqlspec-0.38.0/tests/unit/extensions/test_starlette/test_config_state.py +68 -0
- sqlspec-0.38.0/tests/unit/extensions/test_starlette/test_correlation_middleware.py +281 -0
- sqlspec-0.38.0/tests/unit/extensions/test_starlette/test_extension.py +74 -0
- sqlspec-0.38.0/tests/unit/extensions/test_starlette/test_utils.py +147 -0
- sqlspec-0.38.0/tests/unit/loader/__init__.py +4 -0
- sqlspec-0.38.0/tests/unit/loader/test_cache_integration.py +628 -0
- sqlspec-0.38.0/tests/unit/loader/test_correlation_preserved.py +19 -0
- sqlspec-0.38.0/tests/unit/loader/test_fixtures_directory_loading.py +646 -0
- sqlspec-0.38.0/tests/unit/loader/test_loading_patterns.py +780 -0
- sqlspec-0.38.0/tests/unit/loader/test_sql_file_loader.py +1007 -0
- sqlspec-0.38.0/tests/unit/migrations/__init__.py +8 -0
- sqlspec-0.38.0/tests/unit/migrations/test_checksum_canonicalization.py +345 -0
- sqlspec-0.38.0/tests/unit/migrations/test_extension_discovery.py +80 -0
- sqlspec-0.38.0/tests/unit/migrations/test_fix_regex_precision.py +368 -0
- sqlspec-0.38.0/tests/unit/migrations/test_migration.py +702 -0
- sqlspec-0.38.0/tests/unit/migrations/test_migration_commands.py +382 -0
- sqlspec-0.38.0/tests/unit/migrations/test_migration_context.py +200 -0
- sqlspec-0.38.0/tests/unit/migrations/test_migration_execution.py +627 -0
- sqlspec-0.38.0/tests/unit/migrations/test_migration_runner.py +874 -0
- sqlspec-0.38.0/tests/unit/migrations/test_tracker_idempotency.py +317 -0
- sqlspec-0.38.0/tests/unit/migrations/test_utils.py +385 -0
- sqlspec-0.38.0/tests/unit/migrations/test_validation.py +206 -0
- sqlspec-0.38.0/tests/unit/migrations/test_version.py +326 -0
- sqlspec-0.38.0/tests/unit/migrations/test_version_conversion.py +303 -0
- sqlspec-0.38.0/tests/unit/migrations/test_version_parsing_edge_cases.py +236 -0
- sqlspec-0.38.0/tests/unit/observability/__init__.py +0 -0
- sqlspec-0.38.0/tests/unit/observability/test_formatters.py +290 -0
- sqlspec-0.38.0/tests/unit/observability/test_observability_core.py +608 -0
- sqlspec-0.38.0/tests/unit/observability/test_observability_logging.py +327 -0
- sqlspec-0.38.0/tests/unit/observability/test_observability_sampling.py +347 -0
- sqlspec-0.38.0/tests/unit/observability/test_sampling.py +204 -0
- sqlspec-0.38.0/tests/unit/storage/__init__.py +1 -0
- sqlspec-0.38.0/tests/unit/storage/test_bridge.py +373 -0
- sqlspec-0.38.0/tests/unit/storage/test_errors.py +32 -0
- sqlspec-0.38.0/tests/unit/storage/test_fsspec_backend.py +481 -0
- sqlspec-0.38.0/tests/unit/storage/test_local_store.py +446 -0
- sqlspec-0.38.0/tests/unit/storage/test_obstore_backend.py +470 -0
- sqlspec-0.38.0/tests/unit/storage/test_signing.py +407 -0
- sqlspec-0.38.0/tests/unit/storage/test_storage_registry.py +248 -0
- sqlspec-0.38.0/tests/unit/storage/test_storage_utils.py +75 -0
- sqlspec-0.38.0/tests/unit/utils/__init__.py +1 -0
- sqlspec-0.38.0/tests/unit/utils/test_arrow_helpers.py +145 -0
- sqlspec-0.38.0/tests/unit/utils/test_correlation.py +466 -0
- sqlspec-0.38.0/tests/unit/utils/test_data_transformation.py +343 -0
- sqlspec-0.38.0/tests/unit/utils/test_dependencies.py +302 -0
- sqlspec-0.38.0/tests/unit/utils/test_deprecation.py +153 -0
- sqlspec-0.38.0/tests/unit/utils/test_fixtures.py +498 -0
- sqlspec-0.38.0/tests/unit/utils/test_logging.py +705 -0
- sqlspec-0.38.0/tests/unit/utils/test_portal.py +399 -0
- sqlspec-0.38.0/tests/unit/utils/test_serialization.py +558 -0
- sqlspec-0.38.0/tests/unit/utils/test_serializers.py +668 -0
- sqlspec-0.38.0/tests/unit/utils/test_sync_tools.py +453 -0
- sqlspec-0.38.0/tests/unit/utils/test_text.py +255 -0
- sqlspec-0.38.0/tests/unit/utils/test_to_value_type.py +764 -0
- sqlspec-0.38.0/tests/unit/utils/test_type_guards.py +1103 -0
- sqlspec-0.38.0/tests/unit/utils/test_uuids.py +501 -0
- sqlspec-0.38.0/tools/__init__.py +0 -0
- sqlspec-0.38.0/tools/build_docs.py +35 -0
- sqlspec-0.38.0/tools/fix_documentation.py +227 -0
- sqlspec-0.38.0/tools/local-infra.sh +686 -0
- sqlspec-0.38.0/tools/run_pre_commit.py +57 -0
- sqlspec-0.38.0/tools/sphinx_ext/__init__.py +16 -0
- {sqlspec-0.5.0 → sqlspec-0.38.0}/tools/sphinx_ext/changelog.py +4 -9
- sqlspec-0.38.0/tools/sphinx_ext/missing_references.py +331 -0
- sqlspec-0.38.0/tools/sphinx_ext/playground.py +38 -0
- sqlspec-0.38.0/tools/sphinx_ext/playground_template.html +691 -0
- sqlspec-0.38.0/uv.lock +8142 -0
- sqlspec-0.5.0/NOTICE +0 -29
- sqlspec-0.5.0/PKG-INFO +0 -126
- sqlspec-0.5.0/README.md +0 -75
- sqlspec-0.5.0/pyproject.toml +0 -345
- sqlspec-0.5.0/sqlspec/__init__.py +0 -1
- sqlspec-0.5.0/sqlspec/_serialization.py +0 -24
- sqlspec-0.5.0/sqlspec/_typing.py +0 -168
- sqlspec-0.5.0/sqlspec/adapters/adbc/config.py +0 -52
- sqlspec-0.5.0/sqlspec/adapters/aiosqlite/__init__.py +0 -3
- sqlspec-0.5.0/sqlspec/adapters/aiosqlite/config.py +0 -95
- sqlspec-0.5.0/sqlspec/adapters/asyncmy/__init__.py +0 -3
- sqlspec-0.5.0/sqlspec/adapters/asyncmy/config.py +0 -181
- sqlspec-0.5.0/sqlspec/adapters/asyncpg/config.py +0 -149
- sqlspec-0.5.0/sqlspec/adapters/duckdb/__init__.py +0 -3
- sqlspec-0.5.0/sqlspec/adapters/duckdb/config.py +0 -202
- sqlspec-0.5.0/sqlspec/adapters/oracledb/__init__.py +0 -13
- sqlspec-0.5.0/sqlspec/adapters/oracledb/config/__init__.py +0 -9
- sqlspec-0.5.0/sqlspec/adapters/oracledb/config/_asyncio.py +0 -98
- sqlspec-0.5.0/sqlspec/adapters/oracledb/config/_common.py +0 -151
- sqlspec-0.5.0/sqlspec/adapters/oracledb/config/_sync.py +0 -98
- sqlspec-0.5.0/sqlspec/adapters/psycopg/config/__init__.py +0 -9
- sqlspec-0.5.0/sqlspec/adapters/psycopg/config/_async.py +0 -78
- sqlspec-0.5.0/sqlspec/adapters/psycopg/config/_common.py +0 -73
- sqlspec-0.5.0/sqlspec/adapters/psycopg/config/_sync.py +0 -78
- sqlspec-0.5.0/sqlspec/adapters/sqlite/config.py +0 -92
- sqlspec-0.5.0/sqlspec/base.py +0 -87
- sqlspec-0.5.0/sqlspec/exceptions.py +0 -103
- sqlspec-0.5.0/sqlspec/extensions/litestar/plugin.py +0 -34
- sqlspec-0.5.0/sqlspec/filters.py +0 -129
- sqlspec-0.5.0/sqlspec/typing.py +0 -503
- sqlspec-0.5.0/sqlspec/utils/deprecation.py +0 -111
- sqlspec-0.5.0/sqlspec/utils/fixtures.py +0 -66
- sqlspec-0.5.0/sqlspec/utils/module_loader.py +0 -94
- sqlspec-0.5.0/sqlspec/utils/text.py +0 -46
- sqlspec-0.5.0/tests/conftest.py +0 -18
- sqlspec-0.5.0/tests/unit/test_adapters/test_duckdb/test_config.py +0 -254
- sqlspec-0.5.0/tests/unit/test_typing.py +0 -276
- sqlspec-0.5.0/tests/unit/test_utils/test_module_loader.py +0 -47
- sqlspec-0.5.0/tests/unit/test_utils/test_text.py +0 -16
- sqlspec-0.5.0/tools/build_docs.py +0 -93
- sqlspec-0.5.0/tools/sphinx_ext/__init__.py +0 -16
- sqlspec-0.5.0/tools/sphinx_ext/missing_references.py +0 -122
- sqlspec-0.5.0/uv.lock +0 -3662
- {sqlspec-0.5.0 → sqlspec-0.38.0}/sqlspec/adapters/__init__.py +0 -0
- /sqlspec-0.5.0/sqlspec/adapters/adbc/__init__.py → /sqlspec-0.38.0/sqlspec/data_dictionary/sql/.gitkeep +0 -0
- {sqlspec-0.5.0/sqlspec/adapters/asyncpg → sqlspec-0.38.0/sqlspec/extensions}/__init__.py +0 -0
- {sqlspec-0.5.0/sqlspec/adapters/psycopg → sqlspec-0.38.0/sqlspec/extensions/adk/migrations}/__init__.py +0 -0
- {sqlspec-0.5.0 → sqlspec-0.38.0}/sqlspec/py.typed +0 -0
- {sqlspec-0.5.0/sqlspec/adapters/sqlite → sqlspec-0.38.0/tests/integration/adapters/aiosqlite/extensions/adk}/__init__.py +0 -0
- {sqlspec-0.5.0/sqlspec/extensions → sqlspec-0.38.0/tests/integration/adapters/aiosqlite/extensions/events}/__init__.py +0 -0
- {sqlspec-0.5.0/sqlspec/extensions/litestar → sqlspec-0.38.0/tests/integration/adapters/asyncmy/extensions/events}/__init__.py +0 -0
- {sqlspec-0.5.0/sqlspec/utils → sqlspec-0.38.0/tests/integration/adapters/asyncpg/extensions/events}/__init__.py +0 -0
- {sqlspec-0.5.0/tests → sqlspec-0.38.0/tests/integration/adapters/duckdb/extensions/adk}/__init__.py +0 -0
- {sqlspec-0.5.0/tests/unit → sqlspec-0.38.0/tests/integration/adapters/duckdb/extensions/events}/__init__.py +0 -0
- {sqlspec-0.5.0/tests/unit/test_adapters → sqlspec-0.38.0/tests/integration/adapters/oracledb/extensions}/__init__.py +0 -0
- {sqlspec-0.5.0/tests/unit/test_adapters/test_duckdb → sqlspec-0.38.0/tests/integration/adapters/oracledb/extensions/events}/__init__.py +0 -0
- {sqlspec-0.5.0/tests/unit/test_utils → sqlspec-0.38.0/tests/integration/adapters/oracledb/extensions/litestar}/__init__.py +0 -0
- {sqlspec-0.5.0/tools → sqlspec-0.38.0/tests/integration/adapters/psqlpy/extensions/events}/__init__.py +0 -0
- {sqlspec-0.5.0 → sqlspec-0.38.0}/tools/pypi_readme.py +0 -0
|
@@ -18,7 +18,9 @@ target/
|
|
|
18
18
|
.idea/
|
|
19
19
|
.vscode/
|
|
20
20
|
.cursor/
|
|
21
|
-
|
|
21
|
+
.zed/
|
|
22
|
+
.cache
|
|
23
|
+
.coverage*
|
|
22
24
|
# files
|
|
23
25
|
**/*.so
|
|
24
26
|
**/*.sqlite
|
|
@@ -29,5 +31,33 @@ target/
|
|
|
29
31
|
.python-version
|
|
30
32
|
.ruff_cache
|
|
31
33
|
/docs/_build/
|
|
34
|
+
docs/autoapi/
|
|
32
35
|
coverage.*
|
|
33
36
|
setup.py
|
|
37
|
+
tmp/
|
|
38
|
+
*.log
|
|
39
|
+
.tmp
|
|
40
|
+
.tmp_mypyc
|
|
41
|
+
TODO*
|
|
42
|
+
.env
|
|
43
|
+
tools/*.json
|
|
44
|
+
benchmarks/
|
|
45
|
+
.benchmark
|
|
46
|
+
*.db
|
|
47
|
+
*.db-journal
|
|
48
|
+
*.db-wal
|
|
49
|
+
*.db-shm
|
|
50
|
+
*.duckdb
|
|
51
|
+
.crush
|
|
52
|
+
CRUSH.md
|
|
53
|
+
CLAUDE.md
|
|
54
|
+
AGENTS.md
|
|
55
|
+
docs-build
|
|
56
|
+
.envs/
|
|
57
|
+
.claude/*
|
|
58
|
+
.gh-cache
|
|
59
|
+
.gemini/
|
|
60
|
+
specs/
|
|
61
|
+
.playwright-mcp
|
|
62
|
+
.geminiignore
|
|
63
|
+
uv.toml
|
|
@@ -2,12 +2,12 @@ default_language_version:
|
|
|
2
2
|
python: "3"
|
|
3
3
|
repos:
|
|
4
4
|
- repo: https://github.com/compilerla/conventional-pre-commit
|
|
5
|
-
rev: v4.
|
|
5
|
+
rev: v4.3.0
|
|
6
6
|
hooks:
|
|
7
7
|
- id: conventional-pre-commit
|
|
8
8
|
stages: [commit-msg]
|
|
9
9
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
10
|
-
rev:
|
|
10
|
+
rev: v6.0.0
|
|
11
11
|
hooks:
|
|
12
12
|
- id: check-ast
|
|
13
13
|
- id: check-case-conflict
|
|
@@ -17,19 +17,19 @@ repos:
|
|
|
17
17
|
- id: mixed-line-ending
|
|
18
18
|
- id: trailing-whitespace
|
|
19
19
|
- repo: https://github.com/charliermarsh/ruff-pre-commit
|
|
20
|
-
rev: "v0.
|
|
20
|
+
rev: "v0.14.13"
|
|
21
21
|
hooks:
|
|
22
22
|
- id: ruff
|
|
23
23
|
args: ["--fix"]
|
|
24
24
|
- id: ruff-format
|
|
25
25
|
- repo: https://github.com/codespell-project/codespell
|
|
26
|
-
rev: v2.
|
|
26
|
+
rev: v2.4.1
|
|
27
27
|
hooks:
|
|
28
28
|
- id: codespell
|
|
29
29
|
additional_dependencies:
|
|
30
30
|
- tomli
|
|
31
31
|
- repo: https://github.com/python-formate/flake8-dunder-all
|
|
32
|
-
rev: v0.
|
|
32
|
+
rev: v0.5.0
|
|
33
33
|
hooks:
|
|
34
34
|
- id: ensure-dunder-all
|
|
35
35
|
exclude: "test*|tools"
|
|
@@ -40,9 +40,10 @@ repos:
|
|
|
40
40
|
- id: slotscheck
|
|
41
41
|
exclude: "docs|.github"
|
|
42
42
|
- repo: https://github.com/sphinx-contrib/sphinx-lint
|
|
43
|
-
rev: "v1.0.
|
|
43
|
+
rev: "v1.0.2"
|
|
44
44
|
hooks:
|
|
45
45
|
- id: sphinx-lint
|
|
46
|
+
args: ["--jobs", "1"]
|
|
46
47
|
- repo: local
|
|
47
48
|
hooks:
|
|
48
49
|
- id: pypi-readme
|
|
@@ -18,7 +18,7 @@ Workflow
|
|
|
18
18
|
2. Clone your fork locally with git
|
|
19
19
|
3. `Set up the environment <#setting-up-the-environment>`_
|
|
20
20
|
4. Make your changes
|
|
21
|
-
5. Run ``
|
|
21
|
+
5. Run ``make lint`` to run linters and formatters. This step is optional and will be executed
|
|
22
22
|
automatically by git before you make a commit, but you may want to run it manually in order to apply fixes
|
|
23
23
|
6. Commit your changes to git
|
|
24
24
|
7. Push the changes to your fork
|
|
@@ -36,7 +36,14 @@ Guidelines for writing code
|
|
|
36
36
|
- All code should be fully `typed <https://peps.python.org/pep-0484/>`_. This is enforced via
|
|
37
37
|
`mypy <https://mypy.readthedocs.io/en/stable/>`_.
|
|
38
38
|
- All code should be tested. This is enforced via `pytest <https://docs.pytest.org/en/stable/>`_.
|
|
39
|
-
- All code should be properly formatted. This is enforced via `black <https://black.readthedocs.io/en/stable/>`_ and `Ruff <https://
|
|
39
|
+
- All code should be properly formatted. This is enforced via `black <https://black.readthedocs.io/en/stable/>`_ and `Ruff <https://docs.astral.sh/ruff/>`_.
|
|
40
|
+
|
|
41
|
+
Logging
|
|
42
|
+
++++++++
|
|
43
|
+
|
|
44
|
+
- Logger names must follow the ``sqlspec.<module>`` hierarchy.
|
|
45
|
+
- Always obtain loggers via ``sqlspec.utils.logging.get_logger`` to ensure filters are attached.
|
|
46
|
+
- Use static event names in structured logs and include context fields instead of dynamic message strings.
|
|
40
47
|
|
|
41
48
|
Writing and running tests
|
|
42
49
|
+++++++++++++++++++++++++
|
|
@@ -48,8 +55,8 @@ Project documentation
|
|
|
48
55
|
|
|
49
56
|
The documentation is located in the ``/docs`` directory and is `ReST <https://docutils.sourceforge.io/rst.html>`_ and
|
|
50
57
|
`Sphinx <https://www.sphinx-doc.org/en/master/>`_. If you're unfamiliar with any of those,
|
|
51
|
-
`ReStructuredText primer <https://www.sphinx-doc.org/en/master/
|
|
52
|
-
`Sphinx quickstart <https://www.sphinx-doc.org/en/master/
|
|
58
|
+
`ReStructuredText primer <https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html>`_ and
|
|
59
|
+
`Sphinx quickstart <https://www.sphinx-doc.org/en/master/usage/quickstart.html>`_ are recommended reads.
|
|
53
60
|
|
|
54
61
|
Running the docs locally
|
|
55
62
|
++++++++++++++++++++++++
|
|
@@ -60,7 +67,7 @@ Creating a new release
|
|
|
60
67
|
----------------------
|
|
61
68
|
|
|
62
69
|
1. Increment the version in `pyproject.toml <https://github.com/litestar-org/sqlspec/blob/main/pyproject.toml>`_.
|
|
63
|
-
.. note:: The version should follow `semantic versioning <https://semver.org/>`_ and `PEP 440 <https://
|
|
70
|
+
.. note:: The version should follow `semantic versioning <https://semver.org/>`_ and `PEP 440 <https://peps.python.org/pep-0440/>`_.
|
|
64
71
|
2. `Draft a new release <https://github.com/litestar-org/sqlspec/releases/new>`_ on GitHub
|
|
65
72
|
|
|
66
73
|
* Use ``vMAJOR.MINOR.PATCH`` (e.g. ``v1.2.3``) as both the tag and release title
|
sqlspec-0.38.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Litestar Organization
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -43,11 +43,23 @@ install-uv: ## Install latest version of
|
|
|
43
43
|
.PHONY: install
|
|
44
44
|
install: destroy clean ## Install the project, dependencies, and pre-commit
|
|
45
45
|
@echo "${INFO} Starting fresh installation..."
|
|
46
|
-
@uv python pin 3.
|
|
46
|
+
@uv python pin 3.10 >/dev/null 2>&1
|
|
47
47
|
@uv venv >/dev/null 2>&1
|
|
48
48
|
@uv sync --all-extras --dev
|
|
49
49
|
@echo "${OK} Installation complete! 🎉"
|
|
50
50
|
|
|
51
|
+
.PHONY: install-compiled
|
|
52
|
+
install-compiled: destroy clean ## Install with mypyc compilation for performance
|
|
53
|
+
@echo "${INFO} Starting fresh installation with mypyc compilation..."
|
|
54
|
+
@uv python pin 3.10 >/dev/null 2>&1
|
|
55
|
+
@uv venv >/dev/null 2>&1
|
|
56
|
+
@echo "${INFO} Installing in editable mode with mypyc compilation..."
|
|
57
|
+
@HATCH_BUILD_HOOKS_ENABLE=1 uv pip install -e .
|
|
58
|
+
@uv sync --all-extras --dev
|
|
59
|
+
@echo "${OK} Performance installation complete! 🚀"
|
|
60
|
+
@echo "${INFO} Verifying compilation..."
|
|
61
|
+
@find sqlspec -name "*.so" | wc -l | xargs -I {} echo "${OK} Compiled {} modules"
|
|
62
|
+
|
|
51
63
|
.PHONY: destroy
|
|
52
64
|
destroy: ## Destroy the virtual environment
|
|
53
65
|
@echo "${INFO} Destroying virtual environment... 🗑️"
|
|
@@ -83,16 +95,57 @@ build: ## Build the package
|
|
|
83
95
|
@uv build >/dev/null 2>&1
|
|
84
96
|
@echo "${OK} Package build complete"
|
|
85
97
|
|
|
98
|
+
.PHONY: build-performance
|
|
99
|
+
build-performance: ## Build package with mypyc compilation
|
|
100
|
+
@echo "${INFO} Building package with mypyc compilation... 📦"
|
|
101
|
+
@HATCH_BUILD_HOOKS_ENABLE=1 uv build >/dev/null 2>&1
|
|
102
|
+
@echo "${OK} Performance package build complete 🚀"
|
|
103
|
+
|
|
104
|
+
.PHONY: test-mypyc
|
|
105
|
+
test-mypyc: ## Test mypyc compilation on individual modules
|
|
106
|
+
@echo "${INFO} Testing mypyc compilation... 🔧"
|
|
107
|
+
@uv run mypyc --check-untyped-defs sqlspec/utils/statement_hashing.py
|
|
108
|
+
@uv run mypyc --check-untyped-defs sqlspec/utils/text.py
|
|
109
|
+
@uv run mypyc --check-untyped-defs sqlspec/utils/sync_tools.py
|
|
110
|
+
@uv run mypyc --check-untyped-defs sqlspec/statement/cache.py
|
|
111
|
+
@echo "${OK} Mypyc compilation tests passed ✨"
|
|
112
|
+
|
|
113
|
+
|
|
86
114
|
.PHONY: release
|
|
87
115
|
release: ## Bump version and create release tag
|
|
88
116
|
@echo "${INFO} Preparing for release... 📦"
|
|
89
117
|
@make docs
|
|
90
118
|
@make clean
|
|
91
119
|
@make build
|
|
92
|
-
@uv lock --upgrade-package litestar-vite >/dev/null 2>&1
|
|
93
120
|
@uv run bump-my-version bump $(bump)
|
|
121
|
+
@uv lock --upgrade-package sqlspec >/dev/null 2>&1
|
|
94
122
|
@echo "${OK} Release complete 🎉"
|
|
95
123
|
|
|
124
|
+
.PHONY: pre-release
|
|
125
|
+
pre-release: ## Start a pre-release: make pre-release version=0.33.0-alpha.1
|
|
126
|
+
@if [ -z "$(version)" ]; then \
|
|
127
|
+
echo "${ERROR} Usage: make pre-release version=X.Y.Z-alpha.N"; \
|
|
128
|
+
echo ""; \
|
|
129
|
+
echo "Pre-release workflow:"; \
|
|
130
|
+
echo " 1. Start alpha: make pre-release version=0.33.0-alpha.1"; \
|
|
131
|
+
echo " 2. Next alpha: make pre-release version=0.33.0-alpha.2"; \
|
|
132
|
+
echo " 3. Move to beta: make pre-release version=0.33.0-beta.1"; \
|
|
133
|
+
echo " 4. Move to rc: make pre-release version=0.33.0-rc.1"; \
|
|
134
|
+
echo " 5. Final release: make release bump=patch (from rc) OR bump=minor (from stable)"; \
|
|
135
|
+
exit 1; \
|
|
136
|
+
fi
|
|
137
|
+
@echo "${INFO} Preparing pre-release $(version)... 🧪"
|
|
138
|
+
@make clean
|
|
139
|
+
@make build
|
|
140
|
+
@uv run bump-my-version bump --new-version $(version) pre
|
|
141
|
+
@uv lock --upgrade-package sqlspec >/dev/null 2>&1
|
|
142
|
+
@echo "${OK} Pre-release $(version) complete 🧪"
|
|
143
|
+
@echo ""
|
|
144
|
+
@echo "${INFO} Next steps:"
|
|
145
|
+
@echo " 1. Push: git push origin HEAD"
|
|
146
|
+
@echo " 2. Create a GitHub pre-release: gh release create v$(version) --prerelease --generate-notes --title 'v$(version)'"
|
|
147
|
+
@echo " 3. This will publish to PyPI with pre-release tags"
|
|
148
|
+
|
|
96
149
|
# =============================================================================
|
|
97
150
|
# Cleaning and Maintenance
|
|
98
151
|
# =============================================================================
|
|
@@ -101,13 +154,15 @@ release: ## Bump version and create re
|
|
|
101
154
|
clean: ## Cleanup temporary build artifacts
|
|
102
155
|
@echo "${INFO} Cleaning working directory... 🧹"
|
|
103
156
|
@rm -rf .pytest_cache .ruff_cache .hypothesis build/ -rf dist/ .eggs/ .coverage coverage.xml coverage.json htmlcov/ .pytest_cache tests/.pytest_cache tests/**/.pytest_cache .mypy_cache .unasyncd_cache/ .auto_pytabs_cache >/dev/null 2>&1
|
|
104
|
-
@find . -name '*.egg-info' -exec rm -rf {} + >/dev/null 2>&1
|
|
105
|
-
@find . -type f -name '*.egg' -exec rm -f {} + >/dev/null 2>&1
|
|
106
|
-
@find . -name '*.pyc' -exec rm -f {} + >/dev/null 2>&1
|
|
107
|
-
@find . -name '*.pyo' -exec rm -f {} + >/dev/null 2>&1
|
|
108
|
-
@find . -name '*~' -exec rm -f {} + >/dev/null 2>&1
|
|
109
|
-
@find . -name '__pycache__' -exec rm -rf {} + >/dev/null 2>&1
|
|
110
|
-
@find . -name '.ipynb_checkpoints' -exec rm -rf {} + >/dev/null 2>&1
|
|
157
|
+
@find . \( -path ./.venv -o -path ./.git \) -prune -o -name '*.egg-info' -exec rm -rf {} + >/dev/null 2>&1
|
|
158
|
+
@find . \( -path ./.venv -o -path ./.git \) -prune -o -type f -name '*.egg' -exec rm -f {} + >/dev/null 2>&1
|
|
159
|
+
@find . \( -path ./.venv -o -path ./.git \) -prune -o -name '*.pyc' -exec rm -f {} + >/dev/null 2>&1
|
|
160
|
+
@find . \( -path ./.venv -o -path ./.git \) -prune -o -name '*.pyo' -exec rm -f {} + >/dev/null 2>&1
|
|
161
|
+
@find . \( -path ./.venv -o -path ./.git \) -prune -o -name '*~' -exec rm -f {} + >/dev/null 2>&1
|
|
162
|
+
@find . \( -path ./.venv -o -path ./.git \) -prune -o -type d -name '__pycache__' -exec rm -rf {} + >/dev/null 2>&1
|
|
163
|
+
@find . \( -path ./.venv -o -path ./.git \) -prune -o -name '.ipynb_checkpoints' -exec rm -rf {} + >/dev/null 2>&1
|
|
164
|
+
@find . \( -path ./.venv -o -path ./.git \) -prune -o -name '*.so' -exec rm -f {} + >/dev/null 2>&1
|
|
165
|
+
@find . \( -path ./.venv -o -path ./.git \) -prune -o -name '*.c' -exec rm -f {} + >/dev/null 2>&1
|
|
111
166
|
@echo "${OK} Working directory cleaned"
|
|
112
167
|
$(MAKE) docs-clean
|
|
113
168
|
|
|
@@ -118,7 +173,7 @@ clean: ## Cleanup temporary build a
|
|
|
118
173
|
.PHONY: test
|
|
119
174
|
test: ## Run the tests
|
|
120
175
|
@echo "${INFO} Running test cases... 🧪"
|
|
121
|
-
@uv run pytest tests
|
|
176
|
+
@uv run pytest -n 2 --dist=loadgroup tests
|
|
122
177
|
@echo "${OK} Tests complete ✨"
|
|
123
178
|
|
|
124
179
|
.PHONY: test-all
|
|
@@ -128,7 +183,7 @@ test-all: tests ## Run all tests
|
|
|
128
183
|
.PHONY: coverage
|
|
129
184
|
coverage: ## Run tests with coverage report
|
|
130
185
|
@echo "${INFO} Running tests with coverage... 📊"
|
|
131
|
-
@uv run pytest --cov -n
|
|
186
|
+
@uv run pytest --cov -n 2 --dist=loadgroup --quiet
|
|
132
187
|
@uv run coverage html >/dev/null 2>&1
|
|
133
188
|
@uv run coverage xml >/dev/null 2>&1
|
|
134
189
|
@echo "${OK} Coverage report generated ✨"
|
|
@@ -189,18 +244,18 @@ check-all: lint test-all coverage ## Run all checks (lint, test
|
|
|
189
244
|
.PHONY: docs-clean
|
|
190
245
|
docs-clean: ## Clean documentation build
|
|
191
246
|
@echo "${INFO} Cleaning documentation build assets... 🧹"
|
|
192
|
-
@rm -rf docs/_build
|
|
247
|
+
@rm -rf docs/_build
|
|
193
248
|
@echo "${OK} Documentation assets cleaned"
|
|
194
249
|
|
|
195
250
|
.PHONY: docs-serve
|
|
196
251
|
docs-serve: docs-clean ## Serve documentation locally
|
|
197
252
|
@echo "${INFO} Starting documentation server... 📚"
|
|
198
|
-
@uv run sphinx-autobuild docs docs/_build/ -j
|
|
253
|
+
@uv run sphinx-autobuild docs docs/_build/ -j 1 --watch sqlspec --watch docs --watch tests --watch CONTRIBUTING.rst --port 8002
|
|
199
254
|
|
|
200
255
|
.PHONY: docs
|
|
201
256
|
docs: docs-clean ## Build documentation
|
|
202
257
|
@echo "${INFO} Building documentation... 📝"
|
|
203
|
-
@uv run sphinx-build -M html docs docs/_build/ -E -a -j
|
|
258
|
+
@PYTHONWARNINGS="ignore::FutureWarning" uv run sphinx-build -M html docs docs/_build/ -E -a -j 1 -W --keep-going
|
|
204
259
|
@echo "${OK} Documentation built successfully"
|
|
205
260
|
|
|
206
261
|
.PHONY: docs-linkcheck
|
|
@@ -215,6 +270,49 @@ docs-linkcheck-full: ## Run full documentation lin
|
|
|
215
270
|
@uv run sphinx-build -b linkcheck ./docs ./docs/_build -D linkcheck_anchors=0
|
|
216
271
|
@echo "${OK} Full link check complete"
|
|
217
272
|
|
|
273
|
+
# =============================================================================
|
|
274
|
+
# Development Infrastructure
|
|
275
|
+
# =============================================================================
|
|
276
|
+
|
|
277
|
+
.PHONY: infra-up
|
|
278
|
+
infra-up: ## Start development infrastructure (databases, storage)
|
|
279
|
+
@echo "${INFO} Starting development infrastructure..."
|
|
280
|
+
@./tools/local-infra.sh up
|
|
281
|
+
@echo "${OK} Development infrastructure ready ✨"
|
|
282
|
+
|
|
283
|
+
.PHONY: infra-down
|
|
284
|
+
infra-down: ## Stop development infrastructure
|
|
285
|
+
@echo "${INFO} Stopping development infrastructure..."
|
|
286
|
+
@./tools/local-infra.sh down --quiet
|
|
287
|
+
@echo "${OK} Development infrastructure stopped"
|
|
288
|
+
|
|
289
|
+
.PHONY: infra-status
|
|
290
|
+
infra-status: ## Show development infrastructure status
|
|
291
|
+
@./tools/local-infra.sh status
|
|
292
|
+
|
|
293
|
+
.PHONY: infra-cleanup
|
|
294
|
+
infra-cleanup: ## Clean up development infrastructure
|
|
295
|
+
@echo "${WARN} This will remove all development containers and volumes"
|
|
296
|
+
@./tools/local-infra.sh cleanup
|
|
297
|
+
|
|
298
|
+
.PHONY: infra-postgres
|
|
299
|
+
infra-postgres: ## Start only PostgreSQL
|
|
300
|
+
@echo "${INFO} Starting PostgreSQL..."
|
|
301
|
+
@./tools/local-infra.sh up postgres --quiet
|
|
302
|
+
@echo "${OK} PostgreSQL ready on port 5433"
|
|
303
|
+
|
|
304
|
+
.PHONY: infra-oracle
|
|
305
|
+
infra-oracle: ## Start only Oracle
|
|
306
|
+
@echo "${INFO} Starting Oracle..."
|
|
307
|
+
@./tools/local-infra.sh up oracle --quiet
|
|
308
|
+
@echo "${OK} Oracle ready on port 1522"
|
|
309
|
+
|
|
310
|
+
.PHONY: infra-mysql
|
|
311
|
+
infra-mysql: ## Start only MySQL
|
|
312
|
+
@echo "${INFO} Starting MySQL..."
|
|
313
|
+
@./tools/local-infra.sh up mysql --quiet
|
|
314
|
+
@echo "${OK} MySQL ready on port 3307"
|
|
315
|
+
|
|
218
316
|
# =============================================================================
|
|
219
317
|
# End of Makefile
|
|
220
318
|
# =============================================================================
|
sqlspec-0.38.0/PKG-INFO
ADDED
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: sqlspec
|
|
3
|
+
Version: 0.38.0
|
|
4
|
+
Summary: SQL Experiments in Python
|
|
5
|
+
Project-URL: Discord, https://discord.gg/litestar
|
|
6
|
+
Project-URL: Issue, https://github.com/litestar-org/sqlspec/issues/
|
|
7
|
+
Project-URL: Source, https://github.com/litestar-org/sqlspec
|
|
8
|
+
Author-email: Cody Fincher <cody@litestar.dev>
|
|
9
|
+
Maintainer-email: Litestar Developers <hello@litestar.dev>
|
|
10
|
+
License-Expression: MIT
|
|
11
|
+
License-File: LICENSE
|
|
12
|
+
Requires-Python: <4.0,>=3.10
|
|
13
|
+
Requires-Dist: mypy-extensions
|
|
14
|
+
Requires-Dist: rich-click>=1.9.0
|
|
15
|
+
Requires-Dist: sqlglot>=19.9.0
|
|
16
|
+
Requires-Dist: tomli>=2.0.0; python_version < '3.11'
|
|
17
|
+
Requires-Dist: typing-extensions
|
|
18
|
+
Provides-Extra: adbc
|
|
19
|
+
Requires-Dist: adbc-driver-manager; extra == 'adbc'
|
|
20
|
+
Requires-Dist: pyarrow; extra == 'adbc'
|
|
21
|
+
Provides-Extra: adk
|
|
22
|
+
Requires-Dist: google-adk; extra == 'adk'
|
|
23
|
+
Provides-Extra: aioodbc
|
|
24
|
+
Requires-Dist: aioodbc; extra == 'aioodbc'
|
|
25
|
+
Provides-Extra: aiosqlite
|
|
26
|
+
Requires-Dist: aiosqlite; extra == 'aiosqlite'
|
|
27
|
+
Provides-Extra: alloydb
|
|
28
|
+
Requires-Dist: google-cloud-alloydb-connector; extra == 'alloydb'
|
|
29
|
+
Provides-Extra: asyncmy
|
|
30
|
+
Requires-Dist: asyncmy; extra == 'asyncmy'
|
|
31
|
+
Provides-Extra: asyncpg
|
|
32
|
+
Requires-Dist: asyncpg; extra == 'asyncpg'
|
|
33
|
+
Provides-Extra: attrs
|
|
34
|
+
Requires-Dist: attrs; extra == 'attrs'
|
|
35
|
+
Requires-Dist: cattrs; extra == 'attrs'
|
|
36
|
+
Provides-Extra: bigquery
|
|
37
|
+
Requires-Dist: google-cloud-bigquery; extra == 'bigquery'
|
|
38
|
+
Requires-Dist: google-cloud-storage; extra == 'bigquery'
|
|
39
|
+
Provides-Extra: cloud-sql
|
|
40
|
+
Requires-Dist: cloud-sql-python-connector; extra == 'cloud-sql'
|
|
41
|
+
Provides-Extra: cockroachdb
|
|
42
|
+
Requires-Dist: asyncpg; extra == 'cockroachdb'
|
|
43
|
+
Requires-Dist: psycopg[binary,pool]; extra == 'cockroachdb'
|
|
44
|
+
Provides-Extra: duckdb
|
|
45
|
+
Requires-Dist: duckdb; extra == 'duckdb'
|
|
46
|
+
Provides-Extra: fastapi
|
|
47
|
+
Requires-Dist: fastapi; extra == 'fastapi'
|
|
48
|
+
Provides-Extra: flask
|
|
49
|
+
Requires-Dist: flask; extra == 'flask'
|
|
50
|
+
Provides-Extra: fsspec
|
|
51
|
+
Requires-Dist: fsspec; extra == 'fsspec'
|
|
52
|
+
Provides-Extra: litestar
|
|
53
|
+
Requires-Dist: litestar; extra == 'litestar'
|
|
54
|
+
Provides-Extra: msgspec
|
|
55
|
+
Requires-Dist: msgspec; extra == 'msgspec'
|
|
56
|
+
Provides-Extra: mypyc
|
|
57
|
+
Provides-Extra: mysql-connector
|
|
58
|
+
Requires-Dist: mysql-connector-python; extra == 'mysql-connector'
|
|
59
|
+
Provides-Extra: nanoid
|
|
60
|
+
Requires-Dist: fastnanoid>=0.4.1; extra == 'nanoid'
|
|
61
|
+
Provides-Extra: obstore
|
|
62
|
+
Requires-Dist: obstore; extra == 'obstore'
|
|
63
|
+
Provides-Extra: opentelemetry
|
|
64
|
+
Requires-Dist: opentelemetry-instrumentation; extra == 'opentelemetry'
|
|
65
|
+
Provides-Extra: oracledb
|
|
66
|
+
Requires-Dist: oracledb; extra == 'oracledb'
|
|
67
|
+
Provides-Extra: orjson
|
|
68
|
+
Requires-Dist: orjson; extra == 'orjson'
|
|
69
|
+
Provides-Extra: pandas
|
|
70
|
+
Requires-Dist: pandas; extra == 'pandas'
|
|
71
|
+
Requires-Dist: pyarrow; extra == 'pandas'
|
|
72
|
+
Provides-Extra: performance
|
|
73
|
+
Requires-Dist: msgspec; extra == 'performance'
|
|
74
|
+
Requires-Dist: sqlglot[rs]; extra == 'performance'
|
|
75
|
+
Provides-Extra: polars
|
|
76
|
+
Requires-Dist: polars; extra == 'polars'
|
|
77
|
+
Requires-Dist: pyarrow; extra == 'polars'
|
|
78
|
+
Provides-Extra: prometheus
|
|
79
|
+
Requires-Dist: prometheus-client; extra == 'prometheus'
|
|
80
|
+
Provides-Extra: psqlpy
|
|
81
|
+
Requires-Dist: psqlpy; extra == 'psqlpy'
|
|
82
|
+
Provides-Extra: psycopg
|
|
83
|
+
Requires-Dist: psycopg[binary,pool]; extra == 'psycopg'
|
|
84
|
+
Provides-Extra: pydantic
|
|
85
|
+
Requires-Dist: pydantic; extra == 'pydantic'
|
|
86
|
+
Requires-Dist: pydantic-extra-types; extra == 'pydantic'
|
|
87
|
+
Provides-Extra: pymssql
|
|
88
|
+
Requires-Dist: pymssql; extra == 'pymssql'
|
|
89
|
+
Provides-Extra: pymysql
|
|
90
|
+
Requires-Dist: pymysql; extra == 'pymysql'
|
|
91
|
+
Provides-Extra: spanner
|
|
92
|
+
Requires-Dist: google-cloud-spanner; extra == 'spanner'
|
|
93
|
+
Provides-Extra: uuid
|
|
94
|
+
Requires-Dist: uuid-utils; extra == 'uuid'
|
|
95
|
+
Description-Content-Type: text/markdown
|
|
96
|
+
|
|
97
|
+
# SQLSpec
|
|
98
|
+
|
|
99
|
+
**Type-safe SQL execution layer for Python.**
|
|
100
|
+
|
|
101
|
+
SQLSpec handles database connectivity and result mapping so you can focus on SQL. Write raw queries when you need precision, use the builder API when you need composability, or load SQL from files when you need organization. Every statement passes through a [sqlglot](https://github.com/tobymao/sqlglot)-powered AST pipeline for validation, dialect conversion, and optimization before execution. Export results as Python objects, Arrow tables, Polars or pandas DataFrames.
|
|
102
|
+
|
|
103
|
+
It's not an ORM. It's the connectivity and processing layer between your application and your database that provides the right abstraction for each situation without dictating how you write SQL.
|
|
104
|
+
|
|
105
|
+
## Status
|
|
106
|
+
|
|
107
|
+
SQLSpec is currently in active development. The public API may change. Follow the [docs](https://sqlspec.dev/) and changelog for updates.
|
|
108
|
+
|
|
109
|
+
## What You Get
|
|
110
|
+
|
|
111
|
+
**Connection Management**
|
|
112
|
+
|
|
113
|
+
- Connection pooling with configurable size, timeout, and lifecycle hooks
|
|
114
|
+
- Sync and async support with a unified API surface
|
|
115
|
+
- Adapters for PostgreSQL (psycopg, asyncpg, psqlpy), SQLite (sqlite3, aiosqlite), DuckDB, MySQL (asyncmy, mysql-connector, pymysql), Oracle, BigQuery, and ADBC-compatible databases
|
|
116
|
+
|
|
117
|
+
**Query Execution**
|
|
118
|
+
|
|
119
|
+
- Raw SQL strings with automatic parameter binding and dialect translation
|
|
120
|
+
- SQL AST parsing via sqlglot for validation, optimization, and dialect conversion
|
|
121
|
+
- Builder API for programmatic query construction without string concatenation
|
|
122
|
+
- SQL file loading to keep queries organized alongside your code (named SQL queries)
|
|
123
|
+
- Statement stacks for batching multiple operations with transaction control
|
|
124
|
+
|
|
125
|
+
**Result Handling**
|
|
126
|
+
|
|
127
|
+
- Type-safe result mapping to Pydantic, msgspec, attrs, or dataclasses
|
|
128
|
+
- Apache Arrow export for zero-copy integration with pandas, Polars, and analytical tools
|
|
129
|
+
- Result iteration, single-row fetch, or bulk retrieval based on your use case
|
|
130
|
+
|
|
131
|
+
**Framework Integration**
|
|
132
|
+
|
|
133
|
+
- Litestar plugin with dependency injection for connections, sessions, and pools
|
|
134
|
+
- Starlette/FastAPI middleware for automatic transaction management
|
|
135
|
+
- Flask extension with sync/async portal support
|
|
136
|
+
|
|
137
|
+
**Production Features**
|
|
138
|
+
|
|
139
|
+
- SQL validation and caching via sqlglot AST parsing
|
|
140
|
+
- OpenTelemetry and Prometheus instrumentation hooks
|
|
141
|
+
- Database event channels with native LISTEN/NOTIFY, Oracle AQ, and a portable queue fallback
|
|
142
|
+
- Structured logging with correlation ID support
|
|
143
|
+
- Migration CLI for schema versioning
|
|
144
|
+
|
|
145
|
+
## Quick Start
|
|
146
|
+
|
|
147
|
+
### Install
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
pip install "sqlspec"
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Run your first query
|
|
154
|
+
|
|
155
|
+
```python
|
|
156
|
+
from pydantic import BaseModel
|
|
157
|
+
from sqlspec import SQLSpec
|
|
158
|
+
from sqlspec.adapters.sqlite import SqliteConfig
|
|
159
|
+
|
|
160
|
+
class Greeting(BaseModel):
|
|
161
|
+
message: str
|
|
162
|
+
|
|
163
|
+
spec = SQLSpec()
|
|
164
|
+
db = spec.add_config(SqliteConfig(connection_config={"database": ":memory:"}))
|
|
165
|
+
|
|
166
|
+
with spec.provide_session(db) as session:
|
|
167
|
+
greeting = session.select_one(
|
|
168
|
+
"SELECT 'Hello, SQLSpec!' AS message",
|
|
169
|
+
schema_type=Greeting,
|
|
170
|
+
)
|
|
171
|
+
print(greeting.message) # Output: Hello, SQLSpec!
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
That's it. Write SQL, define a schema, get typed objects back. Connection pooling, parameter binding, and result mapping are handled automatically.
|
|
175
|
+
|
|
176
|
+
See the [Getting Started guide](https://sqlspec.dev/getting_started/) for installation variants, adapter selection, and advanced result mapping options.
|
|
177
|
+
|
|
178
|
+
## Documentation
|
|
179
|
+
|
|
180
|
+
- [Getting Started](https://sqlspec.dev/getting_started/)
|
|
181
|
+
- [Usage Guides](https://sqlspec.dev/usage/)
|
|
182
|
+
- [Examples Gallery](https://sqlspec.dev/examples/)
|
|
183
|
+
- [API Reference](https://sqlspec.dev/reference/)
|
|
184
|
+
- [CLI Reference](https://sqlspec.dev/usage/cli.html)
|
|
185
|
+
|
|
186
|
+
## Reference Applications
|
|
187
|
+
|
|
188
|
+
- **[PostgreSQL + Vertex AI Demo](https://github.com/cofin/postgres-vertexai-demo)** - Vector search with pgvector and real-time chat using Litestar and Google ADK. Shows connection pooling, migrations, type-safe result mapping, vector embeddings, and response caching.
|
|
189
|
+
- **[Oracle + Vertex AI Demo](https://github.com/cofin/oracledb-vertexai-demo)** - Oracle 23ai vector search with semantic similarity using HNSW indexes. Demonstrates NumPy array conversion, large object (CLOB) handling, and real-time performance metrics.
|
|
190
|
+
|
|
191
|
+
See the [usage docs](https://sqlspec.dev/usage/) for detailed guides on adapters, configuration patterns, and features like the [SQL file loader](https://sqlspec.dev/usage/loader.html).
|
|
192
|
+
|
|
193
|
+
## Built With
|
|
194
|
+
|
|
195
|
+
- **[sqlglot](https://github.com/tobymao/sqlglot)** - SQL parser, transpiler, and optimizer powering SQLSpec's AST pipeline
|
|
196
|
+
|
|
197
|
+
## Contributing
|
|
198
|
+
|
|
199
|
+
Contributions, issue reports, and adapter ideas are welcome. Review the
|
|
200
|
+
[contributor guide](https://sqlspec.dev/contributing/) and follow the project
|
|
201
|
+
coding standards before opening a pull request.
|
|
202
|
+
|
|
203
|
+
## License
|
|
204
|
+
|
|
205
|
+
SQLSpec is distributed under the MIT License.
|
sqlspec-0.38.0/README.md
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# SQLSpec
|
|
2
|
+
|
|
3
|
+
**Type-safe SQL execution layer for Python.**
|
|
4
|
+
|
|
5
|
+
SQLSpec handles database connectivity and result mapping so you can focus on SQL. Write raw queries when you need precision, use the builder API when you need composability, or load SQL from files when you need organization. Every statement passes through a [sqlglot](https://github.com/tobymao/sqlglot)-powered AST pipeline for validation, dialect conversion, and optimization before execution. Export results as Python objects, Arrow tables, Polars or pandas DataFrames.
|
|
6
|
+
|
|
7
|
+
It's not an ORM. It's the connectivity and processing layer between your application and your database that provides the right abstraction for each situation without dictating how you write SQL.
|
|
8
|
+
|
|
9
|
+
## Status
|
|
10
|
+
|
|
11
|
+
SQLSpec is currently in active development. The public API may change. Follow the [docs](https://sqlspec.dev/) and changelog for updates.
|
|
12
|
+
|
|
13
|
+
## What You Get
|
|
14
|
+
|
|
15
|
+
**Connection Management**
|
|
16
|
+
|
|
17
|
+
- Connection pooling with configurable size, timeout, and lifecycle hooks
|
|
18
|
+
- Sync and async support with a unified API surface
|
|
19
|
+
- Adapters for PostgreSQL (psycopg, asyncpg, psqlpy), SQLite (sqlite3, aiosqlite), DuckDB, MySQL (asyncmy, mysql-connector, pymysql), Oracle, BigQuery, and ADBC-compatible databases
|
|
20
|
+
|
|
21
|
+
**Query Execution**
|
|
22
|
+
|
|
23
|
+
- Raw SQL strings with automatic parameter binding and dialect translation
|
|
24
|
+
- SQL AST parsing via sqlglot for validation, optimization, and dialect conversion
|
|
25
|
+
- Builder API for programmatic query construction without string concatenation
|
|
26
|
+
- SQL file loading to keep queries organized alongside your code (named SQL queries)
|
|
27
|
+
- Statement stacks for batching multiple operations with transaction control
|
|
28
|
+
|
|
29
|
+
**Result Handling**
|
|
30
|
+
|
|
31
|
+
- Type-safe result mapping to Pydantic, msgspec, attrs, or dataclasses
|
|
32
|
+
- Apache Arrow export for zero-copy integration with pandas, Polars, and analytical tools
|
|
33
|
+
- Result iteration, single-row fetch, or bulk retrieval based on your use case
|
|
34
|
+
|
|
35
|
+
**Framework Integration**
|
|
36
|
+
|
|
37
|
+
- Litestar plugin with dependency injection for connections, sessions, and pools
|
|
38
|
+
- Starlette/FastAPI middleware for automatic transaction management
|
|
39
|
+
- Flask extension with sync/async portal support
|
|
40
|
+
|
|
41
|
+
**Production Features**
|
|
42
|
+
|
|
43
|
+
- SQL validation and caching via sqlglot AST parsing
|
|
44
|
+
- OpenTelemetry and Prometheus instrumentation hooks
|
|
45
|
+
- Database event channels with native LISTEN/NOTIFY, Oracle AQ, and a portable queue fallback
|
|
46
|
+
- Structured logging with correlation ID support
|
|
47
|
+
- Migration CLI for schema versioning
|
|
48
|
+
|
|
49
|
+
## Quick Start
|
|
50
|
+
|
|
51
|
+
### Install
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
pip install "sqlspec"
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Run your first query
|
|
58
|
+
|
|
59
|
+
```python
|
|
60
|
+
from pydantic import BaseModel
|
|
61
|
+
from sqlspec import SQLSpec
|
|
62
|
+
from sqlspec.adapters.sqlite import SqliteConfig
|
|
63
|
+
|
|
64
|
+
class Greeting(BaseModel):
|
|
65
|
+
message: str
|
|
66
|
+
|
|
67
|
+
spec = SQLSpec()
|
|
68
|
+
db = spec.add_config(SqliteConfig(connection_config={"database": ":memory:"}))
|
|
69
|
+
|
|
70
|
+
with spec.provide_session(db) as session:
|
|
71
|
+
greeting = session.select_one(
|
|
72
|
+
"SELECT 'Hello, SQLSpec!' AS message",
|
|
73
|
+
schema_type=Greeting,
|
|
74
|
+
)
|
|
75
|
+
print(greeting.message) # Output: Hello, SQLSpec!
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
That's it. Write SQL, define a schema, get typed objects back. Connection pooling, parameter binding, and result mapping are handled automatically.
|
|
79
|
+
|
|
80
|
+
See the [Getting Started guide](https://sqlspec.dev/getting_started/) for installation variants, adapter selection, and advanced result mapping options.
|
|
81
|
+
|
|
82
|
+
## Documentation
|
|
83
|
+
|
|
84
|
+
- [Getting Started](https://sqlspec.dev/getting_started/)
|
|
85
|
+
- [Usage Guides](https://sqlspec.dev/usage/)
|
|
86
|
+
- [Examples Gallery](https://sqlspec.dev/examples/)
|
|
87
|
+
- [API Reference](https://sqlspec.dev/reference/)
|
|
88
|
+
- [CLI Reference](https://sqlspec.dev/usage/cli.html)
|
|
89
|
+
|
|
90
|
+
## Reference Applications
|
|
91
|
+
|
|
92
|
+
- **[PostgreSQL + Vertex AI Demo](https://github.com/cofin/postgres-vertexai-demo)** - Vector search with pgvector and real-time chat using Litestar and Google ADK. Shows connection pooling, migrations, type-safe result mapping, vector embeddings, and response caching.
|
|
93
|
+
- **[Oracle + Vertex AI Demo](https://github.com/cofin/oracledb-vertexai-demo)** - Oracle 23ai vector search with semantic similarity using HNSW indexes. Demonstrates NumPy array conversion, large object (CLOB) handling, and real-time performance metrics.
|
|
94
|
+
|
|
95
|
+
See the [usage docs](https://sqlspec.dev/usage/) for detailed guides on adapters, configuration patterns, and features like the [SQL file loader](https://sqlspec.dev/usage/loader.html).
|
|
96
|
+
|
|
97
|
+
## Built With
|
|
98
|
+
|
|
99
|
+
- **[sqlglot](https://github.com/tobymao/sqlglot)** - SQL parser, transpiler, and optimizer powering SQLSpec's AST pipeline
|
|
100
|
+
|
|
101
|
+
## Contributing
|
|
102
|
+
|
|
103
|
+
Contributions, issue reports, and adapter ideas are welcome. Review the
|
|
104
|
+
[contributor guide](https://sqlspec.dev/contributing/) and follow the project
|
|
105
|
+
coding standards before opening a pull request.
|
|
106
|
+
|
|
107
|
+
## License
|
|
108
|
+
|
|
109
|
+
SQLSpec is distributed under the MIT License.
|