sqlmesh 0.198.1.dev11__py3-none-any.whl → 0.198.1.dev12__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/config/scheduler.py +1 -0
- sqlmesh/core/context.py +19 -36
- sqlmesh/core/plan/evaluator.py +2 -4
- sqlmesh/core/plan/explainer.py +0 -2
- {sqlmesh-0.198.1.dev11.dist-info → sqlmesh-0.198.1.dev12.dist-info}/METADATA +1 -1
- {sqlmesh-0.198.1.dev11.dist-info → sqlmesh-0.198.1.dev12.dist-info}/RECORD +11 -11
- {sqlmesh-0.198.1.dev11.dist-info → sqlmesh-0.198.1.dev12.dist-info}/WHEEL +0 -0
- {sqlmesh-0.198.1.dev11.dist-info → sqlmesh-0.198.1.dev12.dist-info}/entry_points.txt +0 -0
- {sqlmesh-0.198.1.dev11.dist-info → sqlmesh-0.198.1.dev12.dist-info}/licenses/LICENSE +0 -0
- {sqlmesh-0.198.1.dev11.dist-info → sqlmesh-0.198.1.dev12.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.198.1.
|
|
21
|
-
__version_tuple__ = version_tuple = (0, 198, 1, '
|
|
20
|
+
__version__ = version = '0.198.1.dev12'
|
|
21
|
+
__version_tuple__ = version_tuple = (0, 198, 1, 'dev12')
|
sqlmesh/core/config/scheduler.py
CHANGED
|
@@ -130,6 +130,7 @@ class BuiltInSchedulerConfig(_EngineAdapterStateSyncSchedulerConfig, BaseConfig)
|
|
|
130
130
|
def create_plan_evaluator(self, context: GenericContext) -> PlanEvaluator:
|
|
131
131
|
return BuiltInPlanEvaluator(
|
|
132
132
|
state_sync=context.state_sync,
|
|
133
|
+
snapshot_evaluator=context.snapshot_evaluator,
|
|
133
134
|
create_scheduler=context.create_scheduler,
|
|
134
135
|
default_catalog=context.default_catalog,
|
|
135
136
|
console=context.console,
|
sqlmesh/core/context.py
CHANGED
|
@@ -116,7 +116,7 @@ from sqlmesh.core.test import (
|
|
|
116
116
|
run_tests,
|
|
117
117
|
)
|
|
118
118
|
from sqlmesh.core.user import User
|
|
119
|
-
from sqlmesh.utils import UniqueKeyDict, Verbosity
|
|
119
|
+
from sqlmesh.utils import UniqueKeyDict, Verbosity
|
|
120
120
|
from sqlmesh.utils.concurrency import concurrent_apply_to_values
|
|
121
121
|
from sqlmesh.utils.dag import DAG
|
|
122
122
|
from sqlmesh.utils.date import (
|
|
@@ -417,7 +417,7 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
417
417
|
self.config.get_state_connection(self.gateway) or self.connection_config
|
|
418
418
|
)
|
|
419
419
|
|
|
420
|
-
self.
|
|
420
|
+
self._snapshot_evaluator: t.Optional[SnapshotEvaluator] = None
|
|
421
421
|
|
|
422
422
|
self.console = get_console()
|
|
423
423
|
setattr(self.console, "dialect", self.config.dialect)
|
|
@@ -445,22 +445,18 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
445
445
|
self._engine_adapter = self.connection_config.create_engine_adapter()
|
|
446
446
|
return self._engine_adapter
|
|
447
447
|
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
if correlation_id not in self._snapshot_evaluators:
|
|
453
|
-
self._snapshot_evaluators[correlation_id] = SnapshotEvaluator(
|
|
448
|
+
@property
|
|
449
|
+
def snapshot_evaluator(self) -> SnapshotEvaluator:
|
|
450
|
+
if not self._snapshot_evaluator:
|
|
451
|
+
self._snapshot_evaluator = SnapshotEvaluator(
|
|
454
452
|
{
|
|
455
|
-
gateway: adapter.with_settings(
|
|
456
|
-
log_level=logging.INFO, correlation_id=correlation_id
|
|
457
|
-
)
|
|
453
|
+
gateway: adapter.with_settings(log_level=logging.INFO)
|
|
458
454
|
for gateway, adapter in self.engine_adapters.items()
|
|
459
455
|
},
|
|
460
456
|
ddl_concurrent_tasks=self.concurrent_tasks,
|
|
461
457
|
selected_gateway=self.selected_gateway,
|
|
462
458
|
)
|
|
463
|
-
return self.
|
|
459
|
+
return self._snapshot_evaluator
|
|
464
460
|
|
|
465
461
|
def execution_context(
|
|
466
462
|
self,
|
|
@@ -541,9 +537,7 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
541
537
|
|
|
542
538
|
return self.create_scheduler(snapshots)
|
|
543
539
|
|
|
544
|
-
def create_scheduler(
|
|
545
|
-
self, snapshots: t.Iterable[Snapshot], correlation_id: t.Optional[CorrelationId] = None
|
|
546
|
-
) -> Scheduler:
|
|
540
|
+
def create_scheduler(self, snapshots: t.Iterable[Snapshot]) -> Scheduler:
|
|
547
541
|
"""Creates the built-in scheduler.
|
|
548
542
|
|
|
549
543
|
Args:
|
|
@@ -554,7 +548,7 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
554
548
|
"""
|
|
555
549
|
return Scheduler(
|
|
556
550
|
snapshots,
|
|
557
|
-
self.snapshot_evaluator
|
|
551
|
+
self.snapshot_evaluator,
|
|
558
552
|
self.state_sync,
|
|
559
553
|
default_catalog=self.default_catalog,
|
|
560
554
|
max_workers=self.concurrent_tasks,
|
|
@@ -719,7 +713,7 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
719
713
|
NotificationEvent.RUN_START, environment=environment
|
|
720
714
|
)
|
|
721
715
|
analytics_run_id = analytics.collector.on_run_start(
|
|
722
|
-
engine_type=self.snapshot_evaluator
|
|
716
|
+
engine_type=self.snapshot_evaluator.adapter.dialect,
|
|
723
717
|
state_sync_type=self.state_sync.state_type(),
|
|
724
718
|
)
|
|
725
719
|
self._load_materializations()
|
|
@@ -1081,7 +1075,7 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
1081
1075
|
and not parent_snapshot.categorized
|
|
1082
1076
|
]
|
|
1083
1077
|
|
|
1084
|
-
df = self.snapshot_evaluator
|
|
1078
|
+
df = self.snapshot_evaluator.evaluate_and_fetch(
|
|
1085
1079
|
snapshot,
|
|
1086
1080
|
start=start,
|
|
1087
1081
|
end=end,
|
|
@@ -1593,12 +1587,7 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
1593
1587
|
default_catalog=self.default_catalog,
|
|
1594
1588
|
console=self.console,
|
|
1595
1589
|
)
|
|
1596
|
-
explainer.evaluate(
|
|
1597
|
-
plan.to_evaluatable(),
|
|
1598
|
-
snapshot_evaluator=self.snapshot_evaluator(
|
|
1599
|
-
correlation_id=CorrelationId.from_plan_id(plan.plan_id)
|
|
1600
|
-
),
|
|
1601
|
-
)
|
|
1590
|
+
explainer.evaluate(plan.to_evaluatable())
|
|
1602
1591
|
return
|
|
1603
1592
|
|
|
1604
1593
|
self.notification_target_manager.notify(
|
|
@@ -2121,7 +2110,7 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
2121
2110
|
errors = []
|
|
2122
2111
|
skipped_count = 0
|
|
2123
2112
|
for snapshot in snapshots:
|
|
2124
|
-
for audit_result in self.snapshot_evaluator
|
|
2113
|
+
for audit_result in self.snapshot_evaluator.audit(
|
|
2125
2114
|
snapshot=snapshot,
|
|
2126
2115
|
start=start,
|
|
2127
2116
|
end=end,
|
|
@@ -2153,7 +2142,7 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
2153
2142
|
self.console.log_status_update(f"Got {error.count} results, expected 0.")
|
|
2154
2143
|
if error.query:
|
|
2155
2144
|
self.console.show_sql(
|
|
2156
|
-
f"{error.query.sql(dialect=self.snapshot_evaluator
|
|
2145
|
+
f"{error.query.sql(dialect=self.snapshot_evaluator.adapter.dialect)}"
|
|
2157
2146
|
)
|
|
2158
2147
|
|
|
2159
2148
|
self.console.log_status_update("Done.")
|
|
@@ -2345,14 +2334,12 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
2345
2334
|
|
|
2346
2335
|
def close(self) -> None:
|
|
2347
2336
|
"""Releases all resources allocated by this context."""
|
|
2348
|
-
|
|
2349
|
-
|
|
2337
|
+
if self._snapshot_evaluator:
|
|
2338
|
+
self._snapshot_evaluator.close()
|
|
2350
2339
|
|
|
2351
2340
|
if self._state_sync:
|
|
2352
2341
|
self._state_sync.close()
|
|
2353
2342
|
|
|
2354
|
-
self._snapshot_evaluators.clear()
|
|
2355
|
-
|
|
2356
2343
|
def _run(
|
|
2357
2344
|
self,
|
|
2358
2345
|
environment: str,
|
|
@@ -2403,11 +2390,7 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
2403
2390
|
|
|
2404
2391
|
def _apply(self, plan: Plan, circuit_breaker: t.Optional[t.Callable[[], bool]]) -> None:
|
|
2405
2392
|
self._scheduler.create_plan_evaluator(self).evaluate(
|
|
2406
|
-
plan.to_evaluatable(),
|
|
2407
|
-
snapshot_evaluator=self.snapshot_evaluator(
|
|
2408
|
-
correlation_id=CorrelationId.from_plan_id(plan.plan_id)
|
|
2409
|
-
),
|
|
2410
|
-
circuit_breaker=circuit_breaker,
|
|
2393
|
+
plan.to_evaluatable(), circuit_breaker=circuit_breaker
|
|
2411
2394
|
)
|
|
2412
2395
|
|
|
2413
2396
|
@python_api_analytics
|
|
@@ -2700,7 +2683,7 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
2700
2683
|
)
|
|
2701
2684
|
|
|
2702
2685
|
# Remove the expired snapshots tables
|
|
2703
|
-
self.snapshot_evaluator
|
|
2686
|
+
self.snapshot_evaluator.cleanup(
|
|
2704
2687
|
target_snapshots=cleanup_targets,
|
|
2705
2688
|
on_complete=self.console.update_cleanup_progress,
|
|
2706
2689
|
)
|
sqlmesh/core/plan/evaluator.py
CHANGED
|
@@ -51,7 +51,6 @@ class PlanEvaluator(abc.ABC):
|
|
|
51
51
|
def evaluate(
|
|
52
52
|
self,
|
|
53
53
|
plan: EvaluatablePlan,
|
|
54
|
-
snapshot_evaluator: SnapshotEvaluator,
|
|
55
54
|
circuit_breaker: t.Optional[t.Callable[[], bool]] = None,
|
|
56
55
|
) -> None:
|
|
57
56
|
"""Evaluates a plan by pushing snapshots and backfilling data.
|
|
@@ -63,7 +62,6 @@ class PlanEvaluator(abc.ABC):
|
|
|
63
62
|
|
|
64
63
|
Args:
|
|
65
64
|
plan: The plan to evaluate.
|
|
66
|
-
snapshot_evaluator: The snapshot evaluator to use.
|
|
67
65
|
circuit_breaker: The circuit breaker to use.
|
|
68
66
|
"""
|
|
69
67
|
|
|
@@ -72,11 +70,13 @@ class BuiltInPlanEvaluator(PlanEvaluator):
|
|
|
72
70
|
def __init__(
|
|
73
71
|
self,
|
|
74
72
|
state_sync: StateSync,
|
|
73
|
+
snapshot_evaluator: SnapshotEvaluator,
|
|
75
74
|
create_scheduler: t.Callable[[t.Iterable[Snapshot]], Scheduler],
|
|
76
75
|
default_catalog: t.Optional[str],
|
|
77
76
|
console: t.Optional[Console] = None,
|
|
78
77
|
):
|
|
79
78
|
self.state_sync = state_sync
|
|
79
|
+
self.snapshot_evaluator = snapshot_evaluator
|
|
80
80
|
self.create_scheduler = create_scheduler
|
|
81
81
|
self.default_catalog = default_catalog
|
|
82
82
|
self.console = console or get_console()
|
|
@@ -85,11 +85,9 @@ class BuiltInPlanEvaluator(PlanEvaluator):
|
|
|
85
85
|
def evaluate(
|
|
86
86
|
self,
|
|
87
87
|
plan: EvaluatablePlan,
|
|
88
|
-
snapshot_evaluator: SnapshotEvaluator,
|
|
89
88
|
circuit_breaker: t.Optional[t.Callable[[], bool]] = None,
|
|
90
89
|
) -> None:
|
|
91
90
|
self._circuit_breaker = circuit_breaker
|
|
92
|
-
self.snapshot_evaluator = snapshot_evaluator
|
|
93
91
|
|
|
94
92
|
self.console.start_plan_evaluation(plan)
|
|
95
93
|
analytics.collector.on_plan_apply_start(
|
sqlmesh/core/plan/explainer.py
CHANGED
|
@@ -20,7 +20,6 @@ from sqlmesh.core.snapshot.definition import (
|
|
|
20
20
|
from sqlmesh.utils import Verbosity, rich as srich, to_snake_case
|
|
21
21
|
from sqlmesh.utils.date import to_ts
|
|
22
22
|
from sqlmesh.utils.errors import SQLMeshError
|
|
23
|
-
from sqlmesh.core.snapshot.evaluator import SnapshotEvaluator
|
|
24
23
|
|
|
25
24
|
|
|
26
25
|
logger = logging.getLogger(__name__)
|
|
@@ -40,7 +39,6 @@ class PlanExplainer(PlanEvaluator):
|
|
|
40
39
|
def evaluate(
|
|
41
40
|
self,
|
|
42
41
|
plan: EvaluatablePlan,
|
|
43
|
-
snapshot_evaluator: SnapshotEvaluator,
|
|
44
42
|
circuit_breaker: t.Optional[t.Callable[[], bool]] = None,
|
|
45
43
|
) -> None:
|
|
46
44
|
plan_stages = stages.build_plan_stages(plan, self.state_reader, self.default_catalog)
|
|
@@ -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=hnPFLgViYAuq9OQ8HMNnl3oJTWYxsMayOWfylgVZPU0,530
|
|
3
3
|
sqlmesh/magics.py,sha256=R9U0Mp9ZQhDYe751nxAQDLaMv3zLAR4HcTdIflKTmEE,41709
|
|
4
4
|
sqlmesh/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
5
|
sqlmesh/cicd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -13,7 +13,7 @@ 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=HInr6MOcxgn8Z-B9fAoghoDXbBEZqkB5ClyZF-fRP58,159032
|
|
15
15
|
sqlmesh/core/constants.py,sha256=gUABXWYgH_XOSbaZAJsR5o1dmA61JDCvBDyxqqXX3LM,2630
|
|
16
|
-
sqlmesh/core/context.py,sha256=
|
|
16
|
+
sqlmesh/core/context.py,sha256=WyaHN2Fh3FMMHN5MQNnfq5fm89wkfJujq-dkhccRId0,118534
|
|
17
17
|
sqlmesh/core/context_diff.py,sha256=TCzM8egBE35DskpouOB-GQM2Qf5iUHWbRgiB5yZ6tzg,21552
|
|
18
18
|
sqlmesh/core/dialect.py,sha256=1ykYwb9WZn_nCaX08PcQ0BJh2Pihv9SPvoMNjpMeCfs,50158
|
|
19
19
|
sqlmesh/core/environment.py,sha256=7DbJX0r5nZRU3LhcgIxbSV-JosQYDjAt3V5Wc2Fpns8,13005
|
|
@@ -54,7 +54,7 @@ sqlmesh/core/config/naming.py,sha256=KVGaxUgswoQajXR_cHFJvgkmEFcU1V182GkOH1SJxuE
|
|
|
54
54
|
sqlmesh/core/config/plan.py,sha256=wJEDfocMcKSMN0-5gVojjIcmJZ0376LJU3tkGMTm-Zc,1558
|
|
55
55
|
sqlmesh/core/config/root.py,sha256=tZxArC4kjPqrt43R9uErH_awwwNQVaNIaTAb-ot9WiU,15529
|
|
56
56
|
sqlmesh/core/config/run.py,sha256=rIK0QnN_vArrwps2TXGVEbvao2AnGZgzXo7EliJa42E,852
|
|
57
|
-
sqlmesh/core/config/scheduler.py,sha256=
|
|
57
|
+
sqlmesh/core/config/scheduler.py,sha256=k3BVMpy5ZrC05ZlyE3vec8ZGfTjUjWyfsKZtYgflbyA,7029
|
|
58
58
|
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
|
|
@@ -96,8 +96,8 @@ 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=g07h-NOsOr_4spnOrlQ4KrFjh3RmbvHSydEuSOsShNc,41416
|
|
98
98
|
sqlmesh/core/plan/definition.py,sha256=OxgbvkMGNdlvYF2BjFJt_lINsBw38Fq1IX25P8_Z_Z0,13734
|
|
99
|
-
sqlmesh/core/plan/evaluator.py,sha256=
|
|
100
|
-
sqlmesh/core/plan/explainer.py,sha256=
|
|
99
|
+
sqlmesh/core/plan/evaluator.py,sha256=4Gt9svTUe-0YSDawlSbJNed5fkZASbTPsYyytQFXy14,20559
|
|
100
|
+
sqlmesh/core/plan/explainer.py,sha256=aBkvtM9eog_2NIglazSDdG_i9TTCdFSVOkCw5N8O-1k,12028
|
|
101
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
|
|
@@ -284,7 +284,7 @@ sqlmesh/utils/pydantic.py,sha256=o_NsXbIpDqNpUA1Uc5xF0ZzoXQYYB0DfHwdRxBwXPNk,120
|
|
|
284
284
|
sqlmesh/utils/rich.py,sha256=BpB47G0-JcU41LkGkeGKroexj4NOV5fox4-GOIXPgIc,3545
|
|
285
285
|
sqlmesh/utils/windows.py,sha256=r7Yin4WEwbvH7sKA3hOJtRsclmscNuBeCklCfVPvtQs,611
|
|
286
286
|
sqlmesh/utils/yaml.py,sha256=hvo5lmybYLcIx4p6CQwufS8X4MbwS60lEBnCmYJCXmU,2336
|
|
287
|
-
sqlmesh-0.198.1.
|
|
287
|
+
sqlmesh-0.198.1.dev12.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=kNpFjWxt34Pf-P-cROtPWi3GNSVk6zqA3eoN9tlZXI0,5472
|
|
290
290
|
web/client/dist/assets/Audits-DKgXravk.js,sha256=SaVQhNlislD_yQc_KivO7SPi1JH0ts1GnDPD5Zssutw,1041
|
|
@@ -402,8 +402,8 @@ web/server/api/endpoints/models.py,sha256=ud-lRwriyI_OYg9tZchrBgeiXELiRTLNEodraf
|
|
|
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.198.1.
|
|
406
|
-
sqlmesh-0.198.1.
|
|
407
|
-
sqlmesh-0.198.1.
|
|
408
|
-
sqlmesh-0.198.1.
|
|
409
|
-
sqlmesh-0.198.1.
|
|
405
|
+
sqlmesh-0.198.1.dev12.dist-info/METADATA,sha256=qnZqaFCgJs7F_RfwlVT0HnHKk4nO1q2InfazHHOLH1c,26659
|
|
406
|
+
sqlmesh-0.198.1.dev12.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
407
|
+
sqlmesh-0.198.1.dev12.dist-info/entry_points.txt,sha256=pIYKtg-u-uO7BK_Y0qrdmfyj0bYrcMc3Xiqr5WE3VFk,121
|
|
408
|
+
sqlmesh-0.198.1.dev12.dist-info/top_level.txt,sha256=bspjo5vjELQkuN0qKuTFIbsrUt3Zeo8D2mlKeHG1LdE,12
|
|
409
|
+
sqlmesh-0.198.1.dev12.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|