sqlmesh 0.187.2.dev1__py3-none-any.whl → 0.187.3.dev2__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.187.2.dev1'
21
- __version_tuple__ = version_tuple = (0, 187, 2, 'dev1')
20
+ __version__ = version = '0.187.3.dev2'
21
+ __version_tuple__ = version_tuple = (0, 187, 3, 'dev2')
@@ -2173,24 +2173,18 @@ def load_sql_based_model(
2173
2173
  **meta_fields,
2174
2174
  )
2175
2175
 
2176
- if query_or_seed_insert is not None and (
2177
- isinstance(query_or_seed_insert, (exp.Query, d.JinjaQuery))
2178
- or (
2179
- # Macro functions are allowed in place of model queries only when there are no
2180
- # other statements in the model definition, otherwise they would be ambiguous
2181
- isinstance(query_or_seed_insert, d.MacroFunc)
2182
- and (query_or_seed_insert.this.name.lower() == "union" or len(expressions) == 2)
2183
- )
2184
- ):
2176
+ kind = common_kwargs.pop("kind", ModelMeta.all_field_infos()["kind"].default)
2177
+
2178
+ if kind.name != ModelKindName.SEED:
2185
2179
  return create_sql_model(
2186
2180
  name,
2187
2181
  query_or_seed_insert,
2182
+ kind=kind,
2188
2183
  time_column_format=time_column_format,
2189
2184
  **common_kwargs,
2190
2185
  )
