sqlmesh 0.201.1.dev2__py3-none-any.whl → 0.201.1.dev3__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/core/engine_adapter/base.py +14 -7
- sqlmesh/core/engine_adapter/trino.py +2 -0
- sqlmesh/core/plan/evaluator.py +6 -0
- sqlmesh/core/scheduler.py +9 -0
- sqlmesh/core/snapshot/evaluator.py +7 -0
- {sqlmesh-0.201.1.dev2.dist-info → sqlmesh-0.201.1.dev3.dist-info}/METADATA +1 -1
- {sqlmesh-0.201.1.dev2.dist-info → sqlmesh-0.201.1.dev3.dist-info}/RECORD +12 -12
- {sqlmesh-0.201.1.dev2.dist-info → sqlmesh-0.201.1.dev3.dist-info}/WHEEL +0 -0
- {sqlmesh-0.201.1.dev2.dist-info → sqlmesh-0.201.1.dev3.dist-info}/entry_points.txt +0 -0
- {sqlmesh-0.201.1.dev2.dist-info → sqlmesh-0.201.1.dev3.dist-info}/licenses/LICENSE +0 -0
- {sqlmesh-0.201.1.dev2.dist-info → sqlmesh-0.201.1.dev3.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.201.1.
|
|
21
|
-
__version_tuple__ = version_tuple = (0, 201, 1, '
|
|
20
|
+
__version__ = version = '0.201.1.dev3'
|
|
21
|
+
__version_tuple__ = version_tuple = (0, 201, 1, 'dev3')
|
|
@@ -1462,6 +1462,7 @@ class EngineAdapter:
|
|
|
1462
1462
|
table_description: t.Optional[str] = None,
|
|
1463
1463
|
column_descriptions: t.Optional[t.Dict[str, str]] = None,
|
|
1464
1464
|
truncate: bool = False,
|
|
1465
|
+
is_restatement: bool = False,
|
|
1465
1466
|
**kwargs: t.Any,
|
|
1466
1467
|
) -> None:
|
|
1467
1468
|
self._scd_type_2(
|
|
@@ -1478,6 +1479,7 @@ class EngineAdapter:
|
|
|
1478
1479
|
table_description=table_description,
|
|
1479
1480
|
column_descriptions=column_descriptions,
|
|
1480
1481
|
truncate=truncate,
|
|
1482
|
+
is_restatement=is_restatement,
|
|
1481
1483
|
**kwargs,
|
|
1482
1484
|
)
|
|
1483
1485
|
|
|
@@ -1496,6 +1498,7 @@ class EngineAdapter:
|
|
|
1496
1498
|
table_description: t.Optional[str] = None,
|
|
1497
1499
|
column_descriptions: t.Optional[t.Dict[str, str]] = None,
|
|
1498
1500
|
truncate: bool = False,
|
|
1501
|
+
is_restatement: bool = False,
|
|
1499
1502
|
**kwargs: t.Any,
|
|
1500
1503
|
) -> None:
|
|
1501
1504
|
self._scd_type_2(
|
|
@@ -1512,6 +1515,7 @@ class EngineAdapter:
|
|
|
1512
1515
|
table_description=table_description,
|
|
1513
1516
|
column_descriptions=column_descriptions,
|
|
1514
1517
|
truncate=truncate,
|
|
1518
|
+
is_restatement=is_restatement,
|
|
1515
1519
|
**kwargs,
|
|
1516
1520
|
)
|
|
1517
1521
|
|
|
@@ -1533,6 +1537,7 @@ class EngineAdapter:
|
|
|
1533
1537
|
table_description: t.Optional[str] = None,
|
|
1534
1538
|
column_descriptions: t.Optional[t.Dict[str, str]] = None,
|
|
1535
1539
|
truncate: bool = False,
|
|
1540
|
+
is_restatement: bool = False,
|
|
1536
1541
|
**kwargs: t.Any,
|
|
1537
1542
|
) -> None:
|
|
1538
1543
|
def remove_managed_columns(
|
|
@@ -1718,13 +1723,15 @@ class EngineAdapter:
|
|
|
1718
1723
|
target_table
|
|
1719
1724
|
)
|
|
1720
1725
|
|
|
1721
|
-
cleanup_ts = None
|
|
1722
1726
|
if truncate:
|
|
1723
1727
|
existing_rows_query = existing_rows_query.limit(0)
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
+
|
|
1729
|
+
# Only set cleanup_ts if is_restatement is True and truncate is False (this to enable full restatement)
|
|
1730
|
+
cleanup_ts = (
|
|
1731
|
+
to_time_column(start, time_data_type, self.dialect, nullable=True)
|
|
1732
|
+
if is_restatement and not truncate
|
|
1733
|
+
else None
|
|
1734
|
+
)
|
|
1728
1735
|
|
|
1729
1736
|
with source_queries[0] as source_query:
|
|
1730
1737
|
prefixed_columns_to_types = []
|
|
@@ -1763,7 +1770,7 @@ class EngineAdapter:
|
|
|
1763
1770
|
.with_(
|
|
1764
1771
|
"static",
|
|
1765
1772
|
existing_rows_query.where(valid_to_col.is_(exp.Null()).not_())
|
|
1766
|
-
if
|
|
1773
|
+
if cleanup_ts is None
|
|
1767
1774
|
else existing_rows_query.where(
|
|
1768
1775
|
exp.and_(
|
|
1769
1776
|
valid_to_col.is_(exp.Null().not_()),
|
|
@@ -1775,7 +1782,7 @@ class EngineAdapter:
|
|
|
1775
1782
|
.with_(
|
|
1776
1783
|
"latest",
|
|
1777
1784
|
existing_rows_query.where(valid_to_col.is_(exp.Null()))
|
|
1778
|
-
if
|
|
1785
|
+
if cleanup_ts is None
|
|
1779
1786
|
else exp.select(
|
|
1780
1787
|
*(
|
|
1781
1788
|
to_time_column(
|
|
@@ -267,6 +267,7 @@ class TrinoEngineAdapter(
|
|
|
267
267
|
table_description: t.Optional[str] = None,
|
|
268
268
|
column_descriptions: t.Optional[t.Dict[str, str]] = None,
|
|
269
269
|
truncate: bool = False,
|
|
270
|
+
is_restatement: bool = False,
|
|
270
271
|
**kwargs: t.Any,
|
|
271
272
|
) -> None:
|
|
272
273
|
if columns_to_types and self.current_catalog_type == "delta_lake":
|
|
@@ -289,6 +290,7 @@ class TrinoEngineAdapter(
|
|
|
289
290
|
table_description,
|
|
290
291
|
column_descriptions,
|
|
291
292
|
truncate,
|
|
293
|
+
is_restatement,
|
|
292
294
|
**kwargs,
|
|
293
295
|
)
|
|
294
296
|
|
sqlmesh/core/plan/evaluator.py
CHANGED
|
@@ -234,6 +234,11 @@ class BuiltInPlanEvaluator(PlanEvaluator):
|
|
|
234
234
|
return
|
|
235
235
|
|
|
236
236
|
scheduler = self.create_scheduler(stage.all_snapshots.values(), self.snapshot_evaluator)
|
|
237
|
+
# Convert model name restatements to snapshot ID restatements
|
|
238
|
+
restatements_by_snapshot_id = {
|
|
239
|
+
stage.all_snapshots[name].snapshot_id: interval
|
|
240
|
+
for name, interval in plan.restatements.items()
|
|
241
|
+
}
|
|
237
242
|
errors, _ = scheduler.run_merged_intervals(
|
|
238
243
|
merged_intervals=stage.snapshot_to_intervals,
|
|
239
244
|
deployability_index=stage.deployability_index,
|
|
@@ -242,6 +247,7 @@ class BuiltInPlanEvaluator(PlanEvaluator):
|
|
|
242
247
|
circuit_breaker=self._circuit_breaker,
|
|
243
248
|
start=plan.start,
|
|
244
249
|
end=plan.end,
|
|
250
|
+
restatements=restatements_by_snapshot_id,
|
|
245
251
|
)
|
|
246
252
|
if errors:
|
|
247
253
|
raise PlanError("Plan application failed.")
|
sqlmesh/core/scheduler.py
CHANGED
|
@@ -161,6 +161,7 @@ class Scheduler:
|
|
|
161
161
|
deployability_index: DeployabilityIndex,
|
|
162
162
|
batch_index: int,
|
|
163
163
|
environment_naming_info: t.Optional[EnvironmentNamingInfo] = None,
|
|
164
|
+
is_restatement: bool = False,
|
|
164
165
|
**kwargs: t.Any,
|
|
165
166
|
) -> t.List[AuditResult]:
|
|
166
167
|
"""Evaluate a snapshot and add the processed interval to the state sync.
|
|
@@ -192,6 +193,7 @@ class Scheduler:
|
|
|
192
193
|
snapshots=snapshots,
|
|
193
194
|
deployability_index=deployability_index,
|
|
194
195
|
batch_index=batch_index,
|
|
196
|
+
is_restatement=is_restatement,
|
|
195
197
|
**kwargs,
|
|
196
198
|
)
|
|
197
199
|
audit_results = self._audit_snapshot(
|
|
@@ -371,6 +373,7 @@ class Scheduler:
|
|
|
371
373
|
end: t.Optional[TimeLike] = None,
|
|
372
374
|
run_environment_statements: bool = False,
|
|
373
375
|
audit_only: bool = False,
|
|
376
|
+
restatements: t.Optional[t.Dict[SnapshotId, Interval]] = None,
|
|
374
377
|
) -> t.Tuple[t.List[NodeExecutionFailedError[SchedulingUnit]], t.List[SchedulingUnit]]:
|
|
375
378
|
"""Runs precomputed batches of missing intervals.
|
|
376
379
|
|
|
@@ -447,6 +450,10 @@ class Scheduler:
|
|
|
447
450
|
execution_time=execution_time,
|
|
448
451
|
)
|
|
449
452
|
else:
|
|
453
|
+
# Determine if this snapshot and interval is a restatement (for SCD type 2)
|
|
454
|
+
is_restatement = (
|
|
455
|
+
restatements is not None and snapshot.snapshot_id in restatements
|
|
456
|
+
)
|
|
450
457
|
audit_results = self.evaluate(
|
|
451
458
|
snapshot=snapshot,
|
|
452
459
|
environment_naming_info=environment_naming_info,
|
|
@@ -455,6 +462,7 @@ class Scheduler:
|
|
|
455
462
|
execution_time=execution_time,
|
|
456
463
|
deployability_index=deployability_index,
|
|
457
464
|
batch_index=batch_idx,
|
|
465
|
+
is_restatement=is_restatement,
|
|
458
466
|
)
|
|
459
467
|
|
|
460
468
|
evaluation_duration_ms = now_timestamp() - execution_start_ts
|
|
@@ -663,6 +671,7 @@ class Scheduler:
|
|
|
663
671
|
end=end,
|
|
664
672
|
run_environment_statements=run_environment_statements,
|
|
665
673
|
audit_only=audit_only,
|
|
674
|
+
restatements=remove_intervals,
|
|
666
675
|
)
|
|
667
676
|
|
|
668
677
|
return CompletionStatus.FAILURE if errors else CompletionStatus.SUCCESS
|
|
@@ -140,6 +140,7 @@ class SnapshotEvaluator:
|
|
|
140
140
|
snapshots: t.Dict[str, Snapshot],
|
|
141
141
|
deployability_index: t.Optional[DeployabilityIndex] = None,
|
|
142
142
|
batch_index: int = 0,
|
|
143
|
+
is_restatement: bool = False,
|
|
143
144
|
**kwargs: t.Any,
|
|
144
145
|
) -> t.Optional[str]:
|
|
145
146
|
"""Renders the snapshot's model, executes it and stores the result in the snapshot's physical table.
|
|
@@ -165,6 +166,7 @@ class SnapshotEvaluator:
|
|
|
165
166
|
snapshots,
|
|
166
167
|
deployability_index=deployability_index,
|
|
167
168
|
batch_index=batch_index,
|
|
169
|
+
is_restatement=is_restatement,
|
|
168
170
|
**kwargs,
|
|
169
171
|
)
|
|
170
172
|
if result is None or isinstance(result, str):
|
|
@@ -622,6 +624,7 @@ class SnapshotEvaluator:
|
|
|
622
624
|
limit: t.Optional[int] = None,
|
|
623
625
|
deployability_index: t.Optional[DeployabilityIndex] = None,
|
|
624
626
|
batch_index: int = 0,
|
|
627
|
+
is_restatement: bool = False,
|
|
625
628
|
**kwargs: t.Any,
|
|
626
629
|
) -> DF | str | None:
|
|
627
630
|
"""Renders the snapshot's model and executes it. The return value depends on whether the limit was specified.
|
|
@@ -694,6 +697,7 @@ class SnapshotEvaluator:
|
|
|
694
697
|
end=end,
|
|
695
698
|
execution_time=execution_time,
|
|
696
699
|
physical_properties=rendered_physical_properties,
|
|
700
|
+
is_restatement=is_restatement,
|
|
697
701
|
)
|
|
698
702
|
else:
|
|
699
703
|
logger.info(
|
|
@@ -715,6 +719,7 @@ class SnapshotEvaluator:
|
|
|
715
719
|
end=end,
|
|
716
720
|
execution_time=execution_time,
|
|
717
721
|
physical_properties=rendered_physical_properties,
|
|
722
|
+
is_restatement=is_restatement,
|
|
718
723
|
)
|
|
719
724
|
|
|
720
725
|
with (
|
|
@@ -1833,6 +1838,7 @@ class SCDType2Strategy(MaterializableStrategy):
|
|
|
1833
1838
|
column_descriptions=model.column_descriptions,
|
|
1834
1839
|
truncate=is_first_insert,
|
|
1835
1840
|
start=kwargs["start"],
|
|
1841
|
+
is_restatement=kwargs.get("is_restatement", False),
|
|
1836
1842
|
)
|
|
1837
1843
|
elif isinstance(model.kind, SCDType2ByColumnKind):
|
|
1838
1844
|
self.adapter.scd_type_2_by_column(
|
|
@@ -1851,6 +1857,7 @@ class SCDType2Strategy(MaterializableStrategy):
|
|
|
1851
1857
|
column_descriptions=model.column_descriptions,
|
|
1852
1858
|
truncate=is_first_insert,
|
|
1853
1859
|
start=kwargs["start"],
|
|
1860
|
+
is_restatement=kwargs.get("is_restatement", False),
|
|
1854
1861
|
)
|
|
1855
1862
|
else:
|
|
1856
1863
|
raise SQLMeshError(
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
sqlmesh/__init__.py,sha256=QjwaamJIdW7voXoS880yAx7tHm-Im4_mqGA-XJgafos,7631
|
|
2
|
-
sqlmesh/_version.py,sha256=
|
|
2
|
+
sqlmesh/_version.py,sha256=1tTr8NASXh9g0FtenQtx6UvZoEwK-N9sry6pOINtvwU,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
|
|
@@ -24,7 +24,7 @@ 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
26
|
sqlmesh/core/renderer.py,sha256=SVE1THHK1UVdPPHjmqNbBVIjmEYcK8tz5pWh1ss8xGs,26684
|
|
27
|
-
sqlmesh/core/scheduler.py,sha256=
|
|
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=lvrI9k7hr1P4X4E6t3U-KrcuvdQuw0UdNlN90P2s52w,3563
|
|
30
30
|
sqlmesh/core/selector.py,sha256=CBuCbaFzidinaoS66o4MY9F-1C3k9YddNMyUv-5Z2i8,12815
|
|
@@ -59,7 +59,7 @@ sqlmesh/core/config/ui.py,sha256=jsO-S6_d9NkLZGG5pT4mgKgxMF34KzkDociZAMvCX3U,278
|
|
|
59
59
|
sqlmesh/core/engine_adapter/__init__.py,sha256=two_WTs4UnSNp-fscJh8vOunJq0Xi37EuDuMjKsKuNE,2281
|
|
60
60
|
sqlmesh/core/engine_adapter/_typing.py,sha256=_63pYCThfC39UtPVHY3N0H6qJ1YBT32OqwwR3swolGM,1037
|
|
61
61
|
sqlmesh/core/engine_adapter/athena.py,sha256=AS1w_l_VrFZsc2CIicElg1dtS9y6q5hHHmTg4ECH-xs,26453
|
|
62
|
-
sqlmesh/core/engine_adapter/base.py,sha256=
|
|
62
|
+
sqlmesh/core/engine_adapter/base.py,sha256=QUHO4z-5IibBD1pKPfYr04yTroDZ4katsV-GHUmFC-Y,104590
|
|
63
63
|
sqlmesh/core/engine_adapter/base_postgres.py,sha256=DOsOdCJyQAVfA9S0GznuH0J1bonMqYVP_yJLDYcxFYM,6772
|
|
64
64
|
sqlmesh/core/engine_adapter/bigquery.py,sha256=hkEbCiWYy6qS9VHwOZ67yn1t50apWOoV8mn2tetjIVE,50809
|
|
65
65
|
sqlmesh/core/engine_adapter/clickhouse.py,sha256=LoPdm_s_s-ZxS1XJPA3Et0iOHeJ1LgqTAFbwBdiqE7A,34912
|
|
@@ -74,7 +74,7 @@ sqlmesh/core/engine_adapter/risingwave.py,sha256=GY0u085TWerl8kTRNJpEutdD5FBsoPi
|
|
|
74
74
|
sqlmesh/core/engine_adapter/shared.py,sha256=zL2W2t9af9mo80aSO0fz5TqV6mY8_kI5VYLswbKdZyk,13369
|
|
75
75
|
sqlmesh/core/engine_adapter/snowflake.py,sha256=IEEzepxNpfqBIMe4ziz2k8fjOcJPeQPZyM3XljymAj0,28874
|
|
76
76
|
sqlmesh/core/engine_adapter/spark.py,sha256=sYkVOPS0X43UPbI0z7Hh_EpKlI36qkOcr4NNFOTQlLs,21045
|
|
77
|
-
sqlmesh/core/engine_adapter/trino.py,sha256=
|
|
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=pXDxl8TxTGNuVc1B5ywYmaH7dDjsoMRvCtLCK_co-ek,5567
|
|
80
80
|
sqlmesh/core/linter/helpers.py,sha256=ygumMRAShxHITK_5vI64tHJoEa2mAdKen5hlMxaXKoQ,5022
|
|
@@ -96,14 +96,14 @@ sqlmesh/core/model/seed.py,sha256=a0M-1zY1gOkN5ph2GQyataEdBSCtq50YjeFk2LyvInI,50
|
|
|
96
96
|
sqlmesh/core/plan/__init__.py,sha256=NKSvM7ZBVjw9ho3J65M1wFvG3KURB8PJ0FHHLmtSF44,443
|
|
97
97
|
sqlmesh/core/plan/builder.py,sha256=TQVSGiGbQi9tro0tBlcL2f5BEvyOYNiLuB3yz8PRUzA,41859
|
|
98
98
|
sqlmesh/core/plan/definition.py,sha256=yrX_uZMXi29ltkuowWhNUOi1kd0Uq0TQoM574EI6JHo,14019
|
|
99
|
-
sqlmesh/core/plan/evaluator.py,sha256=
|
|
99
|
+
sqlmesh/core/plan/evaluator.py,sha256=KOBZD9-hn1vVpFR9WGSIu2gt-C66R6--bwA6GxgNick,21821
|
|
100
100
|
sqlmesh/core/plan/explainer.py,sha256=aBkvtM9eog_2NIglazSDdG_i9TTCdFSVOkCw5N8O-1k,12028
|
|
101
101
|
sqlmesh/core/plan/stages.py,sha256=JN7rwo6ibY5Ctqof3Us7Eu2x85n5GXH0rCA47BBvP1o,22228
|
|
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
|
|
105
105
|
sqlmesh/core/snapshot/definition.py,sha256=DwYTNcDfPQUQ1osF_63SdicSj7oqVjtmPPEzqwsxDLU,85748
|
|
106
|
-
sqlmesh/core/snapshot/evaluator.py,sha256=
|
|
106
|
+
sqlmesh/core/snapshot/evaluator.py,sha256=9l73YNKTEu9N91JTSxnxLqQo-lAaX6ihPxVNi4wUfFQ,91846
|
|
107
107
|
sqlmesh/core/state_sync/__init__.py,sha256=B60xj-_Xk-4jas3UphLvwkuf04G-9AyGckcblXE0aRg,869
|
|
108
108
|
sqlmesh/core/state_sync/base.py,sha256=AdqWmbhnvRFqVcFK6L01uCvpBVAYGuMrm4P0D3u_NaU,18334
|
|
109
109
|
sqlmesh/core/state_sync/cache.py,sha256=0AsYdQyBqbLdJvkBQ-hDAipsvnn_jSps-nya-Q4XeL0,5337
|
|
@@ -284,7 +284,7 @@ sqlmesh/utils/pydantic.py,sha256=o_NsXbIpDqNpUA1Uc5xF0ZzoXQYYB0DfHwdRxBwXPNk,120
|
|
|
284
284
|
sqlmesh/utils/rich.py,sha256=cwQ5nJ6sgz64xHtoh6_ec7ReV5YpsOGhMtUJnwoRfEI,3549
|
|
285
285
|
sqlmesh/utils/windows.py,sha256=r7Yin4WEwbvH7sKA3hOJtRsclmscNuBeCklCfVPvtQs,611
|
|
286
286
|
sqlmesh/utils/yaml.py,sha256=hvo5lmybYLcIx4p6CQwufS8X4MbwS60lEBnCmYJCXmU,2336
|
|
287
|
-
sqlmesh-0.201.1.
|
|
287
|
+
sqlmesh-0.201.1.dev3.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
|
|
288
288
|
web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
289
289
|
web/client/dist/index.html,sha256=DAv6ABGogw4xRLb0T_92WP_S7XWyqVhwBgGKWtuQwU4,5472
|
|
290
290
|
web/client/dist/assets/Audits-BuHAmFO8.js,sha256=zbYUF6WdUGMbnMm01GMNPb7xAJwj-o5wMdL56vPo2qE,1041
|
|
@@ -402,8 +402,8 @@ web/server/api/endpoints/models.py,sha256=kwj0s7uve3iZSMfmjkoPVMFMeY1sD0peTeyrWf
|
|
|
402
402
|
web/server/api/endpoints/modules.py,sha256=8hqqgonGay_mJmpCw0IdbjsPhWlQH2VLdKAqha-myac,468
|
|
403
403
|
web/server/api/endpoints/plan.py,sha256=bbbY50W_2MsZSTxOHWMKz0tbIm75nsRSlPy8GI2fg9Q,9306
|
|
404
404
|
web/server/api/endpoints/table_diff.py,sha256=SCy3-pr5x6bEEiOaZGCDbiHQhpgxwmnz3Acqa2Ie6jI,2090
|
|
405
|
-
sqlmesh-0.201.1.
|
|
406
|
-
sqlmesh-0.201.1.
|
|
407
|
-
sqlmesh-0.201.1.
|
|
408
|
-
sqlmesh-0.201.1.
|
|
409
|
-
sqlmesh-0.201.1.
|
|
405
|
+
sqlmesh-0.201.1.dev3.dist-info/METADATA,sha256=XGPAejnoSVf067feuPqNfZeRZvbU29oMrREeTSD7QVo,26678
|
|
406
|
+
sqlmesh-0.201.1.dev3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
407
|
+
sqlmesh-0.201.1.dev3.dist-info/entry_points.txt,sha256=pIYKtg-u-uO7BK_Y0qrdmfyj0bYrcMc3Xiqr5WE3VFk,121
|
|
408
|
+
sqlmesh-0.201.1.dev3.dist-info/top_level.txt,sha256=bspjo5vjELQkuN0qKuTFIbsrUt3Zeo8D2mlKeHG1LdE,12
|
|
409
|
+
sqlmesh-0.201.1.dev3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|