sqlspec 0.13.1__py3-none-any.whl → 0.16.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of sqlspec might be problematic. Click here for more details.
- sqlspec/__init__.py +71 -8
- sqlspec/__main__.py +12 -0
- sqlspec/__metadata__.py +1 -3
- sqlspec/_serialization.py +1 -2
- sqlspec/_sql.py +930 -136
- sqlspec/_typing.py +278 -142
- sqlspec/adapters/adbc/__init__.py +4 -3
- sqlspec/adapters/adbc/_types.py +12 -0
- sqlspec/adapters/adbc/config.py +116 -285
- sqlspec/adapters/adbc/driver.py +462 -340
- sqlspec/adapters/aiosqlite/__init__.py +18 -3
- sqlspec/adapters/aiosqlite/_types.py +13 -0
- sqlspec/adapters/aiosqlite/config.py +202 -150
- sqlspec/adapters/aiosqlite/driver.py +226 -247
- sqlspec/adapters/asyncmy/__init__.py +18 -3
- sqlspec/adapters/asyncmy/_types.py +12 -0
- sqlspec/adapters/asyncmy/config.py +80 -199
- sqlspec/adapters/asyncmy/driver.py +257 -215
- sqlspec/adapters/asyncpg/__init__.py +19 -4
- sqlspec/adapters/asyncpg/_types.py +17 -0
- sqlspec/adapters/asyncpg/config.py +81 -214
- sqlspec/adapters/asyncpg/driver.py +284 -359
- sqlspec/adapters/bigquery/__init__.py +17 -3
- sqlspec/adapters/bigquery/_types.py +12 -0
- sqlspec/adapters/bigquery/config.py +191 -299
- sqlspec/adapters/bigquery/driver.py +474 -634
- sqlspec/adapters/duckdb/__init__.py +14 -3
- sqlspec/adapters/duckdb/_types.py +12 -0
- sqlspec/adapters/duckdb/config.py +414 -397
- sqlspec/adapters/duckdb/driver.py +342 -393
- sqlspec/adapters/oracledb/__init__.py +19 -5
- sqlspec/adapters/oracledb/_types.py +14 -0
- sqlspec/adapters/oracledb/config.py +123 -458
- sqlspec/adapters/oracledb/driver.py +505 -531
- sqlspec/adapters/psqlpy/__init__.py +13 -3
- sqlspec/adapters/psqlpy/_types.py +11 -0
- sqlspec/adapters/psqlpy/config.py +93 -307
- sqlspec/adapters/psqlpy/driver.py +504 -213
- sqlspec/adapters/psycopg/__init__.py +19 -5
- sqlspec/adapters/psycopg/_types.py +17 -0
- sqlspec/adapters/psycopg/config.py +143 -472
- sqlspec/adapters/psycopg/driver.py +704 -825
- sqlspec/adapters/sqlite/__init__.py +14 -3
- sqlspec/adapters/sqlite/_types.py +11 -0
- sqlspec/adapters/sqlite/config.py +208 -142
- sqlspec/adapters/sqlite/driver.py +263 -278
- sqlspec/base.py +105 -9
- sqlspec/{statement/builder → builder}/__init__.py +12 -14
- sqlspec/{statement/builder/base.py → builder/_base.py} +184 -86
- sqlspec/{statement/builder/column.py → builder/_column.py} +97 -60
- sqlspec/{statement/builder/ddl.py → builder/_ddl.py} +61 -131
- sqlspec/{statement/builder → builder}/_ddl_utils.py +4 -10
- sqlspec/{statement/builder/delete.py → builder/_delete.py} +10 -30
- sqlspec/builder/_insert.py +421 -0
- sqlspec/builder/_merge.py +71 -0
- sqlspec/{statement/builder → builder}/_parsing_utils.py +49 -26
- sqlspec/builder/_select.py +170 -0
- sqlspec/{statement/builder/update.py → builder/_update.py} +16 -20
- sqlspec/builder/mixins/__init__.py +55 -0
- sqlspec/builder/mixins/_cte_and_set_ops.py +222 -0
- sqlspec/{statement/builder/mixins/_delete_from.py → builder/mixins/_delete_operations.py} +8 -1
- sqlspec/builder/mixins/_insert_operations.py +244 -0
- sqlspec/{statement/builder/mixins/_join.py → builder/mixins/_join_operations.py} +45 -13
- sqlspec/{statement/builder/mixins/_merge_clauses.py → builder/mixins/_merge_operations.py} +188 -30
- sqlspec/builder/mixins/_order_limit_operations.py +135 -0
- sqlspec/builder/mixins/_pivot_operations.py +153 -0
- sqlspec/builder/mixins/_select_operations.py +604 -0
- sqlspec/builder/mixins/_update_operations.py +202 -0
- sqlspec/builder/mixins/_where_clause.py +644 -0
- sqlspec/cli.py +247 -0
- sqlspec/config.py +183 -138
- sqlspec/core/__init__.py +63 -0
- sqlspec/core/cache.py +871 -0
- sqlspec/core/compiler.py +417 -0
- sqlspec/core/filters.py +830 -0
- sqlspec/core/hashing.py +310 -0
- sqlspec/core/parameters.py +1237 -0
- sqlspec/core/result.py +677 -0
- sqlspec/{statement → core}/splitter.py +321 -191
- sqlspec/core/statement.py +676 -0
- sqlspec/driver/__init__.py +7 -10
- sqlspec/driver/_async.py +422 -163
- sqlspec/driver/_common.py +545 -287
- sqlspec/driver/_sync.py +426 -160
- sqlspec/driver/mixins/__init__.py +2 -13
- sqlspec/driver/mixins/_result_tools.py +193 -0
- sqlspec/driver/mixins/_sql_translator.py +65 -14
- sqlspec/exceptions.py +5 -252
- sqlspec/extensions/aiosql/adapter.py +93 -96
- sqlspec/extensions/litestar/__init__.py +2 -1
- sqlspec/extensions/litestar/cli.py +48 -0
- sqlspec/extensions/litestar/config.py +0 -1
- sqlspec/extensions/litestar/handlers.py +15 -26
- sqlspec/extensions/litestar/plugin.py +21 -16
- sqlspec/extensions/litestar/providers.py +17 -52
- sqlspec/loader.py +423 -104
- sqlspec/migrations/__init__.py +35 -0
- sqlspec/migrations/base.py +414 -0
- sqlspec/migrations/commands.py +443 -0
- sqlspec/migrations/loaders.py +402 -0
- sqlspec/migrations/runner.py +213 -0
- sqlspec/migrations/tracker.py +140 -0
- sqlspec/migrations/utils.py +129 -0
- sqlspec/protocols.py +51 -186
- sqlspec/storage/__init__.py +1 -1
- sqlspec/storage/backends/base.py +37 -40
- sqlspec/storage/backends/fsspec.py +136 -112
- sqlspec/storage/backends/obstore.py +138 -160
- sqlspec/storage/capabilities.py +5 -4
- sqlspec/storage/registry.py +57 -106
- sqlspec/typing.py +136 -115
- sqlspec/utils/__init__.py +2 -2
- sqlspec/utils/correlation.py +0 -3
- sqlspec/utils/deprecation.py +6 -6
- sqlspec/utils/fixtures.py +6 -6
- sqlspec/utils/logging.py +0 -2
- sqlspec/utils/module_loader.py +7 -12
- sqlspec/utils/singleton.py +0 -1
- sqlspec/utils/sync_tools.py +17 -38
- sqlspec/utils/text.py +12 -51
- sqlspec/utils/type_guards.py +482 -235
- {sqlspec-0.13.1.dist-info → sqlspec-0.16.2.dist-info}/METADATA +7 -2
- sqlspec-0.16.2.dist-info/RECORD +134 -0
- sqlspec-0.16.2.dist-info/entry_points.txt +2 -0
- sqlspec/driver/connection.py +0 -207
- sqlspec/driver/mixins/_csv_writer.py +0 -91
- sqlspec/driver/mixins/_pipeline.py +0 -512
- sqlspec/driver/mixins/_result_utils.py +0 -140
- sqlspec/driver/mixins/_storage.py +0 -926
- sqlspec/driver/mixins/_type_coercion.py +0 -130
- sqlspec/driver/parameters.py +0 -138
- sqlspec/service/__init__.py +0 -4
- sqlspec/service/_util.py +0 -147
- sqlspec/service/base.py +0 -1131
- sqlspec/service/pagination.py +0 -26
- sqlspec/statement/__init__.py +0 -21
- sqlspec/statement/builder/insert.py +0 -288
- sqlspec/statement/builder/merge.py +0 -95
- sqlspec/statement/builder/mixins/__init__.py +0 -65
- sqlspec/statement/builder/mixins/_aggregate_functions.py +0 -250
- sqlspec/statement/builder/mixins/_case_builder.py +0 -91
- sqlspec/statement/builder/mixins/_common_table_expr.py +0 -90
- sqlspec/statement/builder/mixins/_from.py +0 -63
- sqlspec/statement/builder/mixins/_group_by.py +0 -118
- sqlspec/statement/builder/mixins/_having.py +0 -35
- sqlspec/statement/builder/mixins/_insert_from_select.py +0 -47
- sqlspec/statement/builder/mixins/_insert_into.py +0 -36
- sqlspec/statement/builder/mixins/_insert_values.py +0 -67
- sqlspec/statement/builder/mixins/_limit_offset.py +0 -53
- sqlspec/statement/builder/mixins/_order_by.py +0 -46
- sqlspec/statement/builder/mixins/_pivot.py +0 -79
- sqlspec/statement/builder/mixins/_returning.py +0 -37
- sqlspec/statement/builder/mixins/_select_columns.py +0 -61
- sqlspec/statement/builder/mixins/_set_ops.py +0 -122
- sqlspec/statement/builder/mixins/_unpivot.py +0 -77
- sqlspec/statement/builder/mixins/_update_from.py +0 -55
- sqlspec/statement/builder/mixins/_update_set.py +0 -94
- sqlspec/statement/builder/mixins/_update_table.py +0 -29
- sqlspec/statement/builder/mixins/_where.py +0 -401
- sqlspec/statement/builder/mixins/_window_functions.py +0 -86
- sqlspec/statement/builder/select.py +0 -221
- sqlspec/statement/filters.py +0 -596
- sqlspec/statement/parameter_manager.py +0 -220
- sqlspec/statement/parameters.py +0 -867
- sqlspec/statement/pipelines/__init__.py +0 -210
- sqlspec/statement/pipelines/analyzers/__init__.py +0 -9
- sqlspec/statement/pipelines/analyzers/_analyzer.py +0 -646
- sqlspec/statement/pipelines/context.py +0 -115
- sqlspec/statement/pipelines/transformers/__init__.py +0 -7
- sqlspec/statement/pipelines/transformers/_expression_simplifier.py +0 -88
- sqlspec/statement/pipelines/transformers/_literal_parameterizer.py +0 -1247
- sqlspec/statement/pipelines/transformers/_remove_comments_and_hints.py +0 -76
- sqlspec/statement/pipelines/validators/__init__.py +0 -23
- sqlspec/statement/pipelines/validators/_dml_safety.py +0 -290
- sqlspec/statement/pipelines/validators/_parameter_style.py +0 -370
- sqlspec/statement/pipelines/validators/_performance.py +0 -718
- sqlspec/statement/pipelines/validators/_security.py +0 -967
- sqlspec/statement/result.py +0 -435
- sqlspec/statement/sql.py +0 -1704
- sqlspec/statement/sql_compiler.py +0 -140
- sqlspec/utils/cached_property.py +0 -25
- sqlspec-0.13.1.dist-info/RECORD +0 -150
- {sqlspec-0.13.1.dist-info → sqlspec-0.16.2.dist-info}/WHEEL +0 -0
- {sqlspec-0.13.1.dist-info → sqlspec-0.16.2.dist-info}/licenses/LICENSE +0 -0
- {sqlspec-0.13.1.dist-info → sqlspec-0.16.2.dist-info}/licenses/NOTICE +0 -0
sqlspec/__init__.py
CHANGED
|
@@ -1,29 +1,92 @@
|
|
|
1
1
|
"""SQLSpec: Safe and elegant SQL query building for Python."""
|
|
2
2
|
|
|
3
|
-
from sqlspec import adapters, base, driver, exceptions, extensions, loader,
|
|
3
|
+
from sqlspec import adapters, base, builder, core, driver, exceptions, extensions, loader, migrations, typing, utils
|
|
4
4
|
from sqlspec.__metadata__ import __version__
|
|
5
|
-
from sqlspec._sql import SQLFactory
|
|
5
|
+
from sqlspec._sql import SQLFactory, sql
|
|
6
6
|
from sqlspec.base import SQLSpec
|
|
7
|
-
from sqlspec.
|
|
7
|
+
from sqlspec.builder import (
|
|
8
|
+
Column,
|
|
9
|
+
ColumnExpression,
|
|
10
|
+
CreateTable,
|
|
11
|
+
Delete,
|
|
12
|
+
DropTable,
|
|
13
|
+
FunctionColumn,
|
|
14
|
+
Insert,
|
|
15
|
+
Merge,
|
|
16
|
+
QueryBuilder,
|
|
17
|
+
Select,
|
|
18
|
+
Update,
|
|
19
|
+
)
|
|
20
|
+
from sqlspec.config import AsyncDatabaseConfig, SyncDatabaseConfig
|
|
21
|
+
from sqlspec.core import (
|
|
22
|
+
SQL,
|
|
23
|
+
ArrowResult,
|
|
24
|
+
CacheConfig,
|
|
25
|
+
CacheStats,
|
|
26
|
+
ParameterConverter,
|
|
27
|
+
ParameterProcessor,
|
|
28
|
+
ParameterStyle,
|
|
29
|
+
ParameterStyleConfig,
|
|
30
|
+
SQLResult,
|
|
31
|
+
Statement,
|
|
32
|
+
StatementConfig,
|
|
33
|
+
)
|
|
34
|
+
from sqlspec.core import filters as filters
|
|
35
|
+
from sqlspec.driver import AsyncDriverAdapterBase, ExecutionResult, SyncDriverAdapterBase
|
|
8
36
|
from sqlspec.loader import SQLFile, SQLFileLoader
|
|
9
|
-
|
|
10
|
-
sql = SQLFactory()
|
|
37
|
+
from sqlspec.typing import ConnectionT, DictRow, ModelDTOT, ModelT, RowT, StatementParameters, SupportedSchemaModel
|
|
11
38
|
|
|
12
39
|
__all__ = (
|
|
40
|
+
"SQL",
|
|
41
|
+
"ArrowResult",
|
|
42
|
+
"AsyncDatabaseConfig",
|
|
43
|
+
"AsyncDriverAdapterBase",
|
|
44
|
+
"CacheConfig",
|
|
45
|
+
"CacheStats",
|
|
46
|
+
"Column",
|
|
47
|
+
"ColumnExpression",
|
|
48
|
+
"ConnectionT",
|
|
49
|
+
"CreateTable",
|
|
50
|
+
"Delete",
|
|
51
|
+
"DictRow",
|
|
52
|
+
"DropTable",
|
|
53
|
+
"ExecutionResult",
|
|
54
|
+
"FunctionColumn",
|
|
55
|
+
"Insert",
|
|
56
|
+
"Merge",
|
|
57
|
+
"ModelDTOT",
|
|
58
|
+
"ModelT",
|
|
59
|
+
"ParameterConverter",
|
|
60
|
+
"ParameterProcessor",
|
|
61
|
+
"ParameterStyle",
|
|
62
|
+
"ParameterStyleConfig",
|
|
63
|
+
"QueryBuilder",
|
|
64
|
+
"RowT",
|
|
65
|
+
"SQLFactory",
|
|
13
66
|
"SQLFile",
|
|
14
67
|
"SQLFileLoader",
|
|
15
|
-
"
|
|
16
|
-
"SQLFileParseError",
|
|
68
|
+
"SQLResult",
|
|
17
69
|
"SQLSpec",
|
|
70
|
+
"Select",
|
|
71
|
+
"Statement",
|
|
72
|
+
"StatementConfig",
|
|
73
|
+
"StatementParameters",
|
|
74
|
+
"SupportedSchemaModel",
|
|
75
|
+
"SyncDatabaseConfig",
|
|
76
|
+
"SyncDriverAdapterBase",
|
|
77
|
+
"Update",
|
|
18
78
|
"__version__",
|
|
19
79
|
"adapters",
|
|
20
80
|
"base",
|
|
81
|
+
"builder",
|
|
82
|
+
"core",
|
|
21
83
|
"driver",
|
|
22
84
|
"exceptions",
|
|
23
85
|
"extensions",
|
|
86
|
+
"filters",
|
|
24
87
|
"loader",
|
|
88
|
+
"migrations",
|
|
25
89
|
"sql",
|
|
26
|
-
"statement",
|
|
27
90
|
"typing",
|
|
28
91
|
"utils",
|
|
29
92
|
)
|
sqlspec/__main__.py
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from sqlspec.cli import add_migration_commands as build_cli_interface
|
|
2
|
+
|
|
3
|
+
__all__ = ("run_cli",)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def run_cli() -> None: # pragma: no cover
|
|
7
|
+
"""SQLSpec CLI."""
|
|
8
|
+
build_cli_interface()()
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
if __name__ == "__main__": # pragma: no cover
|
|
12
|
+
run_cli()
|
sqlspec/__metadata__.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""Metadata for the
|
|
1
|
+
"""Metadata for the project."""
|
|
2
2
|
|
|
3
3
|
from importlib.metadata import PackageNotFoundError, metadata, version
|
|
4
4
|
|
|
@@ -6,9 +6,7 @@ __all__ = ("__project__", "__version__")
|
|
|
6
6
|
|
|
7
7
|
try:
|
|
8
8
|
__version__ = version("sqlspec")
|
|
9
|
-
"""Version of the project."""
|
|
10
9
|
__project__ = metadata("sqlspec")["Name"]
|
|
11
|
-
"""Name of the project."""
|
|
12
10
|
except PackageNotFoundError: # pragma: no cover
|
|
13
11
|
__version__ = "0.0.1"
|
|
14
12
|
__project__ = "SQLSpec"
|
sqlspec/_serialization.py
CHANGED
|
@@ -15,10 +15,9 @@ def _type_to_string(value: Any) -> str: # pragma: no cover
|
|
|
15
15
|
if PYDANTIC_INSTALLED and isinstance(value, BaseModel):
|
|
16
16
|
return value.model_dump_json()
|
|
17
17
|
try:
|
|
18
|
-
|
|
18
|
+
return str(value)
|
|
19
19
|
except Exception as exc:
|
|
20
20
|
raise TypeError from exc
|
|
21
|
-
return val
|
|
22
21
|
|
|
23
22
|
|
|
24
23
|
try:
|