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 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.1.dev2'
21
- __version_tuple__ = version_tuple = (0, 206, 1, 'dev2')
20
+ __version__ = version = '0.206.2.dev1'
21
+ __version_tuple__ = version_tuple = (0, 206, 2, 'dev1')
@@ -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,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlmesh
3
- Version: 0.206.1.dev2
3
+ Version: 0.206.2.dev1
4
4
  Summary: Next-generation data transformation framework
5
5
  Author-email: "TobikoData Inc." <engineering@tobikodata.com>
6
6
  License: Apache License
@@ -1,5 +1,5 @@
1
1
  sqlmesh/__init__.py,sha256=QjwaamJIdW7voXoS880yAx7tHm-Im4_mqGA-XJgafos,7631
2
- sqlmesh/_version.py,sha256=0RsMk-G916z8P0XjadBqPGLzTd0VOmAfpsHF97MM724,528
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=8zXlvp1roSAEG-_m3thFmUggE1USbBBeoEKnBEshlPQ,26854
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=HNNSiuKB2o4Z2AGbwgrGr9hE0lQnIR7VHQfj8D8M_Jw,5202
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.1.dev2.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
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.1.dev2.dist-info/METADATA,sha256=GCReppkwF_vU1WLnp54TMtb9nQxXUKZtCA6xL_KStKU,26685
409
- sqlmesh-0.206.1.dev2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
410
- sqlmesh-0.206.1.dev2.dist-info/entry_points.txt,sha256=pIYKtg-u-uO7BK_Y0qrdmfyj0bYrcMc3Xiqr5WE3VFk,121
411
- sqlmesh-0.206.1.dev2.dist-info/top_level.txt,sha256=bspjo5vjELQkuN0qKuTFIbsrUt3Zeo8D2mlKeHG1LdE,12
412
- sqlmesh-0.206.1.dev2.dist-info/RECORD,,
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,,