sqlspec 0.36.0__cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ac8f31065839703b4e70__mypyc.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/__init__.py +140 -0
- sqlspec/__main__.py +12 -0
- sqlspec/__metadata__.py +14 -0
- sqlspec/_serialization.py +315 -0
- sqlspec/_typing.py +700 -0
- sqlspec/adapters/__init__.py +0 -0
- sqlspec/adapters/adbc/__init__.py +5 -0
- sqlspec/adapters/adbc/_typing.py +82 -0
- sqlspec/adapters/adbc/adk/__init__.py +5 -0
- sqlspec/adapters/adbc/adk/store.py +1273 -0
- sqlspec/adapters/adbc/config.py +295 -0
- sqlspec/adapters/adbc/core.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/adbc/core.py +735 -0
- sqlspec/adapters/adbc/data_dictionary.py +334 -0
- sqlspec/adapters/adbc/driver.py +529 -0
- sqlspec/adapters/adbc/events/__init__.py +5 -0
- sqlspec/adapters/adbc/events/store.py +285 -0
- sqlspec/adapters/adbc/litestar/__init__.py +5 -0
- sqlspec/adapters/adbc/litestar/store.py +502 -0
- sqlspec/adapters/adbc/type_converter.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/adbc/type_converter.py +140 -0
- sqlspec/adapters/aiosqlite/__init__.py +25 -0
- sqlspec/adapters/aiosqlite/_typing.py +82 -0
- sqlspec/adapters/aiosqlite/adk/__init__.py +5 -0
- sqlspec/adapters/aiosqlite/adk/store.py +818 -0
- sqlspec/adapters/aiosqlite/config.py +334 -0
- sqlspec/adapters/aiosqlite/core.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/aiosqlite/core.py +315 -0
- sqlspec/adapters/aiosqlite/data_dictionary.py +208 -0
- sqlspec/adapters/aiosqlite/driver.py +313 -0
- sqlspec/adapters/aiosqlite/events/__init__.py +5 -0
- sqlspec/adapters/aiosqlite/events/store.py +20 -0
- sqlspec/adapters/aiosqlite/litestar/__init__.py +5 -0
- sqlspec/adapters/aiosqlite/litestar/store.py +279 -0
- sqlspec/adapters/aiosqlite/pool.py +533 -0
- sqlspec/adapters/asyncmy/__init__.py +21 -0
- sqlspec/adapters/asyncmy/_typing.py +87 -0
- sqlspec/adapters/asyncmy/adk/__init__.py +5 -0
- sqlspec/adapters/asyncmy/adk/store.py +703 -0
- sqlspec/adapters/asyncmy/config.py +302 -0
- sqlspec/adapters/asyncmy/core.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/asyncmy/core.py +360 -0
- sqlspec/adapters/asyncmy/data_dictionary.py +124 -0
- sqlspec/adapters/asyncmy/driver.py +383 -0
- sqlspec/adapters/asyncmy/events/__init__.py +5 -0
- sqlspec/adapters/asyncmy/events/store.py +104 -0
- sqlspec/adapters/asyncmy/litestar/__init__.py +5 -0
- sqlspec/adapters/asyncmy/litestar/store.py +296 -0
- sqlspec/adapters/asyncpg/__init__.py +19 -0
- sqlspec/adapters/asyncpg/_typing.py +88 -0
- sqlspec/adapters/asyncpg/adk/__init__.py +5 -0
- sqlspec/adapters/asyncpg/adk/store.py +748 -0
- sqlspec/adapters/asyncpg/config.py +569 -0
- sqlspec/adapters/asyncpg/core.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/asyncpg/core.py +367 -0
- sqlspec/adapters/asyncpg/data_dictionary.py +162 -0
- sqlspec/adapters/asyncpg/driver.py +487 -0
- sqlspec/adapters/asyncpg/events/__init__.py +6 -0
- sqlspec/adapters/asyncpg/events/backend.py +286 -0
- sqlspec/adapters/asyncpg/events/store.py +40 -0
- sqlspec/adapters/asyncpg/litestar/__init__.py +5 -0
- sqlspec/adapters/asyncpg/litestar/store.py +251 -0
- sqlspec/adapters/bigquery/__init__.py +14 -0
- sqlspec/adapters/bigquery/_typing.py +86 -0
- sqlspec/adapters/bigquery/adk/__init__.py +5 -0
- sqlspec/adapters/bigquery/adk/store.py +827 -0
- sqlspec/adapters/bigquery/config.py +353 -0
- sqlspec/adapters/bigquery/core.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/bigquery/core.py +715 -0
- sqlspec/adapters/bigquery/data_dictionary.py +128 -0
- sqlspec/adapters/bigquery/driver.py +548 -0
- sqlspec/adapters/bigquery/events/__init__.py +5 -0
- sqlspec/adapters/bigquery/events/store.py +139 -0
- sqlspec/adapters/bigquery/litestar/__init__.py +5 -0
- sqlspec/adapters/bigquery/litestar/store.py +325 -0
- sqlspec/adapters/bigquery/type_converter.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/bigquery/type_converter.py +107 -0
- sqlspec/adapters/cockroach_asyncpg/__init__.py +24 -0
- sqlspec/adapters/cockroach_asyncpg/_typing.py +72 -0
- sqlspec/adapters/cockroach_asyncpg/adk/__init__.py +3 -0
- sqlspec/adapters/cockroach_asyncpg/adk/store.py +410 -0
- sqlspec/adapters/cockroach_asyncpg/config.py +238 -0
- sqlspec/adapters/cockroach_asyncpg/core.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/cockroach_asyncpg/core.py +55 -0
- sqlspec/adapters/cockroach_asyncpg/data_dictionary.py +107 -0
- sqlspec/adapters/cockroach_asyncpg/driver.py +144 -0
- sqlspec/adapters/cockroach_asyncpg/events/__init__.py +3 -0
- sqlspec/adapters/cockroach_asyncpg/events/store.py +20 -0
- sqlspec/adapters/cockroach_asyncpg/litestar/__init__.py +3 -0
- sqlspec/adapters/cockroach_asyncpg/litestar/store.py +142 -0
- sqlspec/adapters/cockroach_psycopg/__init__.py +38 -0
- sqlspec/adapters/cockroach_psycopg/_typing.py +129 -0
- sqlspec/adapters/cockroach_psycopg/adk/__init__.py +13 -0
- sqlspec/adapters/cockroach_psycopg/adk/store.py +868 -0
- sqlspec/adapters/cockroach_psycopg/config.py +484 -0
- sqlspec/adapters/cockroach_psycopg/core.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/cockroach_psycopg/core.py +63 -0
- sqlspec/adapters/cockroach_psycopg/data_dictionary.py +215 -0
- sqlspec/adapters/cockroach_psycopg/driver.py +284 -0
- sqlspec/adapters/cockroach_psycopg/events/__init__.py +6 -0
- sqlspec/adapters/cockroach_psycopg/events/store.py +34 -0
- sqlspec/adapters/cockroach_psycopg/litestar/__init__.py +3 -0
- sqlspec/adapters/cockroach_psycopg/litestar/store.py +325 -0
- sqlspec/adapters/duckdb/__init__.py +25 -0
- sqlspec/adapters/duckdb/_typing.py +81 -0
- sqlspec/adapters/duckdb/adk/__init__.py +14 -0
- sqlspec/adapters/duckdb/adk/store.py +850 -0
- sqlspec/adapters/duckdb/config.py +463 -0
- sqlspec/adapters/duckdb/core.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/duckdb/core.py +257 -0
- sqlspec/adapters/duckdb/data_dictionary.py +140 -0
- sqlspec/adapters/duckdb/driver.py +430 -0
- sqlspec/adapters/duckdb/events/__init__.py +5 -0
- sqlspec/adapters/duckdb/events/store.py +57 -0
- sqlspec/adapters/duckdb/litestar/__init__.py +5 -0
- sqlspec/adapters/duckdb/litestar/store.py +330 -0
- sqlspec/adapters/duckdb/pool.py +293 -0
- sqlspec/adapters/duckdb/type_converter.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/duckdb/type_converter.py +118 -0
- sqlspec/adapters/mock/__init__.py +72 -0
- sqlspec/adapters/mock/_typing.py +147 -0
- sqlspec/adapters/mock/config.py +483 -0
- sqlspec/adapters/mock/core.py +319 -0
- sqlspec/adapters/mock/data_dictionary.py +366 -0
- sqlspec/adapters/mock/driver.py +721 -0
- sqlspec/adapters/mysqlconnector/__init__.py +36 -0
- sqlspec/adapters/mysqlconnector/_typing.py +141 -0
- sqlspec/adapters/mysqlconnector/adk/__init__.py +15 -0
- sqlspec/adapters/mysqlconnector/adk/store.py +1060 -0
- sqlspec/adapters/mysqlconnector/config.py +394 -0
- sqlspec/adapters/mysqlconnector/core.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/mysqlconnector/core.py +303 -0
- sqlspec/adapters/mysqlconnector/data_dictionary.py +235 -0
- sqlspec/adapters/mysqlconnector/driver.py +483 -0
- sqlspec/adapters/mysqlconnector/events/__init__.py +8 -0
- sqlspec/adapters/mysqlconnector/events/store.py +98 -0
- sqlspec/adapters/mysqlconnector/litestar/__init__.py +5 -0
- sqlspec/adapters/mysqlconnector/litestar/store.py +426 -0
- sqlspec/adapters/oracledb/__init__.py +60 -0
- sqlspec/adapters/oracledb/_numpy_handlers.py +141 -0
- sqlspec/adapters/oracledb/_typing.py +182 -0
- sqlspec/adapters/oracledb/_uuid_handlers.py +166 -0
- sqlspec/adapters/oracledb/adk/__init__.py +10 -0
- sqlspec/adapters/oracledb/adk/store.py +2369 -0
- sqlspec/adapters/oracledb/config.py +550 -0
- sqlspec/adapters/oracledb/core.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/oracledb/core.py +543 -0
- sqlspec/adapters/oracledb/data_dictionary.py +536 -0
- sqlspec/adapters/oracledb/driver.py +1229 -0
- sqlspec/adapters/oracledb/events/__init__.py +16 -0
- sqlspec/adapters/oracledb/events/backend.py +347 -0
- sqlspec/adapters/oracledb/events/store.py +420 -0
- sqlspec/adapters/oracledb/litestar/__init__.py +5 -0
- sqlspec/adapters/oracledb/litestar/store.py +781 -0
- sqlspec/adapters/oracledb/migrations.py +535 -0
- sqlspec/adapters/oracledb/type_converter.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/oracledb/type_converter.py +211 -0
- sqlspec/adapters/psqlpy/__init__.py +17 -0
- sqlspec/adapters/psqlpy/_typing.py +79 -0
- sqlspec/adapters/psqlpy/adk/__init__.py +5 -0
- sqlspec/adapters/psqlpy/adk/store.py +766 -0
- sqlspec/adapters/psqlpy/config.py +304 -0
- sqlspec/adapters/psqlpy/core.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/psqlpy/core.py +480 -0
- sqlspec/adapters/psqlpy/data_dictionary.py +126 -0
- sqlspec/adapters/psqlpy/driver.py +438 -0
- sqlspec/adapters/psqlpy/events/__init__.py +6 -0
- sqlspec/adapters/psqlpy/events/backend.py +310 -0
- sqlspec/adapters/psqlpy/events/store.py +20 -0
- sqlspec/adapters/psqlpy/litestar/__init__.py +5 -0
- sqlspec/adapters/psqlpy/litestar/store.py +270 -0
- sqlspec/adapters/psqlpy/type_converter.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/psqlpy/type_converter.py +113 -0
- sqlspec/adapters/psycopg/__init__.py +32 -0
- sqlspec/adapters/psycopg/_typing.py +164 -0
- sqlspec/adapters/psycopg/adk/__init__.py +10 -0
- sqlspec/adapters/psycopg/adk/store.py +1387 -0
- sqlspec/adapters/psycopg/config.py +576 -0
- sqlspec/adapters/psycopg/core.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/psycopg/core.py +450 -0
- sqlspec/adapters/psycopg/data_dictionary.py +289 -0
- sqlspec/adapters/psycopg/driver.py +975 -0
- sqlspec/adapters/psycopg/events/__init__.py +20 -0
- sqlspec/adapters/psycopg/events/backend.py +458 -0
- sqlspec/adapters/psycopg/events/store.py +42 -0
- sqlspec/adapters/psycopg/litestar/__init__.py +5 -0
- sqlspec/adapters/psycopg/litestar/store.py +552 -0
- sqlspec/adapters/psycopg/type_converter.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/psycopg/type_converter.py +93 -0
- sqlspec/adapters/pymysql/__init__.py +21 -0
- sqlspec/adapters/pymysql/_typing.py +71 -0
- sqlspec/adapters/pymysql/adk/__init__.py +5 -0
- sqlspec/adapters/pymysql/adk/store.py +540 -0
- sqlspec/adapters/pymysql/config.py +195 -0
- sqlspec/adapters/pymysql/core.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/pymysql/core.py +299 -0
- sqlspec/adapters/pymysql/data_dictionary.py +122 -0
- sqlspec/adapters/pymysql/driver.py +259 -0
- sqlspec/adapters/pymysql/events/__init__.py +5 -0
- sqlspec/adapters/pymysql/events/store.py +50 -0
- sqlspec/adapters/pymysql/litestar/__init__.py +5 -0
- sqlspec/adapters/pymysql/litestar/store.py +232 -0
- sqlspec/adapters/pymysql/pool.py +137 -0
- sqlspec/adapters/spanner/__init__.py +40 -0
- sqlspec/adapters/spanner/_typing.py +86 -0
- sqlspec/adapters/spanner/adk/__init__.py +5 -0
- sqlspec/adapters/spanner/adk/store.py +732 -0
- sqlspec/adapters/spanner/config.py +352 -0
- sqlspec/adapters/spanner/core.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/spanner/core.py +188 -0
- sqlspec/adapters/spanner/data_dictionary.py +120 -0
- sqlspec/adapters/spanner/dialect/__init__.py +6 -0
- sqlspec/adapters/spanner/dialect/_spangres.py +57 -0
- sqlspec/adapters/spanner/dialect/_spanner.py +130 -0
- sqlspec/adapters/spanner/driver.py +373 -0
- sqlspec/adapters/spanner/events/__init__.py +5 -0
- sqlspec/adapters/spanner/events/store.py +187 -0
- sqlspec/adapters/spanner/litestar/__init__.py +5 -0
- sqlspec/adapters/spanner/litestar/store.py +291 -0
- sqlspec/adapters/spanner/type_converter.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/spanner/type_converter.py +331 -0
- sqlspec/adapters/sqlite/__init__.py +19 -0
- sqlspec/adapters/sqlite/_typing.py +80 -0
- sqlspec/adapters/sqlite/adk/__init__.py +5 -0
- sqlspec/adapters/sqlite/adk/store.py +958 -0
- sqlspec/adapters/sqlite/config.py +280 -0
- sqlspec/adapters/sqlite/core.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/sqlite/core.py +312 -0
- sqlspec/adapters/sqlite/data_dictionary.py +202 -0
- sqlspec/adapters/sqlite/driver.py +359 -0
- sqlspec/adapters/sqlite/events/__init__.py +5 -0
- sqlspec/adapters/sqlite/events/store.py +20 -0
- sqlspec/adapters/sqlite/litestar/__init__.py +5 -0
- sqlspec/adapters/sqlite/litestar/store.py +316 -0
- sqlspec/adapters/sqlite/pool.py +198 -0
- sqlspec/adapters/sqlite/type_converter.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/adapters/sqlite/type_converter.py +114 -0
- sqlspec/base.py +747 -0
- sqlspec/builder/__init__.py +179 -0
- sqlspec/builder/_base.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/builder/_base.py +1022 -0
- sqlspec/builder/_column.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/builder/_column.py +521 -0
- sqlspec/builder/_ddl.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/builder/_ddl.py +1642 -0
- sqlspec/builder/_delete.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/builder/_delete.py +95 -0
- sqlspec/builder/_dml.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/builder/_dml.py +365 -0
- sqlspec/builder/_explain.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/builder/_explain.py +579 -0
- sqlspec/builder/_expression_wrappers.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/builder/_expression_wrappers.py +46 -0
- sqlspec/builder/_factory.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/builder/_factory.py +1697 -0
- sqlspec/builder/_insert.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/builder/_insert.py +328 -0
- sqlspec/builder/_join.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/builder/_join.py +499 -0
- sqlspec/builder/_merge.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/builder/_merge.py +821 -0
- sqlspec/builder/_parsing_utils.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/builder/_parsing_utils.py +297 -0
- sqlspec/builder/_select.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/builder/_select.py +1660 -0
- sqlspec/builder/_temporal.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/builder/_temporal.py +139 -0
- sqlspec/builder/_update.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/builder/_update.py +173 -0
- sqlspec/builder/_vector_expressions.py +267 -0
- sqlspec/cli.py +911 -0
- sqlspec/config.py +1755 -0
- sqlspec/core/__init__.py +374 -0
- sqlspec/core/_correlation.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/_correlation.py +176 -0
- sqlspec/core/cache.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/cache.py +1069 -0
- sqlspec/core/compiler.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/compiler.py +954 -0
- sqlspec/core/explain.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/explain.py +275 -0
- sqlspec/core/filters.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/filters.py +952 -0
- sqlspec/core/hashing.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/hashing.py +262 -0
- sqlspec/core/metrics.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/metrics.py +83 -0
- sqlspec/core/parameters/__init__.py +71 -0
- sqlspec/core/parameters/_alignment.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/parameters/_alignment.py +270 -0
- sqlspec/core/parameters/_converter.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/parameters/_converter.py +543 -0
- sqlspec/core/parameters/_processor.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/parameters/_processor.py +505 -0
- sqlspec/core/parameters/_registry.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/parameters/_registry.py +206 -0
- sqlspec/core/parameters/_transformers.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/parameters/_transformers.py +292 -0
- sqlspec/core/parameters/_types.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/parameters/_types.py +499 -0
- sqlspec/core/parameters/_validator.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/parameters/_validator.py +180 -0
- sqlspec/core/pipeline.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/pipeline.py +319 -0
- sqlspec/core/query_modifiers.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/query_modifiers.py +437 -0
- sqlspec/core/result/__init__.py +23 -0
- sqlspec/core/result/_base.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/result/_base.py +1121 -0
- sqlspec/core/result/_io.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/result/_io.py +28 -0
- sqlspec/core/splitter.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/splitter.py +966 -0
- sqlspec/core/stack.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/stack.py +163 -0
- sqlspec/core/statement.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/statement.py +1503 -0
- sqlspec/core/type_converter.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/core/type_converter.py +339 -0
- sqlspec/data_dictionary/__init__.py +22 -0
- sqlspec/data_dictionary/_loader.py +123 -0
- sqlspec/data_dictionary/_registry.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/data_dictionary/_registry.py +74 -0
- sqlspec/data_dictionary/_types.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/data_dictionary/_types.py +121 -0
- sqlspec/data_dictionary/dialects/__init__.py +21 -0
- sqlspec/data_dictionary/dialects/bigquery.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/data_dictionary/dialects/bigquery.py +49 -0
- sqlspec/data_dictionary/dialects/cockroachdb.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/data_dictionary/dialects/cockroachdb.py +43 -0
- sqlspec/data_dictionary/dialects/duckdb.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/data_dictionary/dialects/duckdb.py +47 -0
- sqlspec/data_dictionary/dialects/mysql.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/data_dictionary/dialects/mysql.py +42 -0
- sqlspec/data_dictionary/dialects/oracle.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/data_dictionary/dialects/oracle.py +34 -0
- sqlspec/data_dictionary/dialects/postgres.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/data_dictionary/dialects/postgres.py +46 -0
- sqlspec/data_dictionary/dialects/spanner.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/data_dictionary/dialects/spanner.py +37 -0
- sqlspec/data_dictionary/dialects/sqlite.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/data_dictionary/dialects/sqlite.py +42 -0
- sqlspec/data_dictionary/sql/.gitkeep +0 -0
- sqlspec/data_dictionary/sql/bigquery/columns.sql +23 -0
- sqlspec/data_dictionary/sql/bigquery/foreign_keys.sql +34 -0
- sqlspec/data_dictionary/sql/bigquery/indexes.sql +19 -0
- sqlspec/data_dictionary/sql/bigquery/tables.sql +33 -0
- sqlspec/data_dictionary/sql/bigquery/version.sql +3 -0
- sqlspec/data_dictionary/sql/cockroachdb/columns.sql +34 -0
- sqlspec/data_dictionary/sql/cockroachdb/foreign_keys.sql +40 -0
- sqlspec/data_dictionary/sql/cockroachdb/indexes.sql +32 -0
- sqlspec/data_dictionary/sql/cockroachdb/tables.sql +44 -0
- sqlspec/data_dictionary/sql/cockroachdb/version.sql +3 -0
- sqlspec/data_dictionary/sql/duckdb/columns.sql +23 -0
- sqlspec/data_dictionary/sql/duckdb/foreign_keys.sql +36 -0
- sqlspec/data_dictionary/sql/duckdb/indexes.sql +19 -0
- sqlspec/data_dictionary/sql/duckdb/tables.sql +38 -0
- sqlspec/data_dictionary/sql/duckdb/version.sql +3 -0
- sqlspec/data_dictionary/sql/mysql/columns.sql +23 -0
- sqlspec/data_dictionary/sql/mysql/foreign_keys.sql +28 -0
- sqlspec/data_dictionary/sql/mysql/indexes.sql +26 -0
- sqlspec/data_dictionary/sql/mysql/tables.sql +33 -0
- sqlspec/data_dictionary/sql/mysql/version.sql +3 -0
- sqlspec/data_dictionary/sql/oracle/columns.sql +23 -0
- sqlspec/data_dictionary/sql/oracle/foreign_keys.sql +48 -0
- sqlspec/data_dictionary/sql/oracle/indexes.sql +44 -0
- sqlspec/data_dictionary/sql/oracle/tables.sql +25 -0
- sqlspec/data_dictionary/sql/oracle/version.sql +20 -0
- sqlspec/data_dictionary/sql/postgres/columns.sql +34 -0
- sqlspec/data_dictionary/sql/postgres/foreign_keys.sql +40 -0
- sqlspec/data_dictionary/sql/postgres/indexes.sql +56 -0
- sqlspec/data_dictionary/sql/postgres/tables.sql +44 -0
- sqlspec/data_dictionary/sql/postgres/version.sql +3 -0
- sqlspec/data_dictionary/sql/spanner/columns.sql +23 -0
- sqlspec/data_dictionary/sql/spanner/foreign_keys.sql +70 -0
- sqlspec/data_dictionary/sql/spanner/indexes.sql +30 -0
- sqlspec/data_dictionary/sql/spanner/tables.sql +9 -0
- sqlspec/data_dictionary/sql/spanner/version.sql +3 -0
- sqlspec/data_dictionary/sql/sqlite/columns.sql +23 -0
- sqlspec/data_dictionary/sql/sqlite/foreign_keys.sql +22 -0
- sqlspec/data_dictionary/sql/sqlite/indexes.sql +7 -0
- sqlspec/data_dictionary/sql/sqlite/tables.sql +28 -0
- sqlspec/data_dictionary/sql/sqlite/version.sql +3 -0
- sqlspec/driver/__init__.py +32 -0
- sqlspec/driver/_async.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/driver/_async.py +1737 -0
- sqlspec/driver/_common.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/driver/_common.py +1478 -0
- sqlspec/driver/_sql_helpers.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/driver/_sql_helpers.py +148 -0
- sqlspec/driver/_storage_helpers.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/driver/_storage_helpers.py +144 -0
- sqlspec/driver/_sync.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/driver/_sync.py +1710 -0
- sqlspec/exceptions.py +338 -0
- sqlspec/extensions/__init__.py +0 -0
- sqlspec/extensions/adk/__init__.py +70 -0
- sqlspec/extensions/adk/_types.py +51 -0
- sqlspec/extensions/adk/converters.py +172 -0
- sqlspec/extensions/adk/memory/__init__.py +69 -0
- sqlspec/extensions/adk/memory/_types.py +30 -0
- sqlspec/extensions/adk/memory/converters.py +149 -0
- sqlspec/extensions/adk/memory/service.py +217 -0
- sqlspec/extensions/adk/memory/store.py +569 -0
- sqlspec/extensions/adk/migrations/0001_create_adk_tables.py +246 -0
- sqlspec/extensions/adk/migrations/__init__.py +0 -0
- sqlspec/extensions/adk/service.py +225 -0
- sqlspec/extensions/adk/store.py +567 -0
- sqlspec/extensions/events/__init__.py +51 -0
- sqlspec/extensions/events/_channel.py +703 -0
- sqlspec/extensions/events/_hints.py +45 -0
- sqlspec/extensions/events/_models.py +23 -0
- sqlspec/extensions/events/_payload.py +69 -0
- sqlspec/extensions/events/_protocols.py +134 -0
- sqlspec/extensions/events/_queue.py +461 -0
- sqlspec/extensions/events/_store.py +209 -0
- sqlspec/extensions/events/migrations/0001_create_event_queue.py +59 -0
- sqlspec/extensions/events/migrations/__init__.py +3 -0
- sqlspec/extensions/fastapi/__init__.py +19 -0
- sqlspec/extensions/fastapi/extension.py +351 -0
- sqlspec/extensions/fastapi/providers.py +607 -0
- sqlspec/extensions/flask/__init__.py +37 -0
- sqlspec/extensions/flask/_state.py +76 -0
- sqlspec/extensions/flask/_utils.py +71 -0
- sqlspec/extensions/flask/extension.py +519 -0
- sqlspec/extensions/litestar/__init__.py +28 -0
- sqlspec/extensions/litestar/_utils.py +52 -0
- sqlspec/extensions/litestar/channels.py +165 -0
- sqlspec/extensions/litestar/cli.py +102 -0
- sqlspec/extensions/litestar/config.py +90 -0
- sqlspec/extensions/litestar/handlers.py +316 -0
- sqlspec/extensions/litestar/migrations/0001_create_session_table.py +137 -0
- sqlspec/extensions/litestar/migrations/__init__.py +3 -0
- sqlspec/extensions/litestar/plugin.py +671 -0
- sqlspec/extensions/litestar/providers.py +526 -0
- sqlspec/extensions/litestar/store.py +296 -0
- sqlspec/extensions/otel/__init__.py +58 -0
- sqlspec/extensions/prometheus/__init__.py +113 -0
- sqlspec/extensions/starlette/__init__.py +19 -0
- sqlspec/extensions/starlette/_state.py +30 -0
- sqlspec/extensions/starlette/_utils.py +96 -0
- sqlspec/extensions/starlette/extension.py +346 -0
- sqlspec/extensions/starlette/middleware.py +235 -0
- sqlspec/loader.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/loader.py +702 -0
- sqlspec/migrations/__init__.py +36 -0
- sqlspec/migrations/base.py +731 -0
- sqlspec/migrations/commands.py +1232 -0
- sqlspec/migrations/context.py +157 -0
- sqlspec/migrations/fix.py +204 -0
- sqlspec/migrations/loaders.py +443 -0
- sqlspec/migrations/runner.py +1172 -0
- sqlspec/migrations/templates.py +234 -0
- sqlspec/migrations/tracker.py +611 -0
- sqlspec/migrations/utils.py +256 -0
- sqlspec/migrations/validation.py +207 -0
- sqlspec/migrations/version.py +446 -0
- sqlspec/observability/__init__.py +55 -0
- sqlspec/observability/_common.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/observability/_common.py +77 -0
- sqlspec/observability/_config.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/observability/_config.py +348 -0
- sqlspec/observability/_diagnostics.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/observability/_diagnostics.py +74 -0
- sqlspec/observability/_dispatcher.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/observability/_dispatcher.py +152 -0
- sqlspec/observability/_formatters/__init__.py +13 -0
- sqlspec/observability/_formatters/_aws.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/observability/_formatters/_aws.py +102 -0
- sqlspec/observability/_formatters/_azure.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/observability/_formatters/_azure.py +96 -0
- sqlspec/observability/_formatters/_base.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/observability/_formatters/_base.py +57 -0
- sqlspec/observability/_formatters/_gcp.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/observability/_formatters/_gcp.py +131 -0
- sqlspec/observability/_formatting.py +58 -0
- sqlspec/observability/_observer.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/observability/_observer.py +357 -0
- sqlspec/observability/_runtime.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/observability/_runtime.py +420 -0
- sqlspec/observability/_sampling.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/observability/_sampling.py +188 -0
- sqlspec/observability/_spans.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/observability/_spans.py +161 -0
- sqlspec/protocols.py +916 -0
- sqlspec/py.typed +0 -0
- sqlspec/storage/__init__.py +48 -0
- sqlspec/storage/_utils.py +104 -0
- sqlspec/storage/backends/__init__.py +1 -0
- sqlspec/storage/backends/base.py +253 -0
- sqlspec/storage/backends/fsspec.py +529 -0
- sqlspec/storage/backends/local.py +441 -0
- sqlspec/storage/backends/obstore.py +916 -0
- sqlspec/storage/errors.py +104 -0
- sqlspec/storage/pipeline.py +582 -0
- sqlspec/storage/registry.py +301 -0
- sqlspec/typing.py +395 -0
- sqlspec/utils/__init__.py +7 -0
- sqlspec/utils/arrow_helpers.py +318 -0
- sqlspec/utils/config_tools.py +332 -0
- sqlspec/utils/correlation.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/utils/correlation.py +134 -0
- sqlspec/utils/deprecation.py +190 -0
- sqlspec/utils/fixtures.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/utils/fixtures.py +258 -0
- sqlspec/utils/logging.py +222 -0
- sqlspec/utils/module_loader.py +306 -0
- sqlspec/utils/portal.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/utils/portal.py +375 -0
- sqlspec/utils/schema.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/utils/schema.py +485 -0
- sqlspec/utils/serializers.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/utils/serializers.py +408 -0
- sqlspec/utils/singleton.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/utils/singleton.py +41 -0
- sqlspec/utils/sync_tools.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/utils/sync_tools.py +311 -0
- sqlspec/utils/text.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/utils/text.py +108 -0
- sqlspec/utils/type_converters.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/utils/type_converters.py +128 -0
- sqlspec/utils/type_guards.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/utils/type_guards.py +1360 -0
- sqlspec/utils/uuids.cpython-310-aarch64-linux-gnu.so +0 -0
- sqlspec/utils/uuids.py +225 -0
- sqlspec-0.36.0.dist-info/METADATA +205 -0
- sqlspec-0.36.0.dist-info/RECORD +531 -0
- sqlspec-0.36.0.dist-info/WHEEL +7 -0
- sqlspec-0.36.0.dist-info/entry_points.txt +2 -0
- sqlspec-0.36.0.dist-info/licenses/LICENSE +21 -0
sqlspec/py.typed
ADDED
|
File without changes
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"""Storage abstraction layer for SQLSpec.
|
|
2
|
+
|
|
3
|
+
Provides a storage system with:
|
|
4
|
+
- Multiple backend support (local, fsspec, obstore)
|
|
5
|
+
- Configuration-based registration
|
|
6
|
+
- URI scheme-based backend resolution
|
|
7
|
+
- Named storage configurations
|
|
8
|
+
- Capability-based backend selection
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from sqlspec.storage._utils import resolve_storage_path
|
|
12
|
+
from sqlspec.storage.pipeline import (
|
|
13
|
+
AsyncStoragePipeline,
|
|
14
|
+
PartitionStrategyConfig,
|
|
15
|
+
StagedArtifact,
|
|
16
|
+
StorageBridgeJob,
|
|
17
|
+
StorageCapabilities,
|
|
18
|
+
StorageDestination,
|
|
19
|
+
StorageFormat,
|
|
20
|
+
StorageLoadRequest,
|
|
21
|
+
StorageTelemetry,
|
|
22
|
+
SyncStoragePipeline,
|
|
23
|
+
create_storage_bridge_job,
|
|
24
|
+
get_storage_bridge_diagnostics,
|
|
25
|
+
get_storage_bridge_metrics,
|
|
26
|
+
reset_storage_bridge_metrics,
|
|
27
|
+
)
|
|
28
|
+
from sqlspec.storage.registry import StorageRegistry, storage_registry
|
|
29
|
+
|
|
30
|
+
__all__ = (
|
|
31
|
+
"AsyncStoragePipeline",
|
|
32
|
+
"PartitionStrategyConfig",
|
|
33
|
+
"StagedArtifact",
|
|
34
|
+
"StorageBridgeJob",
|
|
35
|
+
"StorageCapabilities",
|
|
36
|
+
"StorageDestination",
|
|
37
|
+
"StorageFormat",
|
|
38
|
+
"StorageLoadRequest",
|
|
39
|
+
"StorageRegistry",
|
|
40
|
+
"StorageTelemetry",
|
|
41
|
+
"SyncStoragePipeline",
|
|
42
|
+
"create_storage_bridge_job",
|
|
43
|
+
"get_storage_bridge_diagnostics",
|
|
44
|
+
"get_storage_bridge_metrics",
|
|
45
|
+
"reset_storage_bridge_metrics",
|
|
46
|
+
"resolve_storage_path",
|
|
47
|
+
"storage_registry",
|
|
48
|
+
)
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"""Shared utilities for storage backends."""
|
|
2
|
+
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
from typing import Any, Final
|
|
5
|
+
|
|
6
|
+
from sqlspec.utils.module_loader import ensure_pyarrow
|
|
7
|
+
|
|
8
|
+
FILE_PROTOCOL: Final[str] = "file"
|
|
9
|
+
FILE_SCHEME_PREFIX: Final[str] = "file://"
|
|
10
|
+
|
|
11
|
+
__all__ = ("FILE_PROTOCOL", "FILE_SCHEME_PREFIX", "import_pyarrow", "import_pyarrow_parquet", "resolve_storage_path")
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def import_pyarrow() -> "Any":
|
|
15
|
+
"""Import PyArrow with optional dependency guard.
|
|
16
|
+
|
|
17
|
+
Returns:
|
|
18
|
+
PyArrow module.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
ensure_pyarrow()
|
|
22
|
+
import pyarrow as pa
|
|
23
|
+
|
|
24
|
+
return pa
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def import_pyarrow_parquet() -> "Any":
|
|
28
|
+
"""Import PyArrow parquet module with optional dependency guard.
|
|
29
|
+
|
|
30
|
+
Returns:
|
|
31
|
+
PyArrow parquet module.
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
ensure_pyarrow()
|
|
35
|
+
import pyarrow.parquet as pq
|
|
36
|
+
|
|
37
|
+
return pq
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def resolve_storage_path(
|
|
41
|
+
path: "str | Path", base_path: str = "", protocol: str = FILE_PROTOCOL, strip_file_scheme: bool = True
|
|
42
|
+
) -> str:
|
|
43
|
+
"""Resolve path relative to base_path with protocol-specific handling.
|
|
44
|
+
|
|
45
|
+
Args:
|
|
46
|
+
path: Path to resolve (may include file:// scheme).
|
|
47
|
+
base_path: Base path to prepend if path is relative.
|
|
48
|
+
protocol: Storage protocol (file, s3, gs, etc.).
|
|
49
|
+
strip_file_scheme: Whether to strip file:// prefix.
|
|
50
|
+
|
|
51
|
+
Returns:
|
|
52
|
+
Resolved path string suitable for the storage backend.
|
|
53
|
+
|
|
54
|
+
Examples:
|
|
55
|
+
>>> resolve_storage_path("/data/file.txt", protocol="file")
|
|
56
|
+
'data/file.txt'
|
|
57
|
+
|
|
58
|
+
>>> resolve_storage_path(
|
|
59
|
+
... "file.txt", base_path="/base", protocol="file"
|
|
60
|
+
... )
|
|
61
|
+
'base/file.txt'
|
|
62
|
+
|
|
63
|
+
>>> resolve_storage_path(
|
|
64
|
+
... "file:///data/file.txt", strip_file_scheme=True
|
|
65
|
+
... )
|
|
66
|
+
'data/file.txt'
|
|
67
|
+
|
|
68
|
+
>>> resolve_storage_path(
|
|
69
|
+
... "/data/subdir/file.txt",
|
|
70
|
+
... base_path="/data",
|
|
71
|
+
... protocol="file",
|
|
72
|
+
... )
|
|
73
|
+
'subdir/file.txt'
|
|
74
|
+
"""
|
|
75
|
+
|
|
76
|
+
path_str = str(path)
|
|
77
|
+
|
|
78
|
+
if strip_file_scheme and path_str.startswith(FILE_SCHEME_PREFIX):
|
|
79
|
+
path_str = path_str.removeprefix(FILE_SCHEME_PREFIX)
|
|
80
|
+
|
|
81
|
+
if protocol == FILE_PROTOCOL:
|
|
82
|
+
path_obj = Path(path_str)
|
|
83
|
+
|
|
84
|
+
if path_obj.is_absolute():
|
|
85
|
+
if base_path:
|
|
86
|
+
base_obj = Path(base_path)
|
|
87
|
+
try:
|
|
88
|
+
relative = path_obj.relative_to(base_obj)
|
|
89
|
+
return f"{base_path.rstrip('/')}/{relative}"
|
|
90
|
+
except ValueError:
|
|
91
|
+
return path_str.lstrip("/")
|
|
92
|
+
return path_str.lstrip("/")
|
|
93
|
+
|
|
94
|
+
if base_path:
|
|
95
|
+
return f"{base_path.rstrip('/')}/{path_str}"
|
|
96
|
+
|
|
97
|
+
return path_str
|
|
98
|
+
|
|
99
|
+
if not base_path:
|
|
100
|
+
return path_str
|
|
101
|
+
|
|
102
|
+
clean_base = base_path.rstrip("/")
|
|
103
|
+
clean_path = path_str.lstrip("/")
|
|
104
|
+
return f"{clean_base}/{clean_path}"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Storage backends."""
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
"""Base class for storage backends."""
|
|
2
|
+
|
|
3
|
+
from abc import ABC, abstractmethod
|
|
4
|
+
from collections.abc import AsyncIterator, Iterator
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
from mypy_extensions import mypyc_attr
|
|
8
|
+
|
|
9
|
+
from sqlspec.typing import ArrowRecordBatch, ArrowTable
|
|
10
|
+
|
|
11
|
+
__all__ = ("AsyncArrowBatchIterator", "AsyncBytesIterator", "ObjectStoreBase")
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class AsyncArrowBatchIterator:
|
|
15
|
+
"""Async iterator wrapper for sync Arrow batch iterators.
|
|
16
|
+
|
|
17
|
+
This class implements the async iterator protocol without using async generators,
|
|
18
|
+
allowing it to be compiled by mypyc (which doesn't support async generators).
|
|
19
|
+
|
|
20
|
+
The class wraps a synchronous iterator and exposes it as an async iterator,
|
|
21
|
+
enabling usage with `async for` syntax.
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
__slots__ = ("_sync_iter",)
|
|
25
|
+
|
|
26
|
+
def __init__(self, sync_iterator: "Iterator[ArrowRecordBatch]") -> None:
|
|
27
|
+
"""Initialize the async iterator wrapper.
|
|
28
|
+
|
|
29
|
+
Args:
|
|
30
|
+
sync_iterator: The synchronous iterator to wrap.
|
|
31
|
+
"""
|
|
32
|
+
self._sync_iter = sync_iterator
|
|
33
|
+
|
|
34
|
+
def __aiter__(self) -> "AsyncArrowBatchIterator":
|
|
35
|
+
"""Return self as the async iterator."""
|
|
36
|
+
return self
|
|
37
|
+
|
|
38
|
+
async def __anext__(self) -> "ArrowRecordBatch":
|
|
39
|
+
"""Get the next item from the iterator asynchronously.
|
|
40
|
+
|
|
41
|
+
Returns:
|
|
42
|
+
The next Arrow record batch.
|
|
43
|
+
|
|
44
|
+
Raises:
|
|
45
|
+
StopAsyncIteration: When the iterator is exhausted.
|
|
46
|
+
"""
|
|
47
|
+
try:
|
|
48
|
+
return next(self._sync_iter)
|
|
49
|
+
except StopIteration:
|
|
50
|
+
raise StopAsyncIteration from None
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
class AsyncBytesIterator:
|
|
54
|
+
"""Async iterator wrapper for sync bytes iterators.
|
|
55
|
+
|
|
56
|
+
This class implements the async iterator protocol without using async generators,
|
|
57
|
+
allowing it to be compiled by mypyc (which doesn't support async generators).
|
|
58
|
+
|
|
59
|
+
The class wraps a synchronous iterator and exposes it as an async iterator,
|
|
60
|
+
enabling usage with `async for` syntax.
|
|
61
|
+
"""
|
|
62
|
+
|
|
63
|
+
__slots__ = ("_sync_iter",)
|
|
64
|
+
|
|
65
|
+
def __init__(self, sync_iterator: "Iterator[bytes]") -> None:
|
|
66
|
+
"""Initialize the async iterator wrapper.
|
|
67
|
+
|
|
68
|
+
Args:
|
|
69
|
+
sync_iterator: The synchronous iterator to wrap.
|
|
70
|
+
"""
|
|
71
|
+
self._sync_iter = sync_iterator
|
|
72
|
+
|
|
73
|
+
def __aiter__(self) -> "AsyncBytesIterator":
|
|
74
|
+
"""Return self as the async iterator."""
|
|
75
|
+
return self
|
|
76
|
+
|
|
77
|
+
async def __anext__(self) -> bytes:
|
|
78
|
+
"""Get the next item from the iterator asynchronously.
|
|
79
|
+
|
|
80
|
+
Returns:
|
|
81
|
+
The next chunk of bytes.
|
|
82
|
+
|
|
83
|
+
Raises:
|
|
84
|
+
StopAsyncIteration: When the iterator is exhausted.
|
|
85
|
+
"""
|
|
86
|
+
try:
|
|
87
|
+
return next(self._sync_iter)
|
|
88
|
+
except StopIteration:
|
|
89
|
+
raise StopAsyncIteration from None
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
@mypyc_attr(allow_interpreted_subclasses=True)
|
|
93
|
+
class ObjectStoreBase(ABC):
|
|
94
|
+
"""Base class for storage backends."""
|
|
95
|
+
|
|
96
|
+
__slots__ = ()
|
|
97
|
+
|
|
98
|
+
@abstractmethod
|
|
99
|
+
def read_bytes(self, path: str, **kwargs: Any) -> bytes:
|
|
100
|
+
"""Read bytes from storage."""
|
|
101
|
+
raise NotImplementedError
|
|
102
|
+
|
|
103
|
+
@abstractmethod
|
|
104
|
+
def write_bytes(self, path: str, data: bytes, **kwargs: Any) -> None:
|
|
105
|
+
"""Write bytes to storage."""
|
|
106
|
+
raise NotImplementedError
|
|
107
|
+
|
|
108
|
+
@abstractmethod
|
|
109
|
+
def stream_read(self, path: str, chunk_size: "int | None" = None, **kwargs: Any) -> Iterator[bytes]:
|
|
110
|
+
"""Stream bytes from storage."""
|
|
111
|
+
raise NotImplementedError
|
|
112
|
+
|
|
113
|
+
@abstractmethod
|
|
114
|
+
def read_text(self, path: str, encoding: str = "utf-8", **kwargs: Any) -> str:
|
|
115
|
+
"""Read text from storage."""
|
|
116
|
+
raise NotImplementedError
|
|
117
|
+
|
|
118
|
+
@abstractmethod
|
|
119
|
+
def write_text(self, path: str, data: str, encoding: str = "utf-8", **kwargs: Any) -> None:
|
|
120
|
+
"""Write text to storage."""
|
|
121
|
+
raise NotImplementedError
|
|
122
|
+
|
|
123
|
+
@abstractmethod
|
|
124
|
+
def list_objects(self, prefix: str = "", recursive: bool = True, **kwargs: Any) -> "list[str]":
|
|
125
|
+
"""List objects in storage."""
|
|
126
|
+
raise NotImplementedError
|
|
127
|
+
|
|
128
|
+
@abstractmethod
|
|
129
|
+
def exists(self, path: str, **kwargs: Any) -> bool:
|
|
130
|
+
"""Check if object exists in storage."""
|
|
131
|
+
raise NotImplementedError
|
|
132
|
+
|
|
133
|
+
@abstractmethod
|
|
134
|
+
def delete(self, path: str, **kwargs: Any) -> None:
|
|
135
|
+
"""Delete object from storage."""
|
|
136
|
+
raise NotImplementedError
|
|
137
|
+
|
|
138
|
+
@abstractmethod
|
|
139
|
+
def copy(self, source: str, destination: str, **kwargs: Any) -> None:
|
|
140
|
+
"""Copy object within storage."""
|
|
141
|
+
raise NotImplementedError
|
|
142
|
+
|
|
143
|
+
@abstractmethod
|
|
144
|
+
def move(self, source: str, destination: str, **kwargs: Any) -> None:
|
|
145
|
+
"""Move object within storage."""
|
|
146
|
+
raise NotImplementedError
|
|
147
|
+
|
|
148
|
+
@abstractmethod
|
|
149
|
+
def glob(self, pattern: str, **kwargs: Any) -> "list[str]":
|
|
150
|
+
"""Find objects matching pattern."""
|
|
151
|
+
raise NotImplementedError
|
|
152
|
+
|
|
153
|
+
@abstractmethod
|
|
154
|
+
def get_metadata(self, path: str, **kwargs: Any) -> "dict[str, object]":
|
|
155
|
+
"""Get object metadata from storage."""
|
|
156
|
+
raise NotImplementedError
|
|
157
|
+
|
|
158
|
+
@abstractmethod
|
|
159
|
+
def is_object(self, path: str) -> bool:
|
|
160
|
+
"""Check if path points to an object."""
|
|
161
|
+
raise NotImplementedError
|
|
162
|
+
|
|
163
|
+
@abstractmethod
|
|
164
|
+
def is_path(self, path: str) -> bool:
|
|
165
|
+
"""Check if path points to a directory."""
|
|
166
|
+
raise NotImplementedError
|
|
167
|
+
|
|
168
|
+
@abstractmethod
|
|
169
|
+
def read_arrow(self, path: str, **kwargs: Any) -> ArrowTable:
|
|
170
|
+
"""Read Arrow table from storage."""
|
|
171
|
+
raise NotImplementedError
|
|
172
|
+
|
|
173
|
+
@abstractmethod
|
|
174
|
+
def write_arrow(self, path: str, table: ArrowTable, **kwargs: Any) -> None:
|
|
175
|
+
"""Write Arrow table to storage."""
|
|
176
|
+
raise NotImplementedError
|
|
177
|
+
|
|
178
|
+
@abstractmethod
|
|
179
|
+
def stream_arrow(self, pattern: str, **kwargs: Any) -> Iterator[ArrowRecordBatch]:
|
|
180
|
+
"""Stream Arrow record batches from storage."""
|
|
181
|
+
raise NotImplementedError
|
|
182
|
+
|
|
183
|
+
@abstractmethod
|
|
184
|
+
async def read_bytes_async(self, path: str, **kwargs: Any) -> bytes:
|
|
185
|
+
"""Read bytes from storage asynchronously."""
|
|
186
|
+
raise NotImplementedError
|
|
187
|
+
|
|
188
|
+
@abstractmethod
|
|
189
|
+
async def write_bytes_async(self, path: str, data: bytes, **kwargs: Any) -> None:
|
|
190
|
+
"""Write bytes to storage asynchronously."""
|
|
191
|
+
raise NotImplementedError
|
|
192
|
+
|
|
193
|
+
@abstractmethod
|
|
194
|
+
async def read_text_async(self, path: str, encoding: str = "utf-8", **kwargs: Any) -> str:
|
|
195
|
+
"""Read text from storage asynchronously."""
|
|
196
|
+
raise NotImplementedError
|
|
197
|
+
|
|
198
|
+
@abstractmethod
|
|
199
|
+
async def write_text_async(self, path: str, data: str, encoding: str = "utf-8", **kwargs: Any) -> None:
|
|
200
|
+
"""Write text to storage asynchronously."""
|
|
201
|
+
raise NotImplementedError
|
|
202
|
+
|
|
203
|
+
@abstractmethod
|
|
204
|
+
async def stream_read_async(
|
|
205
|
+
self, path: str, chunk_size: "int | None" = None, **kwargs: Any
|
|
206
|
+
) -> AsyncIterator[bytes]:
|
|
207
|
+
"""Stream bytes from storage asynchronously."""
|
|
208
|
+
raise NotImplementedError
|
|
209
|
+
|
|
210
|
+
@abstractmethod
|
|
211
|
+
def list_objects_async(self, prefix: str = "", recursive: bool = True, **kwargs: Any) -> "list[str]":
|
|
212
|
+
"""List objects in storage asynchronously."""
|
|
213
|
+
raise NotImplementedError
|
|
214
|
+
|
|
215
|
+
@abstractmethod
|
|
216
|
+
async def exists_async(self, path: str, **kwargs: Any) -> bool:
|
|
217
|
+
"""Check if object exists in storage asynchronously."""
|
|
218
|
+
raise NotImplementedError
|
|
219
|
+
|
|
220
|
+
@abstractmethod
|
|
221
|
+
async def delete_async(self, path: str, **kwargs: Any) -> None:
|
|
222
|
+
"""Delete object from storage asynchronously."""
|
|
223
|
+
raise NotImplementedError
|
|
224
|
+
|
|
225
|
+
@abstractmethod
|
|
226
|
+
async def copy_async(self, source: str, destination: str, **kwargs: Any) -> None:
|
|
227
|
+
"""Copy object within storage asynchronously."""
|
|
228
|
+
raise NotImplementedError
|
|
229
|
+
|
|
230
|
+
@abstractmethod
|
|
231
|
+
async def move_async(self, source: str, destination: str, **kwargs: Any) -> None:
|
|
232
|
+
"""Move object within storage asynchronously."""
|
|
233
|
+
raise NotImplementedError
|
|
234
|
+
|
|
235
|
+
@abstractmethod
|
|
236
|
+
def get_metadata_async(self, path: str, **kwargs: Any) -> "dict[str, object]":
|
|
237
|
+
"""Get object metadata from storage asynchronously."""
|
|
238
|
+
raise NotImplementedError
|
|
239
|
+
|
|
240
|
+
@abstractmethod
|
|
241
|
+
async def read_arrow_async(self, path: str, **kwargs: Any) -> ArrowTable:
|
|
242
|
+
"""Read Arrow table from storage asynchronously."""
|
|
243
|
+
raise NotImplementedError
|
|
244
|
+
|
|
245
|
+
@abstractmethod
|
|
246
|
+
async def write_arrow_async(self, path: str, table: ArrowTable, **kwargs: Any) -> None:
|
|
247
|
+
"""Write Arrow table to storage asynchronously."""
|
|
248
|
+
raise NotImplementedError
|
|
249
|
+
|
|
250
|
+
@abstractmethod
|
|
251
|
+
def stream_arrow_async(self, pattern: str, **kwargs: Any) -> AsyncIterator[ArrowRecordBatch]:
|
|
252
|
+
"""Stream Arrow record batches from storage asynchronously."""
|
|
253
|
+
raise NotImplementedError
|