sqlmesh 0.206.1.dev2__py3-none-any.whl → 0.206.2.dev1__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.
- sqlmesh/_version.py +2 -2
- sqlmesh/core/linter/helpers.py +52 -0
- sqlmesh/core/renderer.py +1 -3
- {sqlmesh-0.206.1.dev2.dist-info → sqlmesh-0.206.2.dev1.dist-info}/METADATA +1 -1
- {sqlmesh-0.206.1.dev2.dist-info → sqlmesh-0.206.2.dev1.dist-info}/RECORD +9 -9
- {sqlmesh-0.206.1.dev2.dist-info → sqlmesh-0.206.2.dev1.dist-info}/WHEEL +0 -0
- {sqlmesh-0.206.1.dev2.dist-info → sqlmesh-0.206.2.dev1.dist-info}/entry_points.txt +0 -0
- {sqlmesh-0.206.1.dev2.dist-info → sqlmesh-0.206.2.dev1.dist-info}/licenses/LICENSE +0 -0
- {sqlmesh-0.206.1.dev2.dist-info → sqlmesh-0.206.2.dev1.dist-info}/top_level.txt +0 -0
sqlmesh/_version.py
CHANGED
|
@@ -17,5 +17,5 @@ __version__: str
|
|
|
17
17
|
__version_tuple__: VERSION_TUPLE
|
|
18
18
|
version_tuple: VERSION_TUPLE
|
|
19
19
|
|
|
20
|
-
__version__ = version = '0.206.
|
|
21
|
-
__version_tuple__ = version_tuple = (0, 206,
|
|
20
|
+
__version__ = version = '0.206.2.dev1'
|
|
21
|
+
__version_tuple__ = version_tuple = (0, 206, 2, 'dev1')
|
sqlmesh/core/linter/helpers.py
CHANGED
|
@@ -158,3 +158,55 @@ def get_range_of_model_block(
|
|
|
158
158
|
return Range(
|
|
159
159
|
start=start_position.to_range(splitlines).start, end=end_position.to_range(splitlines).end
|
|
160
160
|
)
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
def get_range_of_a_key_in_model_block(
|
|
164
|
+
sql: str,
|
|
165
|
+
dialect: str,
|
|
166
|
+
key: str,
|
|
167
|
+
) -> t.Optional[Range]:
|
|
168
|
+
"""
|
|
169
|
+
Get the range of a specific key in the model block of an SQL file.
|
|
170
|
+
"""
|
|
171
|
+
tokens = tokenize(sql, dialect=dialect)
|
|
172
|
+
if tokens is None:
|
|
173
|
+
return None
|
|
174
|
+
|
|
175
|
+
# Find the start of the model block
|
|
176
|
+
start_index = next(
|
|
177
|
+
(
|
|
178
|
+
i
|
|
179
|
+
for i, t in enumerate(tokens)
|
|
180
|
+
if t.token_type is TokenType.VAR and t.text.upper() == "MODEL"
|
|
181
|
+
),
|
|
182
|
+
None,
|
|
183
|
+
)
|
|
184
|
+
end_index = next(
|
|
185
|
+
(i for i, t in enumerate(tokens) if t.token_type is TokenType.SEMICOLON),
|
|
186
|
+
None,
|
|
187
|
+
)
|
|
188
|
+
if start_index is None or end_index is None:
|
|
189
|
+
return None
|
|
190
|
+
if start_index >= end_index:
|
|
191
|
+
return None
|
|
192
|
+
|
|
193
|
+
tokens_of_interest = tokens[start_index + 1 : end_index]
|
|
194
|
+
# Find the key token
|
|
195
|
+
key_token = next(
|
|
196
|
+
(
|
|
197
|
+
t
|
|
198
|
+
for t in tokens_of_interest
|
|
199
|
+
if t.token_type is TokenType.VAR and t.text.upper() == key.upper()
|
|
200
|
+
),
|
|
201
|
+
None,
|
|
202
|
+
)
|
|
203
|
+
if key_token is None:
|
|
204
|
+
return None
|
|
205
|
+
|
|
206
|
+
position = TokenPositionDetails(
|
|
207
|
+
line=key_token.line,
|
|
208
|
+
col=key_token.col,
|
|
209
|
+
start=key_token.start,
|
|
210
|
+
end=key_token.end,
|
|
211
|
+
)
|
|
212
|
+
return position.to_range(sql.splitlines())
|
sqlmesh/core/renderer.py
CHANGED
|
@@ -523,8 +523,6 @@ class QueryRenderer(BaseExpressionRenderer):
|
|
|
523
523
|
runtime_stage, start, end, execution_time, *kwargs.values()
|
|
524
524
|
)
|
|
525
525
|
|
|
526
|
-
needs_optimization = needs_optimization and self._optimize_query_flag
|
|
527
|
-
|
|
528
526
|
if should_cache and self._optimized_cache:
|
|
529
527
|
query = self._optimized_cache
|
|
530
528
|
else:
|
|
@@ -560,7 +558,7 @@ class QueryRenderer(BaseExpressionRenderer):
|
|
|
560
558
|
)
|
|
561
559
|
raise
|
|
562
560
|
|
|
563
|
-
if needs_optimization:
|
|
561
|
+
if needs_optimization and self._optimize_query_flag:
|
|
564
562
|
deps = d.find_tables(
|
|
565
563
|
query, default_catalog=self._default_catalog, dialect=self._dialect
|
|
566
564
|
)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
sqlmesh/__init__.py,sha256=QjwaamJIdW7voXoS880yAx7tHm-Im4_mqGA-XJgafos,7631
|
|
2
|
-
sqlmesh/_version.py,sha256=
|
|
2
|
+
sqlmesh/_version.py,sha256=S4s0lANCdCA8rxuKgeIztkdnzaNgM5vUafG7dP6Q4hU,528
|
|
3
3
|
sqlmesh/magics.py,sha256=bEzYqXHcM0P3CjyUZ1O9arlmXAdLAhoglKbQ29fD9AE,41842
|
|
4
4
|
sqlmesh/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
5
|
sqlmesh/cicd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -23,7 +23,7 @@ sqlmesh/core/macros.py,sha256=h99VzqXXjFZYA0t2730HKdq4NP6tYo-VKvcpwipAneQ,62422
|
|
|
23
23
|
sqlmesh/core/node.py,sha256=3ChBz1PIMJhp-jzed_GLBrtmEF2v_BVDEM5WNe0ssPk,14658
|
|
24
24
|
sqlmesh/core/notification_target.py,sha256=PPGoDrgbRKxr27vJEu03XqNTQLYTw0ZF_b0yAapxGeI,16158
|
|
25
25
|
sqlmesh/core/reference.py,sha256=k7OSkLqTjPR8WJjNeFj0xAJ297nZUMgb_iTVwKRRKjc,4875
|
|
26
|
-
sqlmesh/core/renderer.py,sha256=
|
|
26
|
+
sqlmesh/core/renderer.py,sha256=PMUmmtwqk3FA5lN-16OWl6buCbrVa1M8NIgRXCYEB8k,26805
|
|
27
27
|
sqlmesh/core/scheduler.py,sha256=CeI-15GrraLUI5YO8fQUACj7WG7dY6otE4TaJOp2_IU,41041
|
|
28
28
|
sqlmesh/core/schema_diff.py,sha256=Sp2MoqAngp-yTYevkLaf9jb26SuAdGXoZ54g5MjWowU,30516
|
|
29
29
|
sqlmesh/core/schema_loader.py,sha256=_Pq2RSw91uthqv1vNi_eHmLlzhtGz_APMJ0wAJZYuvk,3677
|
|
@@ -77,7 +77,7 @@ sqlmesh/core/engine_adapter/spark.py,sha256=sYkVOPS0X43UPbI0z7Hh_EpKlI36qkOcr4NN
|
|
|
77
77
|
sqlmesh/core/engine_adapter/trino.py,sha256=Tws3GxqnC6BmXFohqru1TDxsgPH-21qV6Oky7FaaLpE,15908
|
|
78
78
|
sqlmesh/core/linter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
79
79
|
sqlmesh/core/linter/definition.py,sha256=JDJTkhByUw4Tr3nF-BOHKFAx_eASQqEqzX6AUVQUz8I,5659
|
|
80
|
-
sqlmesh/core/linter/helpers.py,sha256=
|
|
80
|
+
sqlmesh/core/linter/helpers.py,sha256=Bv11aGRIrnv9Ym9fudy3XQB0k-FvchkLtBTkGI91SEw,6504
|
|
81
81
|
sqlmesh/core/linter/rule.py,sha256=MgFwfvlGEvh4nijsxc7Bbk_S9ctJ_m-nKCom9LIN4W4,3734
|
|
82
82
|
sqlmesh/core/linter/rules/__init__.py,sha256=gevzfb67vFqckTCoVAe_TBGf6hQ-YtE1_YuGuXyh1L0,77
|
|
83
83
|
sqlmesh/core/linter/rules/builtin.py,sha256=2H4yV4eVUCY25uFgO2M62czpZt5dXdK5mW6XGGOc12Q,9857
|
|
@@ -287,7 +287,7 @@ sqlmesh/utils/pydantic.py,sha256=o_NsXbIpDqNpUA1Uc5xF0ZzoXQYYB0DfHwdRxBwXPNk,120
|
|
|
287
287
|
sqlmesh/utils/rich.py,sha256=cwQ5nJ6sgz64xHtoh6_ec7ReV5YpsOGhMtUJnwoRfEI,3549
|
|
288
288
|
sqlmesh/utils/windows.py,sha256=r7Yin4WEwbvH7sKA3hOJtRsclmscNuBeCklCfVPvtQs,611
|
|
289
289
|
sqlmesh/utils/yaml.py,sha256=hvo5lmybYLcIx4p6CQwufS8X4MbwS60lEBnCmYJCXmU,2336
|
|
290
|
-
sqlmesh-0.206.
|
|
290
|
+
sqlmesh-0.206.2.dev1.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
|
|
291
291
|
web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
292
292
|
web/client/dist/index.html,sha256=SXykdSRNgrT1k6I2dPZPEfpxPjIsi8-yVFijt-naSA4,5472
|
|
293
293
|
web/client/dist/assets/Audits-Jm353fhk.js,sha256=ry6b5IKT3hLAfD5C3T2BqxulfauEV0n0YZ2vsP4eQ_U,1041
|
|
@@ -405,8 +405,8 @@ web/server/api/endpoints/models.py,sha256=kwj0s7uve3iZSMfmjkoPVMFMeY1sD0peTeyrWf
|
|
|
405
405
|
web/server/api/endpoints/modules.py,sha256=8hqqgonGay_mJmpCw0IdbjsPhWlQH2VLdKAqha-myac,468
|
|
406
406
|
web/server/api/endpoints/plan.py,sha256=bbbY50W_2MsZSTxOHWMKz0tbIm75nsRSlPy8GI2fg9Q,9306
|
|
407
407
|
web/server/api/endpoints/table_diff.py,sha256=SCy3-pr5x6bEEiOaZGCDbiHQhpgxwmnz3Acqa2Ie6jI,2090
|
|
408
|
-
sqlmesh-0.206.
|
|
409
|
-
sqlmesh-0.206.
|
|
410
|
-
sqlmesh-0.206.
|
|
411
|
-
sqlmesh-0.206.
|
|
412
|
-
sqlmesh-0.206.
|
|
408
|
+
sqlmesh-0.206.2.dev1.dist-info/METADATA,sha256=v7lvQZd0_0twHOAcdcG3OnLLxO9Bf45E6gUP6ADSlHM,26685
|
|
409
|
+
sqlmesh-0.206.2.dev1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
410
|
+
sqlmesh-0.206.2.dev1.dist-info/entry_points.txt,sha256=pIYKtg-u-uO7BK_Y0qrdmfyj0bYrcMc3Xiqr5WE3VFk,121
|
|
411
|
+
sqlmesh-0.206.2.dev1.dist-info/top_level.txt,sha256=bspjo5vjELQkuN0qKuTFIbsrUt3Zeo8D2mlKeHG1LdE,12
|
|
412
|
+
sqlmesh-0.206.2.dev1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|