sqlspec 0.14.1__py3-none-any.whl → 0.15.0__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 +50 -25
- sqlspec/__main__.py +1 -1
- sqlspec/__metadata__.py +1 -3
- sqlspec/_serialization.py +1 -2
- sqlspec/_sql.py +256 -120
- sqlspec/_typing.py +278 -142
- sqlspec/adapters/adbc/__init__.py +4 -3
- sqlspec/adapters/adbc/_types.py +12 -0
- sqlspec/adapters/adbc/config.py +115 -260
- sqlspec/adapters/adbc/driver.py +462 -367
- sqlspec/adapters/aiosqlite/__init__.py +18 -3
- sqlspec/adapters/aiosqlite/_types.py +13 -0
- sqlspec/adapters/aiosqlite/config.py +199 -129
- sqlspec/adapters/aiosqlite/driver.py +230 -269
- sqlspec/adapters/asyncmy/__init__.py +18 -3
- sqlspec/adapters/asyncmy/_types.py +12 -0
- sqlspec/adapters/asyncmy/config.py +80 -168
- sqlspec/adapters/asyncmy/driver.py +260 -225
- sqlspec/adapters/asyncpg/__init__.py +19 -4
- sqlspec/adapters/asyncpg/_types.py +17 -0
- sqlspec/adapters/asyncpg/config.py +82 -181
- sqlspec/adapters/asyncpg/driver.py +285 -383
- sqlspec/adapters/bigquery/__init__.py +17 -3
- sqlspec/adapters/bigquery/_types.py +12 -0
- sqlspec/adapters/bigquery/config.py +191 -258
- sqlspec/adapters/bigquery/driver.py +474 -646
- sqlspec/adapters/duckdb/__init__.py +14 -3
- sqlspec/adapters/duckdb/_types.py +12 -0
- sqlspec/adapters/duckdb/config.py +415 -351
- sqlspec/adapters/duckdb/driver.py +343 -413
- sqlspec/adapters/oracledb/__init__.py +19 -5
- sqlspec/adapters/oracledb/_types.py +14 -0
- sqlspec/adapters/oracledb/config.py +123 -379
- sqlspec/adapters/oracledb/driver.py +507 -560
- sqlspec/adapters/psqlpy/__init__.py +13 -3
- sqlspec/adapters/psqlpy/_types.py +11 -0
- sqlspec/adapters/psqlpy/config.py +93 -254
- sqlspec/adapters/psqlpy/driver.py +505 -234
- sqlspec/adapters/psycopg/__init__.py +19 -5
- sqlspec/adapters/psycopg/_types.py +17 -0
- sqlspec/adapters/psycopg/config.py +143 -403
- sqlspec/adapters/psycopg/driver.py +706 -872
- sqlspec/adapters/sqlite/__init__.py +14 -3
- sqlspec/adapters/sqlite/_types.py +11 -0
- sqlspec/adapters/sqlite/config.py +202 -118
- sqlspec/adapters/sqlite/driver.py +264 -303
- sqlspec/base.py +105 -9
- sqlspec/{statement/builder → builder}/__init__.py +12 -14
- sqlspec/{statement/builder → builder}/_base.py +120 -55
- sqlspec/{statement/builder → builder}/_column.py +17 -6
- sqlspec/{statement/builder → builder}/_ddl.py +46 -79
- sqlspec/{statement/builder → builder}/_ddl_utils.py +5 -10
- sqlspec/{statement/builder → builder}/_delete.py +6 -25
- sqlspec/{statement/builder → builder}/_insert.py +6 -64
- sqlspec/builder/_merge.py +56 -0
- sqlspec/{statement/builder → builder}/_parsing_utils.py +3 -10
- sqlspec/{statement/builder → builder}/_select.py +11 -56
- sqlspec/{statement/builder → builder}/_update.py +12 -18
- sqlspec/{statement/builder → builder}/mixins/__init__.py +10 -14
- sqlspec/{statement/builder → builder}/mixins/_cte_and_set_ops.py +48 -59
- sqlspec/{statement/builder → builder}/mixins/_insert_operations.py +22 -16
- sqlspec/{statement/builder → builder}/mixins/_join_operations.py +1 -3
- sqlspec/{statement/builder → builder}/mixins/_merge_operations.py +3 -5
- sqlspec/{statement/builder → builder}/mixins/_order_limit_operations.py +3 -3
- sqlspec/{statement/builder → builder}/mixins/_pivot_operations.py +4 -8
- sqlspec/{statement/builder → builder}/mixins/_select_operations.py +21 -36
- sqlspec/{statement/builder → builder}/mixins/_update_operations.py +3 -14
- sqlspec/{statement/builder → builder}/mixins/_where_clause.py +52 -79
- sqlspec/cli.py +4 -5
- sqlspec/config.py +180 -133
- sqlspec/core/__init__.py +63 -0
- sqlspec/core/cache.py +873 -0
- sqlspec/core/compiler.py +396 -0
- sqlspec/core/filters.py +828 -0
- sqlspec/core/hashing.py +310 -0
- sqlspec/core/parameters.py +1209 -0
- sqlspec/core/result.py +664 -0
- sqlspec/{statement → core}/splitter.py +321 -191
- sqlspec/core/statement.py +651 -0
- sqlspec/driver/__init__.py +7 -10
- sqlspec/driver/_async.py +387 -176
- sqlspec/driver/_common.py +527 -289
- sqlspec/driver/_sync.py +390 -172
- sqlspec/driver/mixins/__init__.py +2 -19
- sqlspec/driver/mixins/_result_tools.py +168 -0
- sqlspec/driver/mixins/_sql_translator.py +6 -3
- sqlspec/exceptions.py +5 -252
- sqlspec/extensions/aiosql/adapter.py +93 -96
- sqlspec/extensions/litestar/config.py +0 -1
- sqlspec/extensions/litestar/handlers.py +15 -26
- sqlspec/extensions/litestar/plugin.py +16 -14
- sqlspec/extensions/litestar/providers.py +17 -52
- sqlspec/loader.py +424 -105
- sqlspec/migrations/__init__.py +12 -0
- sqlspec/migrations/base.py +92 -68
- sqlspec/migrations/commands.py +24 -106
- sqlspec/migrations/loaders.py +402 -0
- sqlspec/migrations/runner.py +49 -51
- sqlspec/migrations/tracker.py +31 -44
- sqlspec/migrations/utils.py +64 -24
- sqlspec/protocols.py +7 -183
- 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 -3
- 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 +16 -37
- sqlspec/utils/text.py +12 -51
- sqlspec/utils/type_guards.py +443 -232
- {sqlspec-0.14.1.dist-info → sqlspec-0.15.0.dist-info}/METADATA +7 -2
- sqlspec-0.15.0.dist-info/RECORD +134 -0
- sqlspec/adapters/adbc/transformers.py +0 -108
- sqlspec/driver/connection.py +0 -207
- sqlspec/driver/mixins/_cache.py +0 -114
- sqlspec/driver/mixins/_csv_writer.py +0 -91
- sqlspec/driver/mixins/_pipeline.py +0 -508
- sqlspec/driver/mixins/_query_tools.py +0 -796
- sqlspec/driver/mixins/_result_utils.py +0 -138
- sqlspec/driver/mixins/_storage.py +0 -912
- sqlspec/driver/mixins/_type_coercion.py +0 -128
- sqlspec/driver/parameters.py +0 -138
- sqlspec/statement/__init__.py +0 -21
- sqlspec/statement/builder/_merge.py +0 -95
- sqlspec/statement/cache.py +0 -50
- sqlspec/statement/filters.py +0 -625
- sqlspec/statement/parameters.py +0 -956
- 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 -109
- 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 -714
- sqlspec/statement/pipelines/validators/_security.py +0 -967
- sqlspec/statement/result.py +0 -435
- sqlspec/statement/sql.py +0 -1774
- sqlspec/utils/cached_property.py +0 -25
- sqlspec/utils/statement_hashing.py +0 -203
- sqlspec-0.14.1.dist-info/RECORD +0 -145
- /sqlspec/{statement/builder → builder}/mixins/_delete_operations.py +0 -0
- {sqlspec-0.14.1.dist-info → sqlspec-0.15.0.dist-info}/WHEEL +0 -0
- {sqlspec-0.14.1.dist-info → sqlspec-0.15.0.dist-info}/entry_points.txt +0 -0
- {sqlspec-0.14.1.dist-info → sqlspec-0.15.0.dist-info}/licenses/LICENSE +0 -0
- {sqlspec-0.14.1.dist-info → sqlspec-0.15.0.dist-info}/licenses/NOTICE +0 -0
sqlspec/utils/cached_property.py
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"""A simple cached property decorator."""
|
|
2
|
-
|
|
3
|
-
from typing import Any, Callable, Generic, TypeVar
|
|
4
|
-
|
|
5
|
-
__all__ = ("CachedProperty",)
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
T = TypeVar("T")
|
|
9
|
-
Cls = TypeVar("Cls")
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
class CachedProperty(Generic[T]):
|
|
13
|
-
"""A property that is only computed once per instance and then replaces
|
|
14
|
-
itself with an ordinary attribute. Deleting the attribute resets the
|
|
15
|
-
property.
|
|
16
|
-
"""
|
|
17
|
-
|
|
18
|
-
def __init__(self, func: Callable[[Any], T]) -> None:
|
|
19
|
-
self.func = func
|
|
20
|
-
|
|
21
|
-
def __get__(self, obj: Any, cls: type[Any]) -> Any:
|
|
22
|
-
if obj is None:
|
|
23
|
-
return self
|
|
24
|
-
value = obj.__dict__[self.func.__name__] = self.func(obj)
|
|
25
|
-
return value
|
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
"""Statement hashing utilities for cache key generation.
|
|
2
|
-
|
|
3
|
-
This module provides centralized hashing logic for SQL statements,
|
|
4
|
-
including expressions, parameters, filters, and complete SQL objects.
|
|
5
|
-
"""
|
|
6
|
-
|
|
7
|
-
from typing import TYPE_CHECKING, Any, Optional
|
|
8
|
-
|
|
9
|
-
from sqlglot import exp
|
|
10
|
-
|
|
11
|
-
if TYPE_CHECKING:
|
|
12
|
-
from sqlspec.statement.filters import StatementFilter
|
|
13
|
-
from sqlspec.statement.sql import SQL
|
|
14
|
-
|
|
15
|
-
__all__ = ("hash_expression", "hash_parameters", "hash_sql_statement")
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
def hash_expression(expr: Optional[exp.Expression], _seen: Optional[set[int]] = None) -> int:
|
|
19
|
-
"""Generate deterministic hash from AST structure.
|
|
20
|
-
|
|
21
|
-
Args:
|
|
22
|
-
expr: SQLGlot Expression to hash
|
|
23
|
-
_seen: Set of seen object IDs to handle circular references
|
|
24
|
-
|
|
25
|
-
Returns:
|
|
26
|
-
Deterministic hash of the AST structure
|
|
27
|
-
"""
|
|
28
|
-
if expr is None:
|
|
29
|
-
return hash(None)
|
|
30
|
-
|
|
31
|
-
if _seen is None:
|
|
32
|
-
_seen = set()
|
|
33
|
-
|
|
34
|
-
expr_id = id(expr)
|
|
35
|
-
if expr_id in _seen:
|
|
36
|
-
return hash(expr_id)
|
|
37
|
-
|
|
38
|
-
_seen.add(expr_id)
|
|
39
|
-
|
|
40
|
-
# Build hash from type and args
|
|
41
|
-
components: list[Any] = [type(expr).__name__]
|
|
42
|
-
|
|
43
|
-
for key, value in sorted(expr.args.items()):
|
|
44
|
-
components.extend((key, _hash_value(value, _seen)))
|
|
45
|
-
|
|
46
|
-
return hash(tuple(components))
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
def _hash_value(value: Any, _seen: set[int]) -> int:
|
|
50
|
-
"""Hash different value types consistently.
|
|
51
|
-
|
|
52
|
-
Args:
|
|
53
|
-
value: Value to hash (can be Expression, list, dict, or primitive)
|
|
54
|
-
_seen: Set of seen object IDs to handle circular references
|
|
55
|
-
|
|
56
|
-
Returns:
|
|
57
|
-
Deterministic hash of the value
|
|
58
|
-
"""
|
|
59
|
-
if isinstance(value, exp.Expression):
|
|
60
|
-
return hash_expression(value, _seen)
|
|
61
|
-
if isinstance(value, list):
|
|
62
|
-
return hash(tuple(_hash_value(v, _seen) for v in value))
|
|
63
|
-
if isinstance(value, dict):
|
|
64
|
-
items = sorted((k, _hash_value(v, _seen)) for k, v in value.items())
|
|
65
|
-
return hash(tuple(items))
|
|
66
|
-
if isinstance(value, tuple):
|
|
67
|
-
return hash(tuple(_hash_value(v, _seen) for v in value))
|
|
68
|
-
# Primitives: str, int, bool, None, etc.
|
|
69
|
-
return hash(value)
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
def hash_parameters(
|
|
73
|
-
positional_params: Optional[list[Any]] = None,
|
|
74
|
-
named_params: Optional[dict[str, Any]] = None,
|
|
75
|
-
original_parameters: Optional[Any] = None,
|
|
76
|
-
) -> int:
|
|
77
|
-
"""Generate hash for SQL parameters.
|
|
78
|
-
|
|
79
|
-
Args:
|
|
80
|
-
positional_params: List of positional parameters
|
|
81
|
-
named_params: Dictionary of named parameters
|
|
82
|
-
original_parameters: Original parameters (for execute_many)
|
|
83
|
-
|
|
84
|
-
Returns:
|
|
85
|
-
Combined hash of all parameters
|
|
86
|
-
"""
|
|
87
|
-
param_hash = 0
|
|
88
|
-
|
|
89
|
-
# Hash positional parameters
|
|
90
|
-
if positional_params:
|
|
91
|
-
# Handle unhashable types like lists
|
|
92
|
-
hashable_params = []
|
|
93
|
-
for param in positional_params:
|
|
94
|
-
if isinstance(param, (list, dict)):
|
|
95
|
-
# Convert unhashable types to hashable representations
|
|
96
|
-
hashable_params.append(repr(param))
|
|
97
|
-
else:
|
|
98
|
-
hashable_params.append(param)
|
|
99
|
-
param_hash ^= hash(tuple(hashable_params))
|
|
100
|
-
|
|
101
|
-
# Hash named parameters
|
|
102
|
-
if named_params:
|
|
103
|
-
# Handle unhashable types in named params
|
|
104
|
-
hashable_items = []
|
|
105
|
-
for key, value in sorted(named_params.items()):
|
|
106
|
-
if isinstance(value, (list, dict)):
|
|
107
|
-
hashable_items.append((key, repr(value)))
|
|
108
|
-
else:
|
|
109
|
-
hashable_items.append((key, value))
|
|
110
|
-
param_hash ^= hash(tuple(hashable_items))
|
|
111
|
-
|
|
112
|
-
# Hash original parameters (important for execute_many)
|
|
113
|
-
if original_parameters is not None:
|
|
114
|
-
if isinstance(original_parameters, list):
|
|
115
|
-
# For execute_many, hash the count and first few items to avoid
|
|
116
|
-
# performance issues with large parameter sets
|
|
117
|
-
param_hash ^= hash(("original_count", len(original_parameters)))
|
|
118
|
-
if original_parameters:
|
|
119
|
-
# Hash first 3 items as representatives
|
|
120
|
-
sample_size = min(3, len(original_parameters))
|
|
121
|
-
sample_hash = hash(repr(original_parameters[:sample_size]))
|
|
122
|
-
param_hash ^= hash(("original_sample", sample_hash))
|
|
123
|
-
else:
|
|
124
|
-
param_hash ^= hash(("original", repr(original_parameters)))
|
|
125
|
-
|
|
126
|
-
return param_hash
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
def hash_filters(filters: Optional[list["StatementFilter"]] = None) -> int:
|
|
130
|
-
"""Generate hash for statement filters.
|
|
131
|
-
|
|
132
|
-
Args:
|
|
133
|
-
filters: List of statement filters
|
|
134
|
-
|
|
135
|
-
Returns:
|
|
136
|
-
Hash of the filters
|
|
137
|
-
"""
|
|
138
|
-
if not filters:
|
|
139
|
-
return 0
|
|
140
|
-
|
|
141
|
-
# Use class names and any hashable attributes
|
|
142
|
-
filter_components = []
|
|
143
|
-
for f in filters:
|
|
144
|
-
# Use class name as primary identifier
|
|
145
|
-
components: list[Any] = [f.__class__.__name__]
|
|
146
|
-
|
|
147
|
-
# Add any hashable attributes if available
|
|
148
|
-
if hasattr(f, "__dict__"):
|
|
149
|
-
for key, value in sorted(f.__dict__.items()):
|
|
150
|
-
try:
|
|
151
|
-
# Try to hash the value
|
|
152
|
-
hash(value)
|
|
153
|
-
components.append((key, value))
|
|
154
|
-
except TypeError: # noqa: PERF203
|
|
155
|
-
# If not hashable, use repr
|
|
156
|
-
components.append((key, repr(value)))
|
|
157
|
-
|
|
158
|
-
filter_components.append(tuple(components))
|
|
159
|
-
|
|
160
|
-
return hash(tuple(filter_components))
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
def hash_sql_statement(statement: "SQL") -> str:
|
|
164
|
-
"""Generate a complete cache key for a SQL statement.
|
|
165
|
-
|
|
166
|
-
This centralizes all the complex hashing logic that was previously
|
|
167
|
-
scattered across different parts of the codebase.
|
|
168
|
-
|
|
169
|
-
Args:
|
|
170
|
-
statement: SQL statement object
|
|
171
|
-
|
|
172
|
-
Returns:
|
|
173
|
-
Cache key string
|
|
174
|
-
"""
|
|
175
|
-
from sqlspec.utils.type_guards import is_expression
|
|
176
|
-
|
|
177
|
-
# Hash the expression or raw SQL
|
|
178
|
-
if is_expression(statement._statement):
|
|
179
|
-
expr_hash = hash_expression(statement._statement)
|
|
180
|
-
else:
|
|
181
|
-
expr_hash = hash(statement._raw_sql)
|
|
182
|
-
|
|
183
|
-
# Hash all parameters
|
|
184
|
-
param_hash = hash_parameters(
|
|
185
|
-
positional_params=statement._positional_params,
|
|
186
|
-
named_params=statement._named_params,
|
|
187
|
-
original_parameters=statement._original_parameters,
|
|
188
|
-
)
|
|
189
|
-
|
|
190
|
-
# Hash filters
|
|
191
|
-
filter_hash = hash_filters(statement._filters)
|
|
192
|
-
|
|
193
|
-
# Combine with other state
|
|
194
|
-
state_components = [
|
|
195
|
-
expr_hash,
|
|
196
|
-
param_hash,
|
|
197
|
-
filter_hash,
|
|
198
|
-
hash(statement._dialect), # Use _dialect instead of _config.dialect
|
|
199
|
-
hash(statement._is_many),
|
|
200
|
-
hash(statement._is_script),
|
|
201
|
-
]
|
|
202
|
-
|
|
203
|
-
return f"sql:{hash(tuple(state_components))}"
|
sqlspec-0.14.1.dist-info/RECORD
DELETED
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
sqlspec/__init__.py,sha256=SEPpbVPjSiF9kS4FpowO7S0jm8YNMD9FiX-5lrrCbY0,1676
|
|
2
|
-
sqlspec/__main__.py,sha256=tdu1ldelPAReNMbglVkTg7SVTEMTtxW1Ik3kLKdUonw,252
|
|
3
|
-
sqlspec/__metadata__.py,sha256=hNP3wXvtk8fQVPKGjRLpZ9mP-gaPJqzrmgm3UqpDIXQ,460
|
|
4
|
-
sqlspec/_serialization.py,sha256=7zox4G9zIps-DCdIEwYs4gwALfEOy1g_sWS4r5kpzO8,2604
|
|
5
|
-
sqlspec/_sql.py,sha256=zqMtVWBZzbnNErB8VyJkjDCPq0RNkhGUPA2ZCOtzmGo,35759
|
|
6
|
-
sqlspec/_typing.py,sha256=Vn1CTCfedAHZV3pKZP-l_mPw9pTxesCzRKVRypzNY_k,17903
|
|
7
|
-
sqlspec/base.py,sha256=a7adbCUzohf1MU-iP0TxazGsk9fsJhJmxuFKNWkgC6o,18355
|
|
8
|
-
sqlspec/cli.py,sha256=V8dYi286yXsrZg-w8vsh9OWKngViYCQJejujLjoV5co,9980
|
|
9
|
-
sqlspec/config.py,sha256=IfjXcHFXmGseUcMsf4eEHgeh7oOc2EEIg34R7BC62UI,13144
|
|
10
|
-
sqlspec/exceptions.py,sha256=T2h-tCN05sRKSpXDjPtYXvNgwInNVzTpha1PIkSUROQ,14168
|
|
11
|
-
sqlspec/loader.py,sha256=sR8hSbxbuo3QFC0YoIaT9Xf05QNqtG_WX912IG56kas,15353
|
|
12
|
-
sqlspec/protocols.py,sha256=Uum9tliNG6MOcXBK6KRBmkWGikhEAzH2qIAgZITXd1U,18094
|
|
13
|
-
sqlspec/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
|
-
sqlspec/typing.py,sha256=qkUcvruNzRUUfpv4AkbQezpy9SokhVHXlMbfFNwQlnU,8721
|
|
15
|
-
sqlspec/adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
|
-
sqlspec/adapters/adbc/__init__.py,sha256=v9bs7501PgEyzR1XIsEpE2Wdrj9DOYkZ4grysw72UXk,218
|
|
17
|
-
sqlspec/adapters/adbc/config.py,sha256=LjcVqN3DUOxxz7u2j6o3DhIq4srS7TJrcUqQ86FFBGs,19898
|
|
18
|
-
sqlspec/adapters/adbc/driver.py,sha256=xHjeDukF8P9y491037kF7pt3mleb4jBHh8yIeiDG36c,17940
|
|
19
|
-
sqlspec/adapters/adbc/transformers.py,sha256=97L-5z278TSkjkK0fucDYb5i5G4WZheMkU8hlF53_Fk,4880
|
|
20
|
-
sqlspec/adapters/aiosqlite/__init__.py,sha256=7wPmhXQeu4jRi-LZzPxAPTdgRmgmyqCn9U-4wnCWoLM,258
|
|
21
|
-
sqlspec/adapters/aiosqlite/config.py,sha256=Rg2RduE5wLM7JkEITtQg6kJQ2n6YVgKsl0S-io-18n0,7246
|
|
22
|
-
sqlspec/adapters/aiosqlite/driver.py,sha256=40c3YVO9UcnUDSlqwEpuI2CNMzsufR4WVGeUKBMcnMY,12176
|
|
23
|
-
sqlspec/adapters/asyncmy/__init__.py,sha256=zYpebEt_PrNCifLcqXiCcWVm0Zl-LvWbFDromWwSTw8,270
|
|
24
|
-
sqlspec/adapters/asyncmy/config.py,sha256=jYeF80DKdd5arS4kSPz4hcpLnzv1WgQa5s9DmEy02OU,10155
|
|
25
|
-
sqlspec/adapters/asyncmy/driver.py,sha256=-rZcBj-gbJ6r3qZQzltqfOHyA70iSg9r4XtieuLliGg,10571
|
|
26
|
-
sqlspec/adapters/asyncpg/__init__.py,sha256=svnbKlOin8jRL88AdAqflBEU-WEAzp0Thc2y50QsxIo,310
|
|
27
|
-
sqlspec/adapters/asyncpg/config.py,sha256=8fKZ55YynepP7eC6A0Z3jpXcGVoSuLW9yGUH04O2a4A,11857
|
|
28
|
-
sqlspec/adapters/asyncpg/driver.py,sha256=sfoxCkHzJvRuE5kNRUH--zCecf2kcqNnDz9OIYsLv54,18629
|
|
29
|
-
sqlspec/adapters/bigquery/__init__.py,sha256=fWRH-BoCNX4rYwhU2DK64cXWpfkYpWIExddJAti0bxM,250
|
|
30
|
-
sqlspec/adapters/bigquery/config.py,sha256=z6FFWUvk3AdXcPRmOYf1lg-UlBqCq8EEDcxDz8-lI0Y,15773
|
|
31
|
-
sqlspec/adapters/bigquery/driver.py,sha256=zUZGGOuzQ4M4Ekt0H59UUQvX8AT4i-YUalkp2Ql6lKo,30956
|
|
32
|
-
sqlspec/adapters/duckdb/__init__.py,sha256=I1f6szfpKKrq6WhyDoUXD3i3NN4yjsh94_fhP1URI5M,351
|
|
33
|
-
sqlspec/adapters/duckdb/config.py,sha256=5k2fgJN1yTZuq4I0VRyIaiMno507sd6R_sl5G8sgpsI,18974
|
|
34
|
-
sqlspec/adapters/duckdb/driver.py,sha256=499tJ9xLj_09MDmnhuGHPiknzT7OFhCmorxB1yHXvXs,19051
|
|
35
|
-
sqlspec/adapters/oracledb/__init__.py,sha256=nn3whn0UyBThoXnE1-5_byVuc9PJjvB2P896p7LpNZI,474
|
|
36
|
-
sqlspec/adapters/oracledb/config.py,sha256=IRIwiWOo0BWoilGxtkrGNZEzVc8o8JqBQXSWdQoKgK8,22017
|
|
37
|
-
sqlspec/adapters/oracledb/driver.py,sha256=S7AyrOk1YbtGsdwrRJJi9-iI2hsBBE8rE67Tlw2kXMY,25790
|
|
38
|
-
sqlspec/adapters/psqlpy/__init__.py,sha256=dp0-96V4SAbNEvOqlJ8PWEyJMYzZGElVoyneZqJ-fbQ,297
|
|
39
|
-
sqlspec/adapters/psqlpy/config.py,sha256=7sM-RGEVpkJLHrX7DemlreL7spJdcrVZ0dDQSMDyt4k,15309
|
|
40
|
-
sqlspec/adapters/psqlpy/driver.py,sha256=GifEdVZKgqKaN0pajWCpZVvW0bKNRXeMZUhcNu-tetQ,10839
|
|
41
|
-
sqlspec/adapters/psycopg/__init__.py,sha256=ukkCUPrJPyAG78v4rOqcK4WZDs26PeB9Ra9qkFrGJ3E,484
|
|
42
|
-
sqlspec/adapters/psycopg/config.py,sha256=PAKtLZHQjGI3oCzoUL5jd0pNrOEdFTtRPsr9-kRmiqo,26300
|
|
43
|
-
sqlspec/adapters/psycopg/driver.py,sha256=lFoqYgG19lAA32_zjkx2yzYosBoINdnWG20KLDz2a3Q,42123
|
|
44
|
-
sqlspec/adapters/sqlite/__init__.py,sha256=1lYrJ-DojUAOvXMoZRUJNEVyMmYhO41hMJnDWCEeXlw,234
|
|
45
|
-
sqlspec/adapters/sqlite/config.py,sha256=ab9gYZvisBMO-lcB93ufmNn8lajs0-ZnFSrCtghWXPY,5757
|
|
46
|
-
sqlspec/adapters/sqlite/driver.py,sha256=Joov0hv709BrkNFFEyBC8saa3MgAM8uW0Du-kQxXedk,13343
|
|
47
|
-
sqlspec/driver/__init__.py,sha256=0udRS5IlJ17HzOCvzapG8c_88yAwTQri1XLD_3fZxZU,671
|
|
48
|
-
sqlspec/driver/_async.py,sha256=UYNjJ70kcIeRWfMBfXqBeVhtqGP9QhmANT2bR2VkRH8,10594
|
|
49
|
-
sqlspec/driver/_common.py,sha256=ohRsk4RmwHO0qLuDbjUpbXB9URC5CWrUOE-lSkFW5JI,15831
|
|
50
|
-
sqlspec/driver/_sync.py,sha256=yivXeRRIFpWkS62Kbi-pRDYidhh3epdJTbjqhLxwFNo,10434
|
|
51
|
-
sqlspec/driver/connection.py,sha256=zKP2p-VLxN07IPfOIBKMRELHN7ZMjmRVUKBgSW-6RQg,6610
|
|
52
|
-
sqlspec/driver/parameters.py,sha256=hxS3K6oICM8mtvRI3429jHPlJJL524b26wU3XFiFlKA,3995
|
|
53
|
-
sqlspec/driver/mixins/__init__.py,sha256=fvzM9gVjjnfUUTZ1TaDv-tEnxS1X-lxYiH7kZvBptzk,922
|
|
54
|
-
sqlspec/driver/mixins/_cache.py,sha256=GmQZLId_RdJX9BpEnVgWYWVmii3yjqGdnA6p1yawo08,3990
|
|
55
|
-
sqlspec/driver/mixins/_csv_writer.py,sha256=-uRe7QZRWtdZTFG3Fiej4Ia8EyQcjYr7oPT6wb0qTOc,2716
|
|
56
|
-
sqlspec/driver/mixins/_pipeline.py,sha256=71OyeDxAQc7KNGFqObMYUU_4LBCMvsm0qCZDiHEDwOI,19548
|
|
57
|
-
sqlspec/driver/mixins/_query_tools.py,sha256=c12s9gmOhAmgvIbK301SllOz89svgOXau5PwwnNu_TY,29186
|
|
58
|
-
sqlspec/driver/mixins/_result_utils.py,sha256=JzMpBXLxn9POMUnqaShhU1qc8TlHwCEy8H5vqnpNnXE,5672
|
|
59
|
-
sqlspec/driver/mixins/_sql_translator.py,sha256=wMv8FtGmulewCTFMdiQhlkiTz8hf7PKy_8VKP55aTuU,1499
|
|
60
|
-
sqlspec/driver/mixins/_storage.py,sha256=YNpkp_ZLXCIwJjosaUJXEFHhi8QGtgP1lKKop_YSWPc,38120
|
|
61
|
-
sqlspec/driver/mixins/_type_coercion.py,sha256=Al5IhsYzCnauOYW9o-STZ9DbIi9u8qYHJDeNDppN5q4,4558
|
|
62
|
-
sqlspec/extensions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
63
|
-
sqlspec/extensions/aiosql/__init__.py,sha256=-9cefc9pYPf9vCgALoB-y1DtmcgRjKe2azfl6RIarAA,414
|
|
64
|
-
sqlspec/extensions/aiosql/adapter.py,sha256=jLOMftHnUR42khs63aYFS2TYa6udUPf4WrYbgHoUajg,16522
|
|
65
|
-
sqlspec/extensions/litestar/__init__.py,sha256=tOmQ7RHSWOot7p30gk0efxxuP0OCq1opyyZqNmQY7FE,320
|
|
66
|
-
sqlspec/extensions/litestar/_utils.py,sha256=o-FuUj1_WkDrLxQxiP6hXDak66XfyRP3QLyEVKrIRjI,1954
|
|
67
|
-
sqlspec/extensions/litestar/cli.py,sha256=NYjPIWe0jESBgS0AG-3bdpcC5YM4RmZeeeTeFQK5Yqo,1362
|
|
68
|
-
sqlspec/extensions/litestar/config.py,sha256=vLXM425tCV3IbJiNO1ZG90ctjBTb9oQCuLsqCaUYmo8,4685
|
|
69
|
-
sqlspec/extensions/litestar/handlers.py,sha256=bVoWmHhCsHZkXZXYHE23yDaJlRoydfvU-boJjA3BSLE,10478
|
|
70
|
-
sqlspec/extensions/litestar/plugin.py,sha256=SCkO6_dq6fiISXzNWqQTinbNayCMqzQ33EU9QhMWyAg,5539
|
|
71
|
-
sqlspec/extensions/litestar/providers.py,sha256=wUGqPeNV58rPqL1iwDQg439C4y-Zg-eXEogjeFsv0iQ,21021
|
|
72
|
-
sqlspec/migrations/__init__.py,sha256=-Shsli3g2C7e8adYVrOwBskTb7iESiAy4NChvcueZkY,776
|
|
73
|
-
sqlspec/migrations/base.py,sha256=kvv_Vi4-ZV4_HY0Ug2cZdL3V7bkMSCKyzqus3kOyKyo,11894
|
|
74
|
-
sqlspec/migrations/commands.py,sha256=1Q_rO21uruurAdAxtw81PkH28iUSmay1Zi87kSYwRRY,19672
|
|
75
|
-
sqlspec/migrations/runner.py,sha256=CH9zh-BurgkgmSXU-dHdzl0Y1JqWfWJuYJ7SUtW89_0,6893
|
|
76
|
-
sqlspec/migrations/tracker.py,sha256=CLsqb6dy34WMvkhvKVBkj8s07FhAnWsgQ77k16bz_s4,5412
|
|
77
|
-
sqlspec/migrations/utils.py,sha256=NKyJbfHlcCMfzJzuQc9pItvoYPt4lG-mG8u4oBmLo6o,2614
|
|
78
|
-
sqlspec/statement/__init__.py,sha256=NDvdrpr1EqAZXp4HmhTVaRnWVscahPSHpmSO8DHSoMY,536
|
|
79
|
-
sqlspec/statement/cache.py,sha256=eS0vi5icd2TWOF1bFL2XKemF0NBW2dKMHNqSCCtwiF0,1387
|
|
80
|
-
sqlspec/statement/filters.py,sha256=CmgGtQ7W5gJHnskpWXXJ7jdVmtoEGioHRTPntAEil2E,23478
|
|
81
|
-
sqlspec/statement/parameters.py,sha256=SOXN7tT5KzOHFj4mlMMJMx_HanoBvzOd7ywBmMYPQAc,39236
|
|
82
|
-
sqlspec/statement/result.py,sha256=-yARFxg7Wsm8nAeHMpnJ58OLd2VujFiZx29wfo7eFVs,14514
|
|
83
|
-
sqlspec/statement/splitter.py,sha256=mCzJsNEtJFk4A0FdTELkG_qOggRFCQC_ZEJisVo9orY,24111
|
|
84
|
-
sqlspec/statement/sql.py,sha256=j85wR8EsgPjNkG5BokFr5RyYd06DpkDX6gSc8u7S0oA,75745
|
|
85
|
-
sqlspec/statement/builder/__init__.py,sha256=sDC8HQ-LnfqzF-XmTT0YErp8wTaJiIu5YP3pdhb2MgY,1618
|
|
86
|
-
sqlspec/statement/builder/_base.py,sha256=DArCuNwDXslt73Jk5Io3WqUP1ZXA0e4cUXtzFjvQ5g4,14738
|
|
87
|
-
sqlspec/statement/builder/_column.py,sha256=0yTC00IMRVVuOXYXdz2Uy7BmtLe48apIY1N6oSUbp0s,12918
|
|
88
|
-
sqlspec/statement/builder/_ddl.py,sha256=6VfhavHfS4vONRPXvQl2TohizhJNGUTwWGnN9XWqT1o,51521
|
|
89
|
-
sqlspec/statement/builder/_ddl_utils.py,sha256=6BEcVuSAt0mHPuT8QZQJapWorPxgMzaEX0PxKeYxMQg,4327
|
|
90
|
-
sqlspec/statement/builder/_delete.py,sha256=fDuLaQIcYAJEZrQ0tdnuSmo2DcbHPiOej_YceOBKI1c,2882
|
|
91
|
-
sqlspec/statement/builder/_insert.py,sha256=6LARJr81LAR418DNlzsy8qPErER14a-Dy0Cs9UZK20w,10130
|
|
92
|
-
sqlspec/statement/builder/_merge.py,sha256=xjyKDqU7ABb0gA6vMoQXJGTPsUkk1j6Siohj9wHWGaE,2784
|
|
93
|
-
sqlspec/statement/builder/_parsing_utils.py,sha256=dxvbSkYMAHbHJx3nMU_4S2baEJ6Vp1TIJpl7BehAlpY,5841
|
|
94
|
-
sqlspec/statement/builder/_select.py,sha256=RSVTloFC7v0KYcc-zrToLiZTmO8D18hCZQ1UCs4e4NU,8527
|
|
95
|
-
sqlspec/statement/builder/_update.py,sha256=d-epAsZn3HKU_QNWIP6X6dlXZTokSwLRMbN86pFyN_8,6247
|
|
96
|
-
sqlspec/statement/builder/mixins/__init__.py,sha256=W5xXHE315-vAg76gbRBsQmYu72XY7wZ2vTbXM1xR_tk,2002
|
|
97
|
-
sqlspec/statement/builder/mixins/_cte_and_set_ops.py,sha256=VH7a6rZ29C7z30z_z-joRu2XVP4jsNqtQzHpYyfQ2w0,8911
|
|
98
|
-
sqlspec/statement/builder/mixins/_delete_operations.py,sha256=0f8ZZMFx5b53EUx1oF264owLb6aWP45naeB6g-BZQys,1068
|
|
99
|
-
sqlspec/statement/builder/mixins/_insert_operations.py,sha256=93kVOOCZBxMAN0uILNejFYIDrBg04NsPIvz-cTTGKzA,5415
|
|
100
|
-
sqlspec/statement/builder/mixins/_join_operations.py,sha256=lSGFtq_KJ985SCmUKmIx-4NwniIwQIVmLJYryF5mtc4,5658
|
|
101
|
-
sqlspec/statement/builder/mixins/_merge_operations.py,sha256=RrjyueCzxOhqyJSrJQlL89LkJyKES2-kMsfKy-w89XQ,16846
|
|
102
|
-
sqlspec/statement/builder/mixins/_order_limit_operations.py,sha256=7UOvQrRwTnOpBAXTGV509aqNj63J5UhuMIHYBjLh8vE,4538
|
|
103
|
-
sqlspec/statement/builder/mixins/_pivot_operations.py,sha256=yyKxBHaw9ApO4mwALo3ulohT08Z3kh07Mtst4DMULk4,6181
|
|
104
|
-
sqlspec/statement/builder/mixins/_select_operations.py,sha256=WM_wZPdKy8m-kAlfrMECFX1c2U5sZk-qRH_pTAMlUW4,25433
|
|
105
|
-
sqlspec/statement/builder/mixins/_update_operations.py,sha256=h9yMqIfLJvZlv8uJBZktqT3pJyu62DxPKffSedS0NuI,7508
|
|
106
|
-
sqlspec/statement/builder/mixins/_where_clause.py,sha256=yBRXq0pPMJKvpbaGI0FLZQNE2gw9ND_wofXTnsSXtZw,27018
|
|
107
|
-
sqlspec/statement/pipelines/__init__.py,sha256=aN8GtpqtjTKALANNm8KH5Adq9ijP1_Kq_I9s0S7t0QI,7343
|
|
108
|
-
sqlspec/statement/pipelines/context.py,sha256=ZL_1XvkPxadUtRijOh-pJ7jOkkikpNt8lymc20Jnmv8,3915
|
|
109
|
-
sqlspec/statement/pipelines/analyzers/__init__.py,sha256=RY7W0AiWG-8qdrTmRSGlEofjrPPJCJUnNK-LRukKt5Q,330
|
|
110
|
-
sqlspec/statement/pipelines/analyzers/_analyzer.py,sha256=0_FDty6H_4JvQwee_NrzmptX9-VdhyAePXUstuq4MU4,27474
|
|
111
|
-
sqlspec/statement/pipelines/transformers/__init__.py,sha256=Kh4CE_izdwEsSF7Is6_6NXqtNmbLm5x5OWdnlUGp9ok,480
|
|
112
|
-
sqlspec/statement/pipelines/transformers/_expression_simplifier.py,sha256=-imYcKeYcE66Uj04k-QywCcjvuZmvha_2H6rTy7wdSo,3376
|
|
113
|
-
sqlspec/statement/pipelines/transformers/_literal_parameterizer.py,sha256=N6a2lMGBHXcoHuSySY_9JhObNkPWabUBpR_25ZCnv0w,57183
|
|
114
|
-
sqlspec/statement/pipelines/transformers/_remove_comments_and_hints.py,sha256=-gM6VnlhNtQzSbQq44hQ5mhaPqNsjzeCaTgXTycgkOk,3008
|
|
115
|
-
sqlspec/statement/pipelines/validators/__init__.py,sha256=cdlwdLhOT2OwTbueIsA7bfRG2b6y-j7dw9pMzl5AP0M,747
|
|
116
|
-
sqlspec/statement/pipelines/validators/_dml_safety.py,sha256=s7Eee60u6w0K35vz4GVAwsB5Xy8zUqWhiIx_pRVfERo,10585
|
|
117
|
-
sqlspec/statement/pipelines/validators/_parameter_style.py,sha256=Dj85rkH1GyO4dRDgix-4CR9i3sTN_dO4pfmnIe8ORmg,17810
|
|
118
|
-
sqlspec/statement/pipelines/validators/_performance.py,sha256=HjXi24xh5jAHoP-tRZisu21E6ZnE1il4nQOMgRc80qo,26275
|
|
119
|
-
sqlspec/statement/pipelines/validators/_security.py,sha256=3WuH9n4j-VKOgmQnZvFIoI4MieRBVShtOZvXl2SJsyk,42103
|
|
120
|
-
sqlspec/storage/__init__.py,sha256=ZS8rmhN8e_h_df-Oab64Jh4EbddElBbmrtHkuO-KqOE,703
|
|
121
|
-
sqlspec/storage/capabilities.py,sha256=fsnQ9jbjHBFvd3P9yWAzfjPpVYUGcsTtR6fm5iOCvXY,3054
|
|
122
|
-
sqlspec/storage/registry.py,sha256=lv9pGt6vt0tDNAlao9qA7rSsFsCZtaOr48aG15IoMFA,10976
|
|
123
|
-
sqlspec/storage/backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
124
|
-
sqlspec/storage/backends/base.py,sha256=34XYQuz1tQ-q_ZZwOz-Kimgvl088SR3VUYJoA-STslc,6350
|
|
125
|
-
sqlspec/storage/backends/fsspec.py,sha256=wo40MwtEjNTc73ZNTCmNC2-Img0zldUCaFGh9H3BZuE,14715
|
|
126
|
-
sqlspec/storage/backends/obstore.py,sha256=FnoVzTzzNn5NRXR8GgETqD3Rq9C5EWAmfWmY4JDFVJE,21214
|
|
127
|
-
sqlspec/utils/__init__.py,sha256=3nF4cd2RQX5SoCILETafwj-Vn6FVu7PCXtZhp6CbpL0,262
|
|
128
|
-
sqlspec/utils/cached_property.py,sha256=Sw_JZxfChSJu72gvYBJPF-89FyyIJAPf-1ETlDq-F2E,648
|
|
129
|
-
sqlspec/utils/correlation.py,sha256=4jqpjMivxI1tQ13Ed-P0hLdFHUKUQ9GlvIM69_HOlS4,4370
|
|
130
|
-
sqlspec/utils/deprecation.py,sha256=zrmb_eKRlLWVA6dWrjUbN3Vz6D3_-Z_15Ixk4H-sDRk,3850
|
|
131
|
-
sqlspec/utils/fixtures.py,sha256=q_Pghpmw2VgJ9P0TfkyjSF5PvdaD5Y2Laha0Bj4IDrA,1838
|
|
132
|
-
sqlspec/utils/logging.py,sha256=56a5tqx4jfTqm20WDyj5c7Dy-h_O0KambIKOMr1-Oms,3780
|
|
133
|
-
sqlspec/utils/module_loader.py,sha256=9LcmEhy4T0jgkCaDVkxX47PSgJOMeJ8IV67yXEWBp-U,3074
|
|
134
|
-
sqlspec/utils/serializers.py,sha256=TKsRryRcYMnb8Z8MGkYGClIxcYvC8CW7MsrPQTJqEcY,154
|
|
135
|
-
sqlspec/utils/singleton.py,sha256=KZ7481tlDAxq6gcAlpULVqPLNc9P0XkHOEp7hfWIHcI,1096
|
|
136
|
-
sqlspec/utils/statement_hashing.py,sha256=Y5OKJNucINCqXeRL9d2nGRzGuIlkK5RgK40QRZfedKU,6396
|
|
137
|
-
sqlspec/utils/sync_tools.py,sha256=ckP1_uLh40C2pDvdc4FsR4NkmZVa1zEB8jhUxPLIuAI,8726
|
|
138
|
-
sqlspec/utils/text.py,sha256=DpEnRuSDv3acp4VQQGEOQixlJnLGZsN5YBws4rkI6t0,4756
|
|
139
|
-
sqlspec/utils/type_guards.py,sha256=0sDlkB4HVl0uVA4asDNQgbGTu9Q7YaUrGllhneOi0LY,26755
|
|
140
|
-
sqlspec-0.14.1.dist-info/METADATA,sha256=-AljfX5325tdemtqBiV88XvctU2KTuBPlia6TFem-dI,16663
|
|
141
|
-
sqlspec-0.14.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
142
|
-
sqlspec-0.14.1.dist-info/entry_points.txt,sha256=G-ZqY1Nuuw3Iys7nXw23f6ILenk_Lt47VdK2mhJCWHg,53
|
|
143
|
-
sqlspec-0.14.1.dist-info/licenses/LICENSE,sha256=MdujfZ6l5HuLz4mElxlu049itenOR3gnhN1_Nd3nVcM,1078
|
|
144
|
-
sqlspec-0.14.1.dist-info/licenses/NOTICE,sha256=Lyir8ozXWov7CyYS4huVaOCNrtgL17P-bNV-5daLntQ,1634
|
|
145
|
-
sqlspec-0.14.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|