2191
- seed_properties = {
2192
- p.name.lower(): p.args.get("value") for p in common_kwargs.pop("kind").expressions
2193
- }
2186
+
2187
+ seed_properties = {p.name.lower(): p.args.get("value") for p in kind.expressions}
2194
2188
  return create_seed_model(
2195
2189
  name,
2196
2190
  SeedKind(**seed_properties),
@@ -2200,7 +2194,7 @@ def load_sql_based_model(
2200
2194
 
2201
2195
  def create_sql_model(
2202
2196
  name: TableName,
2203
- query: exp.Expression,
2197
+ query: t.Optional[exp.Expression],
2204
2198
  **kwargs: t.Any,
2205
2199
  ) -> Model:
2206
2200
  """Creates a SQL model.
@@ -2215,6 +2209,7 @@ def create_sql_model(
2215
2209
  "A query is required and must be a SELECT statement, a UNION statement, or a JINJA_QUERY block",
2216
2210
  kwargs.get("path"),
2217
2211
  )
2212
+ assert isinstance(query, (exp.Query, d.JinjaQuery, d.MacroFunc))
2218
2213
 
2219
2214
  return _create_model(SqlModel, name, query=query, **kwargs)
2220
2215
 
sqlmesh/lsp/main.py CHANGED
@@ -421,12 +421,24 @@ class SQLMeshLanguageServer:
421
421
  def _diagnostics_to_lsp_diagnostics(
422
422
  diagnostics: t.List[AnnotatedRuleViolation],
423
423
  ) -> t.List[types.Diagnostic]:
424
- lsp_diagnostics: t.List[types.Diagnostic] = []
424
+ """
425
+ Converts a list of AnnotatedRuleViolations to a list of LSP diagnostics. It will remove duplicates based on the message and range.
426
+ """
427
+ lsp_diagnostics = {}
425
428
  for diagnostic in diagnostics:
426
429
  lsp_diagnostic = SQLMeshLanguageServer._diagnostic_to_lsp_diagnostic(diagnostic)
427
430
  if lsp_diagnostic is not None:
428
- lsp_diagnostics.append(lsp_diagnostic)
429
- return lsp_diagnostics
431
+ # Create a unique key combining message and range
432
+ diagnostic_key = (
433
+ lsp_diagnostic.message,
434
+ lsp_diagnostic.range.start.line,
435
+ lsp_diagnostic.range.start.character,
436
+ lsp_diagnostic.range.end.line,
437
+ lsp_diagnostic.range.end.character,
438
+ )
439
+ if diagnostic_key not in lsp_diagnostics:
440
+ lsp_diagnostics[diagnostic_key] = lsp_diagnostic
441
+ return list(lsp_diagnostics.values())
430
442
 
431
443
  @staticmethod
432
444
  def _uri_to_path(uri: str) -> Path:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlmesh
3
- Version: 0.187.2.dev1
3
+ Version: 0.187.3.dev2
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=69xw6bTmi4cW90M-sl3g6wLDgxVcLHcKg1q8GS3lqyA,7466
2
- sqlmesh/_version.py,sha256=dgppKmJoTWenm0m3Rd3mnoNTYUY251JNpGOdyxYgsN4,528
2
+ sqlmesh/_version.py,sha256=qObjpA8QkbICnjYxMOO66zN-MPoOmDZgscAVZWJBDzo,528
3
3
  sqlmesh/magics.py,sha256=JHorAZNtezf123jmTyNSoUC9yHmv-08hMP205PJmmIo,39750
4
4
  sqlmesh/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  sqlmesh/cicd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -87,7 +87,7 @@ sqlmesh/core/model/__init__.py,sha256=C8GRZ53xuXEA9hQv3BQS9pNNyd9rZ06R_B96UYGhDu
87
87
  sqlmesh/core/model/cache.py,sha256=WJdn54xmA3NtX0dlX-DZnYlrWDhj4ycoq_4FD4MK2yg,7502
88
88
  sqlmesh/core/model/common.py,sha256=vbcXFhWE22-FeKYAVIlKWvTb-wkeC8XISjU_TIlak0c,16252
89
89
  sqlmesh/core/model/decorator.py,sha256=v_sVudNROGrtj5cZ3vgcOFnwPdzwoUGY6REAkQpIMQc,8927
90
- sqlmesh/core/model/definition.py,sha256=QBwGNL7Jqg8BGgpZfTtKciRJA7axkI5FShJJjnUDQ4w,108645
90
+ sqlmesh/core/model/definition.py,sha256=wdWkRROrIwbq4xJ5g76go5kDmOvGFWvx4oTmuWFoMvg,108366
91
91
  sqlmesh/core/model/kind.py,sha256=i6_AMBarXPGPoMdF9kzBkyqS9tu__a2339-BoX7TgCM,36010
92
92
  sqlmesh/core/model/meta.py,sha256=osJgfSj6maIIdWAHzDVCkXXL--__gnKvqkzxM6Nuq6g,20779
93
93
  sqlmesh/core/model/schema.py,sha256=OClbAeA8LpW-IiSiLT_TlDWkEqmIIvSk0GXq8SWI-GQ,3443
@@ -160,7 +160,7 @@ sqlmesh/lsp/completions.py,sha256=Uo8lUzPBeoB58Eu2642YoAtNI0pgIFWFSvwmuJALTv4,35
160
160
  sqlmesh/lsp/context.py,sha256=nCWg2uVH28-IJC2uDYuCbiXTh1lUFElSpNu4Q-fDWi4,2918
161
161
  sqlmesh/lsp/custom.py,sha256=1YVcQz0y-4cdsvTdOQvlhUQXwOqPBWi3v_u1X2EqQxE,901
162
162
  sqlmesh/lsp/description.py,sha256=4QIGC9ix8IzmWF6DVUNhY4m1Crk3sNQA6hZ1RbyqU78,827
163
- sqlmesh/lsp/main.py,sha256=s8e9mD-J6pbxCrEZiMlRL0DvUu1rD3vxVdebgx5kjhA,19609
163
+ sqlmesh/lsp/main.py,sha256=afQif7TFaaSMlJmuHGTu2g51SwJ9ij8pjic6OQbnP6s,20214
164
164
  sqlmesh/lsp/reference.py,sha256=v4VXMYQY9rPC8b5w-jzob3i77VdZ1FZ8sA_-sWuPx7M,10502
165
165
  sqlmesh/lsp/uri.py,sha256=mvSLbZGmMTHPpliThOtVWiFcHnfJzp1w39q9l-xD2SI,802
166
166
  sqlmesh/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -270,7 +270,7 @@ sqlmesh/utils/pydantic.py,sha256=I898jAFqa3qU6lG2uPpRebVFncOUo8ZrLWM_R3K3DHU,116
270
270
  sqlmesh/utils/rich.py,sha256=xNZyPCqEc4TAlJlsEthg-5eYUWpaizz0QjBzO7a1Yv4,1509
271
271
  sqlmesh/utils/windows.py,sha256=r7Yin4WEwbvH7sKA3hOJtRsclmscNuBeCklCfVPvtQs,611
272
272
  sqlmesh/utils/yaml.py,sha256=np-WVcwmwsKghCgAj1OBBMsK1SXSRn4wR-H37cGiFr8,2282
273
- sqlmesh-0.187.2.dev1.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
273
+ sqlmesh-0.187.3.dev2.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
274
274
  web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
275
275
  web/client/dist/index.html,sha256=M50OuwjW63dRCS0Dz40Yecgvw9ecLFqizbTa6gv5Nd4,5472
276
276
  web/client/dist/assets/Audits-BPlxzqeG.js,sha256=TCx1qCjCGgmUSvH6HoPr5t8ztbRXMlOxrcW4o7hRjlA,1041
@@ -388,8 +388,8 @@ web/server/api/endpoints/models.py,sha256=ud-lRwriyI_OYg9tZchrBgeiXELiRTLNEodraf
388
388
  web/server/api/endpoints/modules.py,sha256=8hqqgonGay_mJmpCw0IdbjsPhWlQH2VLdKAqha-myac,468
389
389
  web/server/api/endpoints/plan.py,sha256=OYuQ_4dgbhG9ibTcX1a8mvYgH3ANxw9Fhbb4wg6QWqc,9222
390
390
  web/server/api/endpoints/table_diff.py,sha256=Wd5YxeKbZB7AkrDvqFgvV9ZQlnKYOF1n5W_w2EHE_Zw,2085
391
- sqlmesh-0.187.2.dev1.dist-info/METADATA,sha256=qffwII-CI9Ck8Bq6FXIbyTWknPfy68u10bZC-WuZ8g8,25550
392
- sqlmesh-0.187.2.dev1.dist-info/WHEEL,sha256=zaaOINJESkSfm_4HQVc5ssNzHCPXhJm0kEUakpsEHaU,91
393
- sqlmesh-0.187.2.dev1.dist-info/entry_points.txt,sha256=pIYKtg-u-uO7BK_Y0qrdmfyj0bYrcMc3Xiqr5WE3VFk,121
394
- sqlmesh-0.187.2.dev1.dist-info/top_level.txt,sha256=bspjo5vjELQkuN0qKuTFIbsrUt3Zeo8D2mlKeHG1LdE,12
395
- sqlmesh-0.187.2.dev1.dist-info/RECORD,,
391
+ sqlmesh-0.187.3.dev2.dist-info/METADATA,sha256=4XzJO3udftuJppHc31Wk97BXBIhZEFSGx9CM6w1-baU,25550
392
+ sqlmesh-0.187.3.dev2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
393
+ sqlmesh-0.187.3.dev2.dist-info/entry_points.txt,sha256=pIYKtg-u-uO7BK_Y0qrdmfyj0bYrcMc3Xiqr5WE3VFk,121
394
+ sqlmesh-0.187.3.dev2.dist-info/top_level.txt,sha256=bspjo5vjELQkuN0qKuTFIbsrUt3Zeo8D2mlKeHG1LdE,12
395
+ sqlmesh-0.187.3.dev2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.8.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5