sqlmesh 0.196.2.dev2__py3-none-any.whl → 0.196.3__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.196.2.dev2'
21
- __version_tuple__ = version_tuple = (0, 196, 2, 'dev2')
20
+ __version__ = version = '0.196.3'
21
+ __version_tuple__ = version_tuple = (0, 196, 3)
@@ -90,18 +90,18 @@ class MSSQLEngineAdapter(
90
90
 
91
91
  sql = (
92
92
  exp.select(
93
- "column_name",
94
- "data_type",
95
- "character_maximum_length",
96
- "numeric_precision",
97
- "numeric_scale",
93
+ "COLUMN_NAME",
94
+ "DATA_TYPE",
95
+ "CHARACTER_MAXIMUM_LENGTH",
96
+ "NUMERIC_PRECISION",
97
+ "NUMERIC_SCALE",
98
98
  )
99
- .from_("information_schema.columns")
100
- .where(f"table_name = '{table.name}'")
99
+ .from_("INFORMATION_SCHEMA.COLUMNS")
100
+ .where(f"TABLE_NAME = '{table.name}'")
101
101
  )
102
102
  database_name = table.db
103
103
  if database_name:
104
- sql = sql.where(f"table_schema = '{database_name}'")
104
+ sql = sql.where(f"TABLE_SCHEMA = '{database_name}'")
105
105
 
106
106
  columns_raw = self.fetchall(sql, quote_identifiers=True)
107
107
 
@@ -145,12 +145,12 @@ class MSSQLEngineAdapter(
145
145
 
146
146
  sql = (
147
147
  exp.select("1")
148
- .from_("information_schema.tables")
149
- .where(f"table_name = '{table.alias_or_name}'")
148
+ .from_("INFORMATION_SCHEMA.TABLES")
149
+ .where(f"TABLE_NAME = '{table.alias_or_name}'")
150
150
  )
151
151
  database_name = table.db
152
152
  if database_name:
153
- sql = sql.where(f"table_schema = '{database_name}'")
153
+ sql = sql.where(f"TABLE_SCHEMA = '{database_name}'")
154
154
 
155
155
  result = self.fetchone(sql, quote_identifiers=True)
156
156
 
sqlmesh/core/loader.py CHANGED
@@ -672,6 +672,7 @@ class SqlMeshLoader(Loader):
672
672
  default_catalog=self.context.default_catalog,
673
673
  infer_names=self.config.model_naming.infer_names,
674
674
  audit_definitions=audits,
675
+ signal_definitions=signals,
675
676
  default_catalog_per_gateway=self.context.default_catalog_per_gateway,
676
677
  ):
677
678
  if model.enabled:
@@ -9,6 +9,7 @@ from sqlglot import exp
9
9
  from sqlglot.dialects.dialect import DialectType
10
10
 
11
11
  from sqlmesh.core.macros import MacroRegistry
12
+ from sqlmesh.core.signal import SignalRegistry
12
13
  from sqlmesh.utils.jinja import JinjaMacroRegistry
13
14
  from sqlmesh.core import constants as c
14
15
  from sqlmesh.core.dialect import MacroFunc, parse_one
@@ -48,23 +49,24 @@ class model(registry_decorator):
48
49
  self.kwargs = kwargs
49
50
 
50
51
  # Make sure that argument values are expressions in order to pass validation in ModelMeta.
51
- calls = self.kwargs.pop("audits", [])
52
- self.kwargs["audits"] = [
53
- (
54
- (call, {})
55
- if isinstance(call, str)
56
- else (
57
- call[0],
58
- {
59
- arg_key: exp.convert(
60
- tuple(arg_value) if isinstance(arg_value, list) else arg_value
61
- )
62
- for arg_key, arg_value in call[1].items()
63
- },
52
+ for function_call_attribute in ("audits", "signals"):
53
+ calls = self.kwargs.pop(function_call_attribute, [])
54
+ self.kwargs[function_call_attribute] = [
55
+ (
56
+ (call, {})
57
+ if isinstance(call, str)
58
+ else (
59
+ call[0],
60
+ {
61
+ arg_key: exp.convert(
62
+ tuple(arg_value) if isinstance(arg_value, list) else arg_value
63
+ )
64
+ for arg_key, arg_value in call[1].items()
65
+ },
66
+ )
64
67
  )
65
- )
66
- for call in calls
67
- ]
68
+ for call in calls
69
+ ]
68
70
 
69
71
  if "default_catalog" in kwargs:
70
72
  raise ConfigError("`default_catalog` cannot be set on a per-model basis.")
@@ -142,6 +144,7 @@ class model(registry_decorator):
142
144
  defaults: t.Optional[t.Dict[str, t.Any]] = None,
143
145
  macros: t.Optional[MacroRegistry] = None,
144
146
  jinja_macros: t.Optional[JinjaMacroRegistry] = None,
147
+ signal_definitions: t.Optional[SignalRegistry] = None,
145
148
  audit_definitions: t.Optional[t.Dict[str, ModelAudit]] = None,
146
149
  dialect: t.Optional[str] = None,
147
150
  time_column_format: str = c.DEFAULT_TIME_COLUMN_FORMAT,
@@ -223,6 +226,7 @@ class model(registry_decorator):
223
226
  "macros": macros,
224
227
  "jinja_macros": jinja_macros,
225
228
  "audit_definitions": audit_definitions,
229
+ "signal_definitions": signal_definitions,
226
230
  "blueprint_variables": blueprint_variables,
227
231
  **rendered_fields,
228
232
  }
@@ -431,7 +431,11 @@ class PlanStagesBuilder:
431
431
  return PhysicalLayerUpdateStage(
432
432
  snapshots=self._get_snapshots_to_create(plan, snapshots),
433
433
  all_snapshots=snapshots,
434
- snapshots_with_missing_intervals={s.snapshot_id for s in snapshots_to_intervals},
434
+ snapshots_with_missing_intervals={
435
+ s.snapshot_id
436
+ for s in snapshots_to_intervals
437
+ if plan.is_selected_for_backfill(s.name)
438
+ },
435
439
  deployability_index=deployability_index,
436
440
  )
437
441
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlmesh
3
- Version: 0.196.2.dev2
3
+ Version: 0.196.3
4
4
  Summary: Next-generation data transformation framework
5
5
  Author-email: "TobikoData Inc." <engineering@tobikodata.com>
6
6
  License: Apache License
@@ -496,8 +496,7 @@ python -m venv .venv
496
496
  source .venv/bin/activate
497
497
  pip install 'sqlmesh[lsp]' # install the sqlmesh package with extensions to work with VSCode
498
498
  source .venv/bin/activate # reactivate the venv to ensure you're using the right installation
499
- sqlmesh init duckdb # get started right away with a local duckdb instance
500
- sqlmesh plan # see the plan for the changes you're making
499
+ sqlmesh init # follow the prompts to get started (choose DuckDB)
501
500
  ```
502
501
 
503
502
  </details>
@@ -514,13 +513,12 @@ python -m venv .venv
514
513
  .\.venv\Scripts\Activate.ps1
515
514
  pip install 'sqlmesh[lsp]' # install the sqlmesh package with extensions to work with VSCode
516
515
  .\.venv\Scripts\Activate.ps1 # reactivate the venv to ensure you're using the right installation
517
- sqlmesh init duckdb # get started right away with a local duckdb instance
518
- sqlmesh plan # see the plan for the changes you're making
516
+ sqlmesh init # follow the prompts to get started (choose DuckDB)
519
517
  ```
520
518
  </details>
521
519
 
522
520
 
523
- Follow the [quickstart guide](https://sqlmesh.readthedocs.io/en/stable/quickstart/cli/#1-create-the-sqlmesh-project) to learn how to use SQLMesh. You already have a head start!
521
+ Follow the [quickstart guide](https://sqlmesh.readthedocs.io/en/stable/quickstart/cli/) to learn how to use SQLMesh. You already have a head start!
524
522
 
525
523
  Follow the [crash course](https://sqlmesh.readthedocs.io/en/stable/examples/sqlmesh_cli_crash_course/) to learn the core movesets and use the easy to reference cheat sheet.
526
524
 
@@ -1,5 +1,5 @@
1
1
  sqlmesh/__init__.py,sha256=QjwaamJIdW7voXoS880yAx7tHm-Im4_mqGA-XJgafos,7631
2
- sqlmesh/_version.py,sha256=85Bmttj3t7p9B8t_80bVSpPPJ3tSrfiMNDzbvNFiXzg,528
2
+ sqlmesh/_version.py,sha256=-qTy4rT1btu7WwN56GsYeFrdgJbwicjgpo9ViS9d1q0,515
3
3
  sqlmesh/magics.py,sha256=nMfwSW5rIkdnyO9MXYm9u24hNl6dqgAWybC-MnRcNnE,41451
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=TCzM8egBE35DskpouOB-GQM2Qf5iUHWbRgiB5yZ6tzg,
18
18
  sqlmesh/core/dialect.py,sha256=h9bDZWbVs7SvIBGvlIAxqdWWFOwE2qzpzs7LwNQX7vc,49830
19
19
  sqlmesh/core/environment.py,sha256=7DbJX0r5nZRU3LhcgIxbSV-JosQYDjAt3V5Wc2Fpns8,13005
20
20
  sqlmesh/core/lineage.py,sha256=zjB0Zfamo2Fja2r5SSZPMbrEKTXr1WjozZPVqvxdybI,3143
21
- sqlmesh/core/loader.py,sha256=XVUd1UwK8jlJUaZdFBghSslipH2L80YVykjFzdGMCYA,40474
21
+ sqlmesh/core/loader.py,sha256=98lSZMe6pJUx1gHkLeMLkkxOG9wgRlIQlK-qvk9DWgc,40530
22
22
  sqlmesh/core/macros.py,sha256=L_UlI4kysfDiYYpv78kODZw8kYbC9-FdBx7nHm1hBjs,60584
23
23
  sqlmesh/core/node.py,sha256=r4_1MRTPcU0MAlwZ5KzrykLT58B7dkKvHzPCsJmEKD8,14497
24
24
  sqlmesh/core/notification_target.py,sha256=PPGoDrgbRKxr27vJEu03XqNTQLYTw0ZF_b0yAapxGeI,16158
@@ -66,7 +66,7 @@ sqlmesh/core/engine_adapter/clickhouse.py,sha256=LoPdm_s_s-ZxS1XJPA3Et0iOHeJ1Lgq
66
66
  sqlmesh/core/engine_adapter/databricks.py,sha256=8ZExPIeT3dDh9MTJW8udvmh9LiY-f9HkRAN1Q5Qebhs,14541
67
67
  sqlmesh/core/engine_adapter/duckdb.py,sha256=TlSFSWNzUfjGdhuMyCi1CLwhBaEKyNKtasub9OsYwrc,5199
68
68
  sqlmesh/core/engine_adapter/mixins.py,sha256=HMB0Z9O3p5jaTZMolKiWKqpVDZokf5GoI99YXwEJ8bc,22470
69
- sqlmesh/core/engine_adapter/mssql.py,sha256=hUmPUZFxo_TUdW41MraL5F78155NYEDpl-gA8ckO1nA,14250
69
+ sqlmesh/core/engine_adapter/mssql.py,sha256=_rnnhZMBzVTUMBZpm7RM3Nfo8KdpO6Imn4mAvfs96Es,14250
70
70
  sqlmesh/core/engine_adapter/mysql.py,sha256=lVC-siXZK3iSfqCmBjZNw8uy09Z8la8v8_oUZ-E2OwI,6966
71
71
  sqlmesh/core/engine_adapter/postgres.py,sha256=fdQrsBodfGlNf8lZYkS99U_gjoDyaYKEVKLgScduv3I,4601
72
72
  sqlmesh/core/engine_adapter/redshift.py,sha256=B4GsPggz-xyvBpx5qubvVwEeKF3vk7n5SMExL-Q5Ysw,16754
@@ -87,7 +87,7 @@ sqlmesh/core/metric/rewriter.py,sha256=GiSTHfn2kinqCfNPYgZPRk93JFLzVaaejHtHDQ0yX
87
87
  sqlmesh/core/model/__init__.py,sha256=C8GRZ53xuXEA9hQv3BQS9pNNyd9rZ06R_B96UYGhDu4,1644
88
88
  sqlmesh/core/model/cache.py,sha256=csun0RJguHzKX6-qITcOs4fVP4f8_Ts8qiUVV4sHY6Q,7869
89
89
  sqlmesh/core/model/common.py,sha256=PcQS3rHFNIXV_Z1dGwLQ7gLPbYVlrbWGGKAyc58-9Xk,17379
90
- sqlmesh/core/model/decorator.py,sha256=v_sVudNROGrtj5cZ3vgcOFnwPdzwoUGY6REAkQpIMQc,8927
90
+ sqlmesh/core/model/decorator.py,sha256=wUUg5t0K559tV9Pqt6FE2EWXt5TPGb4wF2Yg4B4hX4w,9251
91
91
  sqlmesh/core/model/definition.py,sha256=7s7Ordk4SItrZQJne59u9PgJ3c_vqI7u_VrTWhFjiSw,111120
92
92
  sqlmesh/core/model/kind.py,sha256=iTfkZIeZ5GfJvW8MpjSOAIXJo-RtS-6JhGmgGSt_Q8s,36143
93
93
  sqlmesh/core/model/meta.py,sha256=D9InI9M2-IXeb34vkXNQSLALL8xVXjZ_LXwI-Tqxm7I,21197
@@ -98,7 +98,7 @@ sqlmesh/core/plan/builder.py,sha256=9M8Bzf6SZ3nnawowvu0jHSVCCVblz3srevJoOS7ppkM,
98
98
  sqlmesh/core/plan/definition.py,sha256=OxgbvkMGNdlvYF2BjFJt_lINsBw38Fq1IX25P8_Z_Z0,13734
99
99
  sqlmesh/core/plan/evaluator.py,sha256=DkpJ78R33_RBx5MVY13CcGU0x2-EcKWkcrETsjuyn10,20484
100
100
  sqlmesh/core/plan/explainer.py,sha256=SD7L41x-E_s4Cvf37wbP_-pdCrxdUkfsRKbFRIvVPG0,11826
101
- sqlmesh/core/plan/stages.py,sha256=9BtcCgHYSvELrAkrOEhTuR1POAJNknLn_n4CmkqAC-4,21869
101
+ sqlmesh/core/plan/stages.py,sha256=5cvEbrQsw_cx1gayxwLRwkIehQPixrbUT9B4BbEOj3A,21972
102
102
  sqlmesh/core/snapshot/__init__.py,sha256=Z5HTetNCZGoKF1WAKXk4LWL9dc8EC8lwS2O4TtoBmt4,1317
103
103
  sqlmesh/core/snapshot/cache.py,sha256=bgqCR2hyf6r2A_8QP1EnXFK25gDX37-Zg0YeMuETWxg,3934
104
104
  sqlmesh/core/snapshot/categorizer.py,sha256=qGG5870mu1jR2whKisSBH_GFbsyh96RnzJDgkN7DV9g,2482
@@ -283,7 +283,7 @@ sqlmesh/utils/pydantic.py,sha256=I898jAFqa3qU6lG2uPpRebVFncOUo8ZrLWM_R3K3DHU,116
283
283
  sqlmesh/utils/rich.py,sha256=BpB47G0-JcU41LkGkeGKroexj4NOV5fox4-GOIXPgIc,3545
284
284
  sqlmesh/utils/windows.py,sha256=r7Yin4WEwbvH7sKA3hOJtRsclmscNuBeCklCfVPvtQs,611
285
285
  sqlmesh/utils/yaml.py,sha256=hvo5lmybYLcIx4p6CQwufS8X4MbwS60lEBnCmYJCXmU,2336
286
- sqlmesh-0.196.2.dev2.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
286
+ sqlmesh-0.196.3.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
287
287
  web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
288
288
  web/client/dist/index.html,sha256=drXwzSCEVDTMfaIwzJYjnT8Xk4c-Y4wNJz-CflUa_vY,5472
289
289
  web/client/dist/assets/Audits-DrNQaTQA.js,sha256=E8JF632bsRUm6LGtgXlyHrJOYQe5VW2CgRZPaZNKvgg,1041
@@ -401,8 +401,8 @@ web/server/api/endpoints/models.py,sha256=ud-lRwriyI_OYg9tZchrBgeiXELiRTLNEodraf
401
401
  web/server/api/endpoints/modules.py,sha256=8hqqgonGay_mJmpCw0IdbjsPhWlQH2VLdKAqha-myac,468
402
402
  web/server/api/endpoints/plan.py,sha256=OYuQ_4dgbhG9ibTcX1a8mvYgH3ANxw9Fhbb4wg6QWqc,9222
403
403
  web/server/api/endpoints/table_diff.py,sha256=SCy3-pr5x6bEEiOaZGCDbiHQhpgxwmnz3Acqa2Ie6jI,2090
404
- sqlmesh-0.196.2.dev2.dist-info/METADATA,sha256=QR9hhCxb7nL7lg278yM2DPnLRMyNG-l9k6l-s1O5K-w,26690
405
- sqlmesh-0.196.2.dev2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
406
- sqlmesh-0.196.2.dev2.dist-info/entry_points.txt,sha256=pIYKtg-u-uO7BK_Y0qrdmfyj0bYrcMc3Xiqr5WE3VFk,121
407
- sqlmesh-0.196.2.dev2.dist-info/top_level.txt,sha256=bspjo5vjELQkuN0qKuTFIbsrUt3Zeo8D2mlKeHG1LdE,12
408
- sqlmesh-0.196.2.dev2.dist-info/RECORD,,
404
+ sqlmesh-0.196.3.dist-info/METADATA,sha256=GEXExDIgFnxgLK07g1WC6ODk3eW3y1ByJe0oJ_XxlEo,26522
405
+ sqlmesh-0.196.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
406
+ sqlmesh-0.196.3.dist-info/entry_points.txt,sha256=pIYKtg-u-uO7BK_Y0qrdmfyj0bYrcMc3Xiqr5WE3VFk,121
407
+ sqlmesh-0.196.3.dist-info/top_level.txt,sha256=bspjo5vjELQkuN0qKuTFIbsrUt3Zeo8D2mlKeHG1LdE,12
408
+ sqlmesh-0.196.3.dist-info/RECORD,,