sqlmesh 0.198.1.dev12__py3-none-any.whl → 0.198.1.dev13__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/model/definition.py +19 -2
- sqlmesh/core/scheduler.py +85 -5
- sqlmesh/core/snapshot/definition.py +6 -48
- {sqlmesh-0.198.1.dev12.dist-info → sqlmesh-0.198.1.dev13.dist-info}/METADATA +1 -1
- {sqlmesh-0.198.1.dev12.dist-info → sqlmesh-0.198.1.dev13.dist-info}/RECORD +10 -10
- {sqlmesh-0.198.1.dev12.dist-info → sqlmesh-0.198.1.dev13.dist-info}/WHEEL +0 -0
- {sqlmesh-0.198.1.dev12.dist-info → sqlmesh-0.198.1.dev13.dist-info}/entry_points.txt +0 -0
- {sqlmesh-0.198.1.dev12.dist-info → sqlmesh-0.198.1.dev13.dist-info}/licenses/LICENSE +0 -0
- {sqlmesh-0.198.1.dev12.dist-info → sqlmesh-0.198.1.dev13.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.dev13'
|
|
21
|
+
__version_tuple__ = version_tuple = (0, 198, 1, 'dev13')
|
sqlmesh/core/model/definition.py
CHANGED
|
@@ -627,8 +627,10 @@ class _Model(ModelMeta, frozen=True):
|
|
|
627
627
|
{k: _render(v) for k, v in signal.items()} for name, signal in self.signals if not name
|
|
628
628
|
]
|
|
629
629
|
|
|
630
|
-
def render_signal_calls(self) ->
|
|
631
|
-
|
|
630
|
+
def render_signal_calls(self) -> EvaluatableSignals:
|
|
631
|
+
python_env = self.python_env
|
|
632
|
+
env = prepare_env(python_env)
|
|
633
|
+
signals_to_kwargs = {
|
|
632
634
|
name: {
|
|
633
635
|
k: seq_get(self._create_renderer(v).render() or [], 0) for k, v in kwargs.items()
|
|
634
636
|
}
|
|
@@ -636,6 +638,12 @@ class _Model(ModelMeta, frozen=True):
|
|
|
636
638
|
if name
|
|
637
639
|
}
|
|
638
640
|
|
|
641
|
+
return EvaluatableSignals(
|
|
642
|
+
signals_to_kwargs=signals_to_kwargs,
|
|
643
|
+
python_env=python_env,
|
|
644
|
+
prepared_python_env=env,
|
|
645
|
+
)
|
|
646
|
+
|
|
639
647
|
def render_merge_filter(
|
|
640
648
|
self,
|
|
641
649
|
*,
|
|
@@ -1857,6 +1865,15 @@ class AuditResult(PydanticModel):
|
|
|
1857
1865
|
blocking: bool = True
|
|
1858
1866
|
|
|
1859
1867
|
|
|
1868
|
+
class EvaluatableSignals(PydanticModel):
|
|
1869
|
+
signals_to_kwargs: t.Dict[str, t.Dict[str, t.Optional[exp.Expression]]]
|
|
1870
|
+
"""A mapping of signal names to the kwargs passed to the signal."""
|
|
1871
|
+
python_env: t.Dict[str, Executable]
|
|
1872
|
+
"""The Python environment that should be used to evaluated the rendered signal calls."""
|
|
1873
|
+
prepared_python_env: t.Dict[str, t.Any]
|
|
1874
|
+
"""The prepared Python environment that should be used to evaluated the rendered signal calls."""
|
|
1875
|
+
|
|
1876
|
+
|
|
1860
1877
|
def _extract_blueprints(blueprints: t.Any, path: Path) -> t.List[t.Any]:
|
|
1861
1878
|
if not blueprints:
|
|
1862
1879
|
return [None]
|
sqlmesh/core/scheduler.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
import logging
|
|
3
3
|
import typing as t
|
|
4
|
+
import time
|
|
4
5
|
from sqlglot import exp
|
|
5
6
|
from sqlmesh.core import constants as c
|
|
6
7
|
from sqlmesh.core.console import Console, get_console
|
|
@@ -24,6 +25,7 @@ from sqlmesh.core.snapshot import (
|
|
|
24
25
|
snapshots_to_dag,
|
|
25
26
|
Intervals,
|
|
26
27
|
)
|
|
28
|
+
from sqlmesh.core.snapshot.definition import check_ready_intervals
|
|
27
29
|
from sqlmesh.core.snapshot.definition import (
|
|
28
30
|
Interval,
|
|
29
31
|
expand_range,
|
|
@@ -39,7 +41,16 @@ from sqlmesh.utils.date import (
|
|
|
39
41
|
to_timestamp,
|
|
40
42
|
validate_date_range,
|
|
41
43
|
)
|
|
42
|
-
from sqlmesh.utils.errors import
|
|
44
|
+
from sqlmesh.utils.errors import (
|
|
45
|
+
AuditError,
|
|
46
|
+
NodeAuditsErrors,
|
|
47
|
+
CircuitBreakerError,
|
|
48
|
+
SQLMeshError,
|
|
49
|
+
SignalEvalError,
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
if t.TYPE_CHECKING:
|
|
53
|
+
from sqlmesh.core.context import ExecutionContext
|
|
43
54
|
|
|
44
55
|
logger = logging.getLogger(__name__)
|
|
45
56
|
SnapshotToIntervals = t.Dict[Snapshot, Intervals]
|
|
@@ -304,12 +315,11 @@ class Scheduler:
|
|
|
304
315
|
default_catalog=self.default_catalog,
|
|
305
316
|
)
|
|
306
317
|
|
|
307
|
-
intervals =
|
|
318
|
+
intervals = self._check_ready_intervals(
|
|
319
|
+
snapshot,
|
|
308
320
|
intervals,
|
|
309
321
|
context,
|
|
310
|
-
|
|
311
|
-
default_catalog=self.default_catalog,
|
|
312
|
-
environment_naming_info=environment_naming_info,
|
|
322
|
+
environment_naming_info,
|
|
313
323
|
)
|
|
314
324
|
unready -= set(intervals)
|
|
315
325
|
|
|
@@ -709,6 +719,76 @@ class Scheduler:
|
|
|
709
719
|
|
|
710
720
|
return audit_results
|
|
711
721
|
|
|
722
|
+
def _check_ready_intervals(
|
|
723
|
+
self,
|
|
724
|
+
snapshot: Snapshot,
|
|
725
|
+
intervals: Intervals,
|
|
726
|
+
context: ExecutionContext,
|
|
727
|
+
environment_naming_info: EnvironmentNamingInfo,
|
|
728
|
+
) -> Intervals:
|
|
729
|
+
"""Checks if the intervals are ready for evaluation for the given snapshot.
|
|
730
|
+
|
|
731
|
+
This implementation also includes the signal progress tracking.
|
|
732
|
+
Note that this will handle gaps in the provided intervals. The returned intervals
|
|
733
|
+
may introduce new gaps.
|
|
734
|
+
|
|
735
|
+
Args:
|
|
736
|
+
snapshot: The snapshot to check.
|
|
737
|
+
intervals: The intervals to check.
|
|
738
|
+
context: The context to use.
|
|
739
|
+
environment_naming_info: The environment naming info to use.
|
|
740
|
+
|
|
741
|
+
Returns:
|
|
742
|
+
The intervals that are ready for evaluation.
|
|
743
|
+
"""
|
|
744
|
+
signals = snapshot.is_model and snapshot.model.render_signal_calls()
|
|
745
|
+
|
|
746
|
+
if not signals:
|
|
747
|
+
return intervals
|
|
748
|
+
|
|
749
|
+
self.console.start_signal_progress(
|
|
750
|
+
snapshot,
|
|
751
|
+
self.default_catalog,
|
|
752
|
+
environment_naming_info or EnvironmentNamingInfo(),
|
|
753
|
+
)
|
|
754
|
+
|
|
755
|
+
for signal_idx, (signal_name, kwargs) in enumerate(signals.signals_to_kwargs.items()):
|
|
756
|
+
# Capture intervals before signal check for display
|
|
757
|
+
intervals_to_check = merge_intervals(intervals)
|
|
758
|
+
|
|
759
|
+
signal_start_ts = time.perf_counter()
|
|
760
|
+
|
|
761
|
+
try:
|
|
762
|
+
intervals = check_ready_intervals(
|
|
763
|
+
signals.prepared_python_env[signal_name],
|
|
764
|
+
intervals,
|
|
765
|
+
context,
|
|
766
|
+
python_env=signals.python_env,
|
|
767
|
+
dialect=snapshot.model.dialect,
|
|
768
|
+
path=snapshot.model._path,
|
|
769
|
+
kwargs=kwargs,
|
|
770
|
+
)
|
|
771
|
+
except SQLMeshError as e:
|
|
772
|
+
raise SignalEvalError(
|
|
773
|
+
f"{e} '{signal_name}' for '{snapshot.model.name}' at {snapshot.model._path}"
|
|
774
|
+
)
|
|
775
|
+
|
|
776
|
+
duration = time.perf_counter() - signal_start_ts
|
|
777
|
+
|
|
778
|
+
self.console.update_signal_progress(
|
|
779
|
+
snapshot=snapshot,
|
|
780
|
+
signal_name=signal_name,
|
|
781
|
+
signal_idx=signal_idx,
|
|
782
|
+
total_signals=len(signals.signals_to_kwargs),
|
|
783
|
+
ready_intervals=merge_intervals(intervals),
|
|
784
|
+
check_intervals=intervals_to_check,
|
|
785
|
+
duration=duration,
|
|
786
|
+
)
|
|
787
|
+
|
|
788
|
+
self.console.stop_signal_progress()
|
|
789
|
+
|
|
790
|
+
return intervals
|
|
791
|
+
|
|
712
792
|
|
|
713
793
|
def merged_missing_intervals(
|
|
714
794
|
snapshots: t.Collection[Snapshot],
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import sys
|
|
4
|
-
import time
|
|
5
4
|
import typing as t
|
|
6
5
|
from collections import defaultdict
|
|
7
6
|
from datetime import datetime, timedelta
|
|
@@ -42,8 +41,6 @@ from sqlmesh.utils.date import (
|
|
|
42
41
|
)
|
|
43
42
|
from sqlmesh.utils.errors import SQLMeshError, SignalEvalError
|
|
44
43
|
from sqlmesh.utils.metaprogramming import (
|
|
45
|
-
prepare_env,
|
|
46
|
-
print_exception,
|
|
47
44
|
format_evaluated_code_exception,
|
|
48
45
|
Executable,
|
|
49
46
|
)
|
|
@@ -51,7 +48,6 @@ from sqlmesh.utils.hashing import hash_data
|
|
|
51
48
|
from sqlmesh.utils.pydantic import PydanticModel, field_validator
|
|
52
49
|
|
|
53
50
|
if t.TYPE_CHECKING:
|
|
54
|
-
from sqlmesh.core.console import Console
|
|
55
51
|
from sqlglot.dialects.dialect import DialectType
|
|
56
52
|
from sqlmesh.core.environment import EnvironmentNamingInfo
|
|
57
53
|
from sqlmesh.core.context import ExecutionContext
|
|
@@ -971,9 +967,6 @@ class Snapshot(PydanticModel, SnapshotInfoMixin):
|
|
|
971
967
|
self,
|
|
972
968
|
intervals: Intervals,
|
|
973
969
|
context: ExecutionContext,
|
|
974
|
-
console: t.Optional[Console] = None,
|
|
975
|
-
default_catalog: t.Optional[str] = None,
|
|
976
|
-
environment_naming_info: t.Optional[EnvironmentNamingInfo] = None,
|
|
977
970
|
) -> Intervals:
|
|
978
971
|
"""Returns a list of intervals that are considered ready by the provided signal.
|
|
979
972
|
|
|
@@ -981,59 +974,24 @@ class Snapshot(PydanticModel, SnapshotInfoMixin):
|
|
|
981
974
|
may introduce new gaps.
|
|
982
975
|
"""
|
|
983
976
|
signals = self.is_model and self.model.render_signal_calls()
|
|
984
|
-
|
|
985
977
|
if not signals:
|
|
986
978
|
return intervals
|
|
987
979
|
|
|
988
|
-
|
|
989
|
-
env = prepare_env(python_env)
|
|
990
|
-
|
|
991
|
-
if console:
|
|
992
|
-
console.start_signal_progress(
|
|
993
|
-
self,
|
|
994
|
-
default_catalog,
|
|
995
|
-
environment_naming_info or EnvironmentNamingInfo(),
|
|
996
|
-
)
|
|
997
|
-
|
|
998
|
-
for signal_idx, (signal_name, kwargs) in enumerate(signals.items()):
|
|
999
|
-
# Capture intervals before signal check for display
|
|
1000
|
-
intervals_to_check = merge_intervals(intervals)
|
|
1001
|
-
|
|
1002
|
-
signal_start_ts = time.perf_counter()
|
|
1003
|
-
|
|
980
|
+
for signal_name, kwargs in signals.signals_to_kwargs.items():
|
|
1004
981
|
try:
|
|
1005
|
-
intervals =
|
|
1006
|
-
|
|
982
|
+
intervals = check_ready_intervals(
|
|
983
|
+
signals.prepared_python_env[signal_name],
|
|
1007
984
|
intervals,
|
|
1008
985
|
context,
|
|
1009
|
-
python_env=python_env,
|
|
986
|
+
python_env=signals.python_env,
|
|
1010
987
|
dialect=self.model.dialect,
|
|
1011
988
|
path=self.model._path,
|
|
1012
989
|
kwargs=kwargs,
|
|
1013
990
|
)
|
|
1014
991
|
except SQLMeshError as e:
|
|
1015
|
-
|
|
1016
|
-
raise SQLMeshError(
|
|
992
|
+
raise SignalEvalError(
|
|
1017
993
|
f"{e} '{signal_name}' for '{self.model.name}' at {self.model._path}"
|
|
1018
994
|
)
|
|
1019
|
-
|
|
1020
|
-
duration = time.perf_counter() - signal_start_ts
|
|
1021
|
-
|
|
1022
|
-
if console:
|
|
1023
|
-
console.update_signal_progress(
|
|
1024
|
-
snapshot=self,
|
|
1025
|
-
signal_name=signal_name,
|
|
1026
|
-
signal_idx=signal_idx,
|
|
1027
|
-
total_signals=len(signals),
|
|
1028
|
-
ready_intervals=merge_intervals(intervals),
|
|
1029
|
-
check_intervals=intervals_to_check,
|
|
1030
|
-
duration=duration,
|
|
1031
|
-
)
|
|
1032
|
-
|
|
1033
|
-
# Stop signal progress tracking
|
|
1034
|
-
if console:
|
|
1035
|
-
console.stop_signal_progress()
|
|
1036
|
-
|
|
1037
995
|
return intervals
|
|
1038
996
|
|
|
1039
997
|
def categorize_as(self, category: SnapshotChangeCategory) -> None:
|
|
@@ -2229,7 +2187,7 @@ def _contiguous_intervals(intervals: Intervals) -> t.List[Intervals]:
|
|
|
2229
2187
|
return contiguous_intervals
|
|
2230
2188
|
|
|
2231
2189
|
|
|
2232
|
-
def
|
|
2190
|
+
def check_ready_intervals(
|
|
2233
2191
|
check: t.Callable,
|
|
2234
2192
|
intervals: Intervals,
|
|
2235
2193
|
context: ExecutionContext,
|
|
@@ -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=Ot41ppAYTuEK_dNN-7AEmc6ave1-1Q5pztj9mQwkDoo,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
|
|
@@ -24,7 +24,7 @@ sqlmesh/core/node.py,sha256=r4_1MRTPcU0MAlwZ5KzrykLT58B7dkKvHzPCsJmEKD8,14497
|
|
|
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=ksdD2x2Q5Ns5fOLIGfWIznx_T3fXbP3CfwUhD5kVSOQ,26674
|
|
27
|
-
sqlmesh/core/scheduler.py,sha256=
|
|
27
|
+
sqlmesh/core/scheduler.py,sha256=lA3zhpz52HV-QBGoPirtqd2KakivnTuqiqZp09pP8js,39318
|
|
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=_hcktUQiKXCPE-mOqXClHUVWBfEZKMPVVNDtpSSRhbI,12660
|
|
@@ -88,7 +88,7 @@ sqlmesh/core/model/__init__.py,sha256=C8GRZ53xuXEA9hQv3BQS9pNNyd9rZ06R_B96UYGhDu
|
|
|
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
90
|
sqlmesh/core/model/decorator.py,sha256=wUUg5t0K559tV9Pqt6FE2EWXt5TPGb4wF2Yg4B4hX4w,9251
|
|
91
|
-
sqlmesh/core/model/definition.py,sha256=
|
|
91
|
+
sqlmesh/core/model/definition.py,sha256=mG6UPwxiZj0xP_cdHSVELEcXusAcltpgHBX-wiUSuPM,111963
|
|
92
92
|
sqlmesh/core/model/kind.py,sha256=8Dp8yiTiXltboZWrB2FJ-LQ3zx4Fv_5Tj0KdUIPwCHI,36358
|
|
93
93
|
sqlmesh/core/model/meta.py,sha256=D9InI9M2-IXeb34vkXNQSLALL8xVXjZ_LXwI-Tqxm7I,21197
|
|
94
94
|
sqlmesh/core/model/schema.py,sha256=OClbAeA8LpW-IiSiLT_TlDWkEqmIIvSk0GXq8SWI-GQ,3443
|
|
@@ -102,7 +102,7 @@ sqlmesh/core/plan/stages.py,sha256=5cvEbrQsw_cx1gayxwLRwkIehQPixrbUT9B4BbEOj3A,2
|
|
|
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
|
-
sqlmesh/core/snapshot/definition.py,sha256=
|
|
105
|
+
sqlmesh/core/snapshot/definition.py,sha256=L7aNCiUUmsEdkvQOfroB9aZDW6ZitHRph1eYYq1rTLE,85363
|
|
106
106
|
sqlmesh/core/snapshot/evaluator.py,sha256=3mjrSp9ggd9uKhuZURrY0HtuCc_WAPsH4PYvQlqmn9o,90443
|
|
107
107
|
sqlmesh/core/state_sync/__init__.py,sha256=B60xj-_Xk-4jas3UphLvwkuf04G-9AyGckcblXE0aRg,869
|
|
108
108
|
sqlmesh/core/state_sync/base.py,sha256=Drq4MDWWxO_J-sJIxsMG1-YSgj2L42n5WM2vh1sr6bc,18334
|
|
@@ -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.dev13.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.dev13.dist-info/METADATA,sha256=tO04527OWfbw2b1VCQB8tQMxbS4NGkvObRntCNs2Npo,26659
|
|
406
|
+
sqlmesh-0.198.1.dev13.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
407
|
+
sqlmesh-0.198.1.dev13.dist-info/entry_points.txt,sha256=pIYKtg-u-uO7BK_Y0qrdmfyj0bYrcMc3Xiqr5WE3VFk,121
|
|
408
|
+
sqlmesh-0.198.1.dev13.dist-info/top_level.txt,sha256=bspjo5vjELQkuN0qKuTFIbsrUt3Zeo8D2mlKeHG1LdE,12
|
|
409
|
+
sqlmesh-0.198.1.dev13.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|