sqlmesh 0.188.1.dev7__py3-none-any.whl → 0.188.1.dev9__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.188.1.dev7'
21
- __version_tuple__ = version_tuple = (0, 188, 1, 'dev7')
20
+ __version__ = version = '0.188.1.dev9'
21
+ __version_tuple__ = version_tuple = (0, 188, 1, 'dev9')
sqlmesh/core/loader.py CHANGED
@@ -452,10 +452,12 @@ class Loader(abc.ABC):
452
452
  self._path_mtimes[path] = path.stat().st_mtime
453
453
 
454
454
  def _failed_to_load_model_error(self, path: Path, error: t.Union[str, Exception]) -> str:
455
- base_message = f"Failed to load model definition at '{path}':"
455
+ base_message = f"Failed to load model from file '{path}':"
456
456
  if isinstance(error, ValidationError):
457
457
  return validation_error_message(error, base_message)
458
- return f"{base_message}\n {error}"
458
+ # indent all lines of error message
459
+ error_message = str(error).replace("\n", "\n ")
460
+ return f"{base_message}\n\n {error_message}"
459
461
 
460
462
 
461
463
  class SqlMeshLoader(Loader):
@@ -2036,18 +2036,25 @@ def load_sql_based_model(
2036
2036
  variables: The variables to pass to the model.
2037
2037
  kwargs: Additional kwargs to pass to the loader.
2038
2038
  """
2039
+ missing_model_msg = f"""Please add a MODEL block at the top of the file. Example:
2040
+
2041
+ MODEL (
2042
+ name sqlmesh_example.full_model, --model name
2043
+ kind FULL, --materialization
2044
+ cron '@daily', --schedule
2045
+ );
2046
+
2047
+ Learn more at https://sqlmesh.readthedocs.io/en/stable/concepts/models/overview
2048
+ """
2049
+
2039
2050
  if not expressions:
2040
- raise_config_error("Incomplete model definition, missing MODEL statement", path)
2051
+ raise_config_error(missing_model_msg)
2041
2052
 
2042
2053
  dialect = dialect or ""
2043
2054
  meta = expressions[0]
2044
2055
  if not isinstance(meta, d.Model):
2045
2056
  if not infer_names:
2046
- raise_config_error(
2047
- "The MODEL statement is required as the first statement in the definition, "
2048
- "unless model name inference is enabled.",
2049
- path,
2050
- )
2057
+ raise_config_error(missing_model_msg)
2051
2058
  meta = d.Model(expressions=[]) # Dummy meta node
2052
2059
  expressions.insert(0, meta)
2053
2060
 
sqlmesh/dbt/builtin.py CHANGED
@@ -30,7 +30,7 @@ logger = logging.getLogger(__name__)
30
30
 
31
31
  class Exceptions:
32
32
  def raise_compiler_error(self, msg: str) -> None:
33
- if DBT_VERSION >= (1, 4):
33
+ if DBT_VERSION >= (1, 4, 0):
34
34
  from dbt.exceptions import CompilationError
35
35
 
36
36
  raise CompilationError(msg)
sqlmesh/dbt/manifest.py CHANGED
@@ -238,7 +238,7 @@ class ManifestHelper:
238
238
  dependencies.macros.append(MacroReference(package="dbt", name="get_where_subquery"))
239
239
  dependencies.macros.append(MacroReference(package="dbt", name="should_store_failures"))
240
240
 
241
- sql = node.raw_code if DBT_VERSION >= (1, 3) else node.raw_sql # type: ignore
241
+ sql = node.raw_code if DBT_VERSION >= (1, 3, 0) else node.raw_sql # type: ignore
242
242
  dependencies = dependencies.union(self._extra_dependencies(sql, node.package_name))
243
243
  dependencies = dependencies.union(
244
244
  self._flatten_dependencies_from_macros(dependencies.macros, node.package_name)
@@ -278,7 +278,7 @@ class ManifestHelper:
278
278
  node_name = f"{node_name}_v{node_version}"
279
279
 
280
280
  if node.resource_type in {"model", "snapshot"}:
281
- sql = node.raw_code if DBT_VERSION >= (1, 3) else node.raw_sql # type: ignore
281
+ sql = node.raw_code if DBT_VERSION >= (1, 3, 0) else node.raw_sql # type: ignore
282
282
  dependencies = Dependencies(
283
283
  macros=macro_references, refs=_refs(node), sources=_sources(node)
284
284
  )
@@ -305,7 +305,7 @@ class ManifestHelper:
305
305
  if node.resource_type == "operation" and (
306
306
  set(node.tags) & {"on-run-start", "on-run-end"}
307
307
  ):
308
- sql = node.raw_code if DBT_VERSION >= (1, 3) else node.raw_sql # type: ignore
308
+ sql = node.raw_code if DBT_VERSION >= (1, 3, 0) else node.raw_sql # type: ignore
309
309
  node_name = node.name
310
310
  node_path = Path(node.original_file_path)
311
311
 
@@ -339,7 +339,7 @@ class ManifestHelper:
339
339
 
340
340
  variables = (
341
341
  self.variable_overrides
342
- if DBT_VERSION >= (1, 5)
342
+ if DBT_VERSION >= (1, 5, 0)
343
343
  else json.dumps(self.variable_overrides)
344
344
  )
345
345
 
@@ -354,7 +354,7 @@ class ManifestHelper:
354
354
  )
355
355
  flags.set_from_args(args, None)
356
356
 
357
- if DBT_VERSION >= (1, 8):
357
+ if DBT_VERSION >= (1, 8, 0):
358
358
  from dbt_common.context import set_invocation_context # type: ignore
359
359
 
360
360
  set_invocation_context(os.environ)
@@ -371,7 +371,7 @@ class ManifestHelper:
371
371
 
372
372
  self._project_name = project.project_name
373
373
 
374
- if DBT_VERSION >= (1, 8):
374
+ if DBT_VERSION >= (1, 8, 0):
375
375
  from dbt.mp_context import get_mp_context # type: ignore
376
376
 
377
377
  register_adapter(runtime_config, get_mp_context()) # type: ignore
@@ -546,7 +546,7 @@ def _macro_references(
546
546
 
547
547
 
548
548
  def _refs(node: ManifestNode) -> t.Set[str]:
549
- if DBT_VERSION >= (1, 5):
549
+ if DBT_VERSION >= (1, 5, 0):
550
550
  result = set()
551
551
  for r in node.refs:
552
552
  ref_name = f"{r.package}.{r.name}" if r.package else r.name
sqlmesh/dbt/relation.py CHANGED
@@ -1,7 +1,7 @@
1
1
  from sqlmesh.dbt.util import DBT_VERSION
2
2
 
3
3
 
4
- if DBT_VERSION < (1, 8):
4
+ if DBT_VERSION < (1, 8, 0):
5
5
  from dbt.contracts.relation import * # type: ignore # noqa: F403
6
6
  else:
7
7
  from dbt.adapters.contracts.relation import * # type: ignore # noqa: F403
sqlmesh/dbt/target.py CHANGED
@@ -167,7 +167,7 @@ class DuckDbConfig(TargetConfig):
167
167
  if not isinstance(data, dict):
168
168
  return data
169
169
 
170
- if "database" not in data and DBT_VERSION >= (1, 5):
170
+ if "database" not in data and DBT_VERSION >= (1, 5, 0):
171
171
  path = data.get("path")
172
172
  data["database"] = (
173
173
  "memory"
@@ -424,7 +424,7 @@ class RedshiftConfig(TargetConfig):
424
424
 
425
425
  @classproperty
426
426
  def column_class(cls) -> t.Type[Column]:
427
- if DBT_VERSION < (1, 6):
427
+ if DBT_VERSION < (1, 6, 0):
428
428
  from dbt.adapters.redshift import RedshiftColumn # type: ignore
429
429
 
430
430
  return RedshiftColumn
sqlmesh/dbt/util.py CHANGED
@@ -5,14 +5,18 @@ import pandas as pd
5
5
  from dbt.version import get_installed_version
6
6
 
7
7
 
8
- def _get_dbt_version() -> t.Tuple[int, int]:
8
+ def _get_dbt_version() -> t.Tuple[int, int, int]:
9
9
  dbt_version = get_installed_version()
10
- return (int(dbt_version.major or "0"), int(dbt_version.minor or "0"))
10
+ return (
11
+ int(dbt_version.major or "0"),
12
+ int(dbt_version.minor or "0"),
13
+ int(dbt_version.patch or "0"),
14
+ )
11
15
 
12
16
 
13
17
  DBT_VERSION = _get_dbt_version()
14
18
 
15
- if DBT_VERSION < (1, 8):
19
+ if DBT_VERSION < (1, 8, 0):
16
20
  from dbt.clients.agate_helper import table_from_data_flat, empty_table, as_matrix # type: ignore # noqa: F401
17
21
  else:
18
22
  from dbt_common.clients.agate_helper import table_from_data_flat, empty_table, as_matrix # type: ignore # noqa: F401
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlmesh
3
- Version: 0.188.1.dev7
3
+ Version: 0.188.1.dev9
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=wywJkf5IKZ8yoj5ZLyjSrChyrg233K3yMpowNlVlFOA,528
2
+ sqlmesh/_version.py,sha256=J6UXr6hz7vwXl3srz5_6WMBoF82VLWEkVOGib6miMi4,528
3
3
  sqlmesh/magics.py,sha256=fu7-OeT_0_TAkWZOLoiioE3-3iFpvTRxFCbQUlRnfuw,39944
4
4
  sqlmesh/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  sqlmesh/cicd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -18,7 +18,7 @@ sqlmesh/core/context_diff.py,sha256=I7luvY2za30E5ynVaFPaEQQEmNViJpWAmW48PGSyDCU,
18
18
  sqlmesh/core/dialect.py,sha256=fPTV517IOS0nWMxYznNNQnXkQkFFrPOSKe8ghsQ0o8A,49759
19
19
  sqlmesh/core/environment.py,sha256=Fsih6WZ7Tx4ec0XIlmIIspUWcmijPNW5uHPRQSWuhA8,12315
20
20
  sqlmesh/core/lineage.py,sha256=zjB0Zfamo2Fja2r5SSZPMbrEKTXr1WjozZPVqvxdybI,3143
21
- sqlmesh/core/loader.py,sha256=exNCHmw06-CRBtOk-Hk5Ivw3gCowDWbxcvhMJVxpDd8,35887
21
+ sqlmesh/core/loader.py,sha256=yGMqZasaOrkwoDnIO1rQyxwFKkZggHL3VQAEeLhKYsM,35994
22
22
  sqlmesh/core/macros.py,sha256=wSKkFDZ2eIvhPENIsQ_7j27zVMHIgT-2juRjGvDeEKM,59620
23
23
  sqlmesh/core/node.py,sha256=r4_1MRTPcU0MAlwZ5KzrykLT58B7dkKvHzPCsJmEKD8,14497
24
24
  sqlmesh/core/notification_target.py,sha256=PPGoDrgbRKxr27vJEu03XqNTQLYTw0ZF_b0yAapxGeI,16158
@@ -87,7 +87,7 @@ sqlmesh/core/model/__init__.py,sha256=C8GRZ53xuXEA9hQv3BQS9pNNyd9rZ06R_B96UYGhDu
87
87
  sqlmesh/core/model/cache.py,sha256=csun0RJguHzKX6-qITcOs4fVP4f8_Ts8qiUVV4sHY6Q,7869
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=wdWkRROrIwbq4xJ5g76go5kDmOvGFWvx4oTmuWFoMvg,108366
90
+ sqlmesh/core/model/definition.py,sha256=5OXQTAfDe3e5ZYTgX3ziHE-ZHfdZvr_JBFNIpWx_agE,108444
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
@@ -123,22 +123,22 @@ sqlmesh/core/test/runner.py,sha256=yno0GDUW9angCy2ZeLIZE9lKrqBiJOnFibu6RLuct6I,6
123
123
  sqlmesh/dbt/__init__.py,sha256=KUv-lW5sG9D2ceXAIzA4MLcjyhzq3E-7qJP4P_PH2EU,144
124
124
  sqlmesh/dbt/adapter.py,sha256=NAY8E7R9S-DsKn3LnPUvZvQNONRE7hthmuBs1a5ao64,16761
125
125
  sqlmesh/dbt/basemodel.py,sha256=XuiK9-r5JWzvZGEk98Jt4ukR2exfMDsotGZqYx5xluc,12561
126
- sqlmesh/dbt/builtin.py,sha256=fyzv4qR1isfnID1oWz-r46oDQvS90DN5mMUEWgapvN8,15153
126
+ sqlmesh/dbt/builtin.py,sha256=Z1fmEkF5gVS1LMpuOOlZGwzdslcYNgW38-_b_n3KUfM,15156
127
127
  sqlmesh/dbt/column.py,sha256=Kvj_N3D_QegcoNQG7VqRiqy-FRfupud-6ilhlykBOgE,1873
128
128
  sqlmesh/dbt/common.py,sha256=g4PAL-sEdlnfb_zT-WW3xh-oamyCUoK8dUiDEMVwDWI,7804
129
129
  sqlmesh/dbt/context.py,sha256=dxClM-G1IeMbP0v5yxC_va8QNU-uKghW2dBlSZHJOk0,10331
130
130
  sqlmesh/dbt/loader.py,sha256=oDFj9OcWJxd72eN9u9gHM_bWj7T5EQuGnLViSdtLbMU,15472
131
- sqlmesh/dbt/manifest.py,sha256=a6gs4fpTBIb3p4r2dVp_4TKQqjpUEorfb9XWgmmfK3A,24126
131
+ sqlmesh/dbt/manifest.py,sha256=vHNHIkz3SQgZWoHrCsnSKNBptTCUtgG724_3QKTtnhM,24147
132
132
  sqlmesh/dbt/model.py,sha256=-TqeldZAqW-4g84Xi_16DpUD3atImk_9OHMbATIKYb8,26328
133
133
  sqlmesh/dbt/package.py,sha256=IBBQueVB4_4C9tIk0-GUL-O2uibNxXu6W2a4AeHHcOU,4322
134
134
  sqlmesh/dbt/profile.py,sha256=Fz2c0dJNN0xBgYEogCIKBTByjNvlA2BVBzOLQCfdEfM,3788
135
135
  sqlmesh/dbt/project.py,sha256=4PJHPVWIKDd71J5__iICqEp21nFiijKjJkiE5kZIH5Y,3980
136
- sqlmesh/dbt/relation.py,sha256=3w_4_Dj-oZXUEdBqOl9U6twbt8S2gDNMaFRb3unqkE8,224
136
+ sqlmesh/dbt/relation.py,sha256=rgDJQUuENjqq7kpMJJ6AdlgwYmcYjA1oFj6LCYCS-Hg,227
137
137
  sqlmesh/dbt/seed.py,sha256=E7pFhtGwRrC9U_VZJNABwLTa-Nk4OeD-gOtjSpvYmDA,4251
138
138
  sqlmesh/dbt/source.py,sha256=IZK-aOV-KdWIOPuXqRjJZAZ7phW1HUXoHtE-3clgkx4,4125
139
- sqlmesh/dbt/target.py,sha256=YFCqQPhPcMa_7chMoKTTwIYEqaERlDvNipEGPw2RmM4,40529
139
+ sqlmesh/dbt/target.py,sha256=vPxOFAWbtFpvdUit5qaFOLEQ7IKOoOvIzr2nxzs5DUE,40535
140
140
  sqlmesh/dbt/test.py,sha256=aOTKqYpVafff-TU4Xhbc9eZr6QAuFLMxIu_sV-18JLQ,8282
141
- sqlmesh/dbt/util.py,sha256=uDFgAXBRFTHNVLJdNhMASqOURe_1OH132AD97sMjj1E,774
141
+ sqlmesh/dbt/util.py,sha256=0HjMx86XOQGKR5gh84JtIjafxUbLGdpltwxvbtK86p0,844
142
142
  sqlmesh/engines/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
143
143
  sqlmesh/engines/commands.py,sha256=Fjy_seH1JL2EZxFNJBr0-eIaOn5PNY-JEb0nBbcr6Go,6094
144
144
  sqlmesh/engines/spark/__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.188.1.dev7.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
273
+ sqlmesh-0.188.1.dev9.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=SZAIyEMRTaAz5h63Jg1UPib6v2scbURBURXaYWbeels,5472
276
276
  web/client/dist/assets/Audits-yd9300pl.js,sha256=Vv7BcvM07rW2_89mRd0suy-0FuYGjDX4NI8dQTw7u5s,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.188.1.dev7.dist-info/METADATA,sha256=wVn3ufUjSd0LQ3CHHjN3Ek8MiRR9hvmDK9Ray6Pk9oc,26531
392
- sqlmesh-0.188.1.dev7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
393
- sqlmesh-0.188.1.dev7.dist-info/entry_points.txt,sha256=pIYKtg-u-uO7BK_Y0qrdmfyj0bYrcMc3Xiqr5WE3VFk,121
394
- sqlmesh-0.188.1.dev7.dist-info/top_level.txt,sha256=bspjo5vjELQkuN0qKuTFIbsrUt3Zeo8D2mlKeHG1LdE,12
395
- sqlmesh-0.188.1.dev7.dist-info/RECORD,,
391
+ sqlmesh-0.188.1.dev9.dist-info/METADATA,sha256=Gzfm6oZ-NzxB4r7YBmk0M-SC5q4BvKpfgGt_X0hNgs8,26531
392
+ sqlmesh-0.188.1.dev9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
393
+ sqlmesh-0.188.1.dev9.dist-info/entry_points.txt,sha256=pIYKtg-u-uO7BK_Y0qrdmfyj0bYrcMc3Xiqr5WE3VFk,121
394
+ sqlmesh-0.188.1.dev9.dist-info/top_level.txt,sha256=bspjo5vjELQkuN0qKuTFIbsrUt3Zeo8D2mlKeHG1LdE,12
395
+ sqlmesh-0.188.1.dev9.dist-info/RECORD,,