sqlmesh 0.209.1.dev34__py3-none-any.whl → 0.209.1.dev36__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/cli/main.py +8 -0
- sqlmesh/core/context.py +5 -0
- sqlmesh/core/plan/builder.py +4 -0
- sqlmesh/core/plan/definition.py +4 -0
- sqlmesh/core/plan/stages.py +1 -0
- sqlmesh/magics.py +7 -0
- {sqlmesh-0.209.1.dev34.dist-info → sqlmesh-0.209.1.dev36.dist-info}/METADATA +1 -1
- {sqlmesh-0.209.1.dev34.dist-info → sqlmesh-0.209.1.dev36.dist-info}/RECORD +13 -13
- {sqlmesh-0.209.1.dev34.dist-info → sqlmesh-0.209.1.dev36.dist-info}/WHEEL +0 -0
- {sqlmesh-0.209.1.dev34.dist-info → sqlmesh-0.209.1.dev36.dist-info}/entry_points.txt +0 -0
- {sqlmesh-0.209.1.dev34.dist-info → sqlmesh-0.209.1.dev36.dist-info}/licenses/LICENSE +0 -0
- {sqlmesh-0.209.1.dev34.dist-info → sqlmesh-0.209.1.dev36.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.209.1.
|
|
21
|
-
__version_tuple__ = version_tuple = (0, 209, 1, '
|
|
20
|
+
__version__ = version = '0.209.1.dev36'
|
|
21
|
+
__version_tuple__ = version_tuple = (0, 209, 1, 'dev36')
|
sqlmesh/cli/main.py
CHANGED
|
@@ -522,6 +522,12 @@ def diff(ctx: click.Context, environment: t.Optional[str] = None) -> None:
|
|
|
522
522
|
help="Explain the plan instead of applying it.",
|
|
523
523
|
default=None,
|
|
524
524
|
)
|
|
525
|
+
@click.option(
|
|
526
|
+
"--ignore-cron",
|
|
527
|
+
is_flag=True,
|
|
528
|
+
help="Run all missing intervals, ignoring individual cron schedules. Only applies if --run is set.",
|
|
529
|
+
default=None,
|
|
530
|
+
)
|
|
525
531
|
@click.option(
|
|
526
532
|
"--min-intervals",
|
|
527
533
|
default=0,
|
|
@@ -543,6 +549,7 @@ def plan(
|
|
|
543
549
|
select_models = kwargs.pop("select_model") or None
|
|
544
550
|
allow_destructive_models = kwargs.pop("allow_destructive_model") or None
|
|
545
551
|
backfill_models = kwargs.pop("backfill_model") or None
|
|
552
|
+
ignore_cron = kwargs.pop("ignore_cron") or None
|
|
546
553
|
setattr(get_console(), "verbosity", Verbosity(verbose))
|
|
547
554
|
|
|
548
555
|
context.plan(
|
|
@@ -551,6 +558,7 @@ def plan(
|
|
|
551
558
|
select_models=select_models,
|
|
552
559
|
allow_destructive_models=allow_destructive_models,
|
|
553
560
|
backfill_models=backfill_models,
|
|
561
|
+
ignore_cron=ignore_cron,
|
|
554
562
|
**kwargs,
|
|
555
563
|
)
|
|
556
564
|
|
sqlmesh/core/context.py
CHANGED
|
@@ -1290,6 +1290,7 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
1290
1290
|
diff_rendered: t.Optional[bool] = None,
|
|
1291
1291
|
skip_linter: t.Optional[bool] = None,
|
|
1292
1292
|
explain: t.Optional[bool] = None,
|
|
1293
|
+
ignore_cron: t.Optional[bool] = None,
|
|
1293
1294
|
min_intervals: t.Optional[int] = None,
|
|
1294
1295
|
) -> Plan:
|
|
1295
1296
|
"""Interactively creates a plan.
|
|
@@ -1367,6 +1368,7 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
1367
1368
|
diff_rendered=diff_rendered,
|
|
1368
1369
|
skip_linter=skip_linter,
|
|
1369
1370
|
explain=explain,
|
|
1371
|
+
ignore_cron=ignore_cron,
|
|
1370
1372
|
min_intervals=min_intervals,
|
|
1371
1373
|
)
|
|
1372
1374
|
|
|
@@ -1417,6 +1419,7 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
1417
1419
|
diff_rendered: t.Optional[bool] = None,
|
|
1418
1420
|
skip_linter: t.Optional[bool] = None,
|
|
1419
1421
|
explain: t.Optional[bool] = None,
|
|
1422
|
+
ignore_cron: t.Optional[bool] = None,
|
|
1420
1423
|
min_intervals: t.Optional[int] = None,
|
|
1421
1424
|
) -> PlanBuilder:
|
|
1422
1425
|
"""Creates a plan builder.
|
|
@@ -1590,6 +1593,7 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
1590
1593
|
max_interval_end_per_model = None
|
|
1591
1594
|
default_start, default_end = None, None
|
|
1592
1595
|
if not run:
|
|
1596
|
+
ignore_cron = False
|
|
1593
1597
|
max_interval_end_per_model = self._get_max_interval_end_per_model(
|
|
1594
1598
|
snapshots, backfill_models
|
|
1595
1599
|
)
|
|
@@ -1654,6 +1658,7 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
1654
1658
|
console=self.console,
|
|
1655
1659
|
user_provided_flags=user_provided_flags,
|
|
1656
1660
|
explain=explain or False,
|
|
1661
|
+
ignore_cron=ignore_cron or False,
|
|
1657
1662
|
)
|
|
1658
1663
|
|
|
1659
1664
|
def apply(
|
sqlmesh/core/plan/builder.py
CHANGED
|
@@ -89,6 +89,7 @@ class PlanBuilder:
|
|
|
89
89
|
the environment is not finalized.
|
|
90
90
|
start_override_per_model: A mapping of model FQNs to target start dates.
|
|
91
91
|
end_override_per_model: A mapping of model FQNs to target end dates.
|
|
92
|
+
ignore_cron: Whether to ignore the node's cron schedule when computing missing intervals.
|
|
92
93
|
explain: Whether to explain the plan instead of applying it.
|
|
93
94
|
"""
|
|
94
95
|
|
|
@@ -120,6 +121,7 @@ class PlanBuilder:
|
|
|
120
121
|
end_bounded: bool = False,
|
|
121
122
|
ensure_finalized_snapshots: bool = False,
|
|
122
123
|
explain: bool = False,
|
|
124
|
+
ignore_cron: bool = False,
|
|
123
125
|
start_override_per_model: t.Optional[t.Dict[str, datetime]] = None,
|
|
124
126
|
end_override_per_model: t.Optional[t.Dict[str, datetime]] = None,
|
|
125
127
|
console: t.Optional[PlanBuilderConsole] = None,
|
|
@@ -137,6 +139,7 @@ class PlanBuilder:
|
|
|
137
139
|
self._enable_preview = enable_preview
|
|
138
140
|
self._end_bounded = end_bounded
|
|
139
141
|
self._ensure_finalized_snapshots = ensure_finalized_snapshots
|
|
142
|
+
self._ignore_cron = ignore_cron
|
|
140
143
|
self._start_override_per_model = start_override_per_model
|
|
141
144
|
self._end_override_per_model = end_override_per_model
|
|
142
145
|
self._environment_ttl = environment_ttl
|
|
@@ -335,6 +338,7 @@ class PlanBuilder:
|
|
|
335
338
|
execution_time=plan_execution_time,
|
|
336
339
|
end_bounded=self._end_bounded,
|
|
337
340
|
ensure_finalized_snapshots=self._ensure_finalized_snapshots,
|
|
341
|
+
ignore_cron=self._ignore_cron,
|
|
338
342
|
user_provided_flags=self._user_provided_flags,
|
|
339
343
|
)
|
|
340
344
|
self._latest_plan = plan
|
sqlmesh/core/plan/definition.py
CHANGED
|
@@ -48,6 +48,7 @@ class Plan(PydanticModel, frozen=True):
|
|
|
48
48
|
end_bounded: bool
|
|
49
49
|
ensure_finalized_snapshots: bool
|
|
50
50
|
explain: bool
|
|
51
|
+
ignore_cron: bool = False
|
|
51
52
|
|
|
52
53
|
environment_ttl: t.Optional[str] = None
|
|
53
54
|
environment_naming_info: EnvironmentNamingInfo
|
|
@@ -181,6 +182,7 @@ class Plan(PydanticModel, frozen=True):
|
|
|
181
182
|
start_override_per_model=self.start_override_per_model,
|
|
182
183
|
end_override_per_model=self.end_override_per_model,
|
|
183
184
|
end_bounded=self.end_bounded,
|
|
185
|
+
ignore_cron=self.ignore_cron,
|
|
184
186
|
).items()
|
|
185
187
|
if snapshot.is_model and missing
|
|
186
188
|
]
|
|
@@ -259,6 +261,7 @@ class Plan(PydanticModel, frozen=True):
|
|
|
259
261
|
forward_only=self.forward_only,
|
|
260
262
|
end_bounded=self.end_bounded,
|
|
261
263
|
ensure_finalized_snapshots=self.ensure_finalized_snapshots,
|
|
264
|
+
ignore_cron=self.ignore_cron,
|
|
262
265
|
directly_modified_snapshots=sorted(self.directly_modified),
|
|
263
266
|
indirectly_modified_snapshots={
|
|
264
267
|
s.name: sorted(snapshot_ids) for s, snapshot_ids in self.indirectly_modified.items()
|
|
@@ -300,6 +303,7 @@ class EvaluatablePlan(PydanticModel):
|
|
|
300
303
|
forward_only: bool
|
|
301
304
|
end_bounded: bool
|
|
302
305
|
ensure_finalized_snapshots: bool
|
|
306
|
+
ignore_cron: bool = False
|
|
303
307
|
directly_modified_snapshots: t.List[SnapshotId]
|
|
304
308
|
indirectly_modified_snapshots: t.Dict[str, t.List[SnapshotId]]
|
|
305
309
|
metadata_updated_snapshots: t.List[SnapshotId]
|
sqlmesh/core/plan/stages.py
CHANGED
|
@@ -524,6 +524,7 @@ class PlanStagesBuilder:
|
|
|
524
524
|
},
|
|
525
525
|
deployability_index=deployability_index,
|
|
526
526
|
end_bounded=plan.end_bounded,
|
|
527
|
+
ignore_cron=plan.ignore_cron,
|
|
527
528
|
start_override_per_model=plan.start_override_per_model,
|
|
528
529
|
end_override_per_model=plan.end_override_per_model,
|
|
529
530
|
)
|
sqlmesh/magics.py
CHANGED
|
@@ -486,6 +486,12 @@ class SQLMeshMagics(Magics):
|
|
|
486
486
|
action="store_true",
|
|
487
487
|
help="Run latest intervals as part of the plan application (prod environment only).",
|
|
488
488
|
)
|
|
489
|
+
@argument(
|
|
490
|
+
"--ignore-cron",
|
|
491
|
+
action="store_true",
|
|
492
|
+
help="Run for all missing intervals, ignoring individual cron schedules. Only applies if --run is set.",
|
|
493
|
+
default=None,
|
|
494
|
+
)
|
|
489
495
|
@argument(
|
|
490
496
|
"--enable-preview",
|
|
491
497
|
action="store_true",
|
|
@@ -533,6 +539,7 @@ class SQLMeshMagics(Magics):
|
|
|
533
539
|
select_models=args.select_model,
|
|
534
540
|
no_diff=args.no_diff,
|
|
535
541
|
run=args.run,
|
|
542
|
+
ignore_cron=args.run,
|
|
536
543
|
enable_preview=args.enable_preview,
|
|
537
544
|
diff_rendered=args.diff_rendered,
|
|
538
545
|
)
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
sqlmesh/__init__.py,sha256=QjwaamJIdW7voXoS880yAx7tHm-Im4_mqGA-XJgafos,7631
|
|
2
|
-
sqlmesh/_version.py,sha256=
|
|
3
|
-
sqlmesh/magics.py,sha256=
|
|
2
|
+
sqlmesh/_version.py,sha256=naVObbCL61RZL0IHMc_iqfpFzjLQrDtVY-Vul76FNhg,530
|
|
3
|
+
sqlmesh/magics.py,sha256=xLh3u4eqpVrKRVN5KF3X84RPRqjygAB9AJP1TXwH8hg,42086
|
|
4
4
|
sqlmesh/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
5
|
sqlmesh/cicd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
6
|
sqlmesh/cicd/bot.py,sha256=2zlbn-DXkqQzr3lA0__IGU4XaIfXBXBKLWXNI2DRJX8,759
|
|
7
7
|
sqlmesh/cicd/config.py,sha256=mpgkisSBBovlNrNZir2unT8Wes6b38RW2UsU_o4e8vY,109
|
|
8
8
|
sqlmesh/cli/__init__.py,sha256=MAXAyO7isbyM-PaSdFjkJNcjn32WjOl0XzxT5gvp_vo,1690
|
|
9
|
-
sqlmesh/cli/main.py,sha256=
|
|
9
|
+
sqlmesh/cli/main.py,sha256=xRpcd3A5aO3mX3texhvdEA2wZFYyCitWceSeUc3vo_U,36668
|
|
10
10
|
sqlmesh/cli/options.py,sha256=8qEGWivk4urGikpEmaU9T8WsyaZtjCpmW4Ed25iQ73I,2543
|
|
11
11
|
sqlmesh/cli/project_init.py,sha256=5JmDmUK0WJs39hM-p76uzHYdo1Hnx6fKuJg_pR3Hn5A,16419
|
|
12
12
|
sqlmesh/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
13
13
|
sqlmesh/core/_typing.py,sha256=e1f7xO2aZCy38M_3VoDy-XI3shyd99-IFctgIFSgXWM,497
|
|
14
14
|
sqlmesh/core/console.py,sha256=KbIXoxt5hpDENEolY-DpBlPmcWtJ9vzEgF52mjG2jPE,165710
|
|
15
15
|
sqlmesh/core/constants.py,sha256=Wg6qApCRhENA1me7ELUS5GnArKlTBH-8192gQYKQnE8,2759
|
|
16
|
-
sqlmesh/core/context.py,sha256=
|
|
16
|
+
sqlmesh/core/context.py,sha256=6XBD3Bs1FFOTFZlGdcJbIhDn7mp8NzMC0F7wiV6heu0,127909
|
|
17
17
|
sqlmesh/core/context_diff.py,sha256=_Ur55fGLJ58Icsp44I4pVhdi7_JHiHq45mWIco9oFzk,21792
|
|
18
18
|
sqlmesh/core/dialect.py,sha256=wJ2cDoxz72LIRJ3iBZdCqtnKMbMUdIftl-AvbVldI28,52413
|
|
19
19
|
sqlmesh/core/environment.py,sha256=odus40R-YzdQdS_IiUq_tFouUXIhnpwmNwo8dE8Aw1k,13041
|
|
@@ -94,12 +94,12 @@ sqlmesh/core/model/meta.py,sha256=PCYfLMevlWExRHQtYs1H_158x3I5K-yUXbdjRzH2YQw,20
|
|
|
94
94
|
sqlmesh/core/model/schema.py,sha256=_HMYfzK9wWXh7_CQDIIGnuQUD4aiX3o5D2cRp2sERzc,3387
|
|
95
95
|
sqlmesh/core/model/seed.py,sha256=a0M-1zY1gOkN5ph2GQyataEdBSCtq50YjeFk2LyvInI,5058
|
|
96
96
|
sqlmesh/core/plan/__init__.py,sha256=NKSvM7ZBVjw9ho3J65M1wFvG3KURB8PJ0FHHLmtSF44,443
|
|
97
|
-
sqlmesh/core/plan/builder.py,sha256=
|
|
97
|
+
sqlmesh/core/plan/builder.py,sha256=hXdjPYP8HuG2Qjq9-KhX9918E--M7z-INn6bTrCCXTI,42392
|
|
98
98
|
sqlmesh/core/plan/common.py,sha256=xchdSb_XqQBu0S6OqnpeLBR5XB8Rmr9FRCfO_v4Tl50,768
|
|
99
|
-
sqlmesh/core/plan/definition.py,sha256=
|
|
99
|
+
sqlmesh/core/plan/definition.py,sha256=28hLSx5J122uEuxVhkqtIa-3gwe3ldYJAd_L-byqzbc,14167
|
|
100
100
|
sqlmesh/core/plan/evaluator.py,sha256=B8ugjmOze7uwAnFxO266u7E72IpJyK_VHHqTwLcCODs,21869
|
|
101
101
|
sqlmesh/core/plan/explainer.py,sha256=aBkvtM9eog_2NIglazSDdG_i9TTCdFSVOkCw5N8O-1k,12028
|
|
102
|
-
sqlmesh/core/plan/stages.py,sha256=
|
|
102
|
+
sqlmesh/core/plan/stages.py,sha256=CNStXehZLEFkouaTB-0vylovO_eNNIGqQUXix8pvglU,23785
|
|
103
103
|
sqlmesh/core/snapshot/__init__.py,sha256=Z5HTetNCZGoKF1WAKXk4LWL9dc8EC8lwS2O4TtoBmt4,1317
|
|
104
104
|
sqlmesh/core/snapshot/cache.py,sha256=bgqCR2hyf6r2A_8QP1EnXFK25gDX37-Zg0YeMuETWxg,3934
|
|
105
105
|
sqlmesh/core/snapshot/categorizer.py,sha256=qGG5870mu1jR2whKisSBH_GFbsyh96RnzJDgkN7DV9g,2482
|
|
@@ -292,7 +292,7 @@ sqlmesh/utils/pydantic.py,sha256=o_NsXbIpDqNpUA1Uc5xF0ZzoXQYYB0DfHwdRxBwXPNk,120
|
|
|
292
292
|
sqlmesh/utils/rich.py,sha256=cwQ5nJ6sgz64xHtoh6_ec7ReV5YpsOGhMtUJnwoRfEI,3549
|
|
293
293
|
sqlmesh/utils/windows.py,sha256=r7Yin4WEwbvH7sKA3hOJtRsclmscNuBeCklCfVPvtQs,611
|
|
294
294
|
sqlmesh/utils/yaml.py,sha256=hvo5lmybYLcIx4p6CQwufS8X4MbwS60lEBnCmYJCXmU,2336
|
|
295
|
-
sqlmesh-0.209.1.
|
|
295
|
+
sqlmesh-0.209.1.dev36.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
|
|
296
296
|
sqlmesh_dbt/__init__.py,sha256=awYS5y5mz-1NUmx6i5h5NSTJ7tidRl9NC0FAnFWSF6U,350
|
|
297
297
|
sqlmesh_dbt/cli.py,sha256=Ekn77WLMmyyr31aoDoWrZp5DS0rfiddy7pNohBK8G0s,2115
|
|
298
298
|
sqlmesh_dbt/console.py,sha256=1B0B5_R1DlrEkyWVDl8G78-B6_K-ZtLPsQEhqPCfLEU,188
|
|
@@ -414,8 +414,8 @@ web/server/api/endpoints/models.py,sha256=kwj0s7uve3iZSMfmjkoPVMFMeY1sD0peTeyrWf
|
|
|
414
414
|
web/server/api/endpoints/modules.py,sha256=8hqqgonGay_mJmpCw0IdbjsPhWlQH2VLdKAqha-myac,468
|
|
415
415
|
web/server/api/endpoints/plan.py,sha256=bbbY50W_2MsZSTxOHWMKz0tbIm75nsRSlPy8GI2fg9Q,9306
|
|
416
416
|
web/server/api/endpoints/table_diff.py,sha256=SCy3-pr5x6bEEiOaZGCDbiHQhpgxwmnz3Acqa2Ie6jI,2090
|
|
417
|
-
sqlmesh-0.209.1.
|
|
418
|
-
sqlmesh-0.209.1.
|
|
419
|
-
sqlmesh-0.209.1.
|
|
420
|
-
sqlmesh-0.209.1.
|
|
421
|
-
sqlmesh-0.209.1.
|
|
417
|
+
sqlmesh-0.209.1.dev36.dist-info/METADATA,sha256=GlXpToVp1WAKXGlo1666Yn7gufp-V9RpIIlEK22cLfM,26686
|
|
418
|
+
sqlmesh-0.209.1.dev36.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
419
|
+
sqlmesh-0.209.1.dev36.dist-info/entry_points.txt,sha256=sHAf6tQczIM8xZoduN4qaUjV7QEPVUUW_LCT8EDUMv4,155
|
|
420
|
+
sqlmesh-0.209.1.dev36.dist-info/top_level.txt,sha256=RQ-33FPe2IgL0rgossAfJkCRtqslz9b7wFARqiWLC5Q,24
|
|
421
|
+
sqlmesh-0.209.1.dev36.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|