sqlmesh 0.227.2.dev11__py3-none-any.whl → 0.227.2.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/context.py +29 -40
- sqlmesh/core/linter/rules/builtin.py +1 -1
- sqlmesh/core/loader.py +13 -30
- sqlmesh/lsp/context.py +4 -2
- sqlmesh/magics.py +1 -1
- {sqlmesh-0.227.2.dev11.dist-info → sqlmesh-0.227.2.dev12.dist-info}/METADATA +1 -1
- {sqlmesh-0.227.2.dev11.dist-info → sqlmesh-0.227.2.dev12.dist-info}/RECORD +12 -12
- {sqlmesh-0.227.2.dev11.dist-info → sqlmesh-0.227.2.dev12.dist-info}/WHEEL +0 -0
- {sqlmesh-0.227.2.dev11.dist-info → sqlmesh-0.227.2.dev12.dist-info}/entry_points.txt +0 -0
- {sqlmesh-0.227.2.dev11.dist-info → sqlmesh-0.227.2.dev12.dist-info}/licenses/LICENSE +0 -0
- {sqlmesh-0.227.2.dev11.dist-info → sqlmesh-0.227.2.dev12.dist-info}/top_level.txt +0 -0
sqlmesh/_version.py
CHANGED
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '0.227.2.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 227, 2, '
|
|
31
|
+
__version__ = version = '0.227.2.dev12'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 227, 2, 'dev12')
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
sqlmesh/core/context.py
CHANGED
|
@@ -147,8 +147,8 @@ if t.TYPE_CHECKING:
|
|
|
147
147
|
from typing_extensions import Literal
|
|
148
148
|
|
|
149
149
|
from sqlmesh.core.engine_adapter._typing import (
|
|
150
|
-
DF,
|
|
151
150
|
BigframeSession,
|
|
151
|
+
DF,
|
|
152
152
|
PySparkDataFrame,
|
|
153
153
|
PySparkSession,
|
|
154
154
|
SnowparkSession,
|
|
@@ -403,6 +403,7 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
403
403
|
self._model_test_metadata_path_index: t.Dict[Path, t.List[ModelTestMetadata]] = {}
|
|
404
404
|
self._model_test_metadata_fully_qualified_name_index: t.Dict[str, ModelTestMetadata] = {}
|
|
405
405
|
self._models_with_tests: t.Set[str] = set()
|
|
406
|
+
|
|
406
407
|
self._macros: UniqueKeyDict[str, ExecutableOrMacro] = UniqueKeyDict("macros")
|
|
407
408
|
self._metrics: UniqueKeyDict[str, Metric] = UniqueKeyDict("metrics")
|
|
408
409
|
self._jinja_macros = JinjaMacroRegistry()
|
|
@@ -656,6 +657,7 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
656
657
|
self._requirements.update(project.requirements)
|
|
657
658
|
self._excluded_requirements.update(project.excluded_requirements)
|
|
658
659
|
self._environment_statements.extend(project.environment_statements)
|
|
660
|
+
|
|
659
661
|
self._model_test_metadata.extend(project.model_test_metadata)
|
|
660
662
|
for metadata in project.model_test_metadata:
|
|
661
663
|
if metadata.path not in self._model_test_metadata_path_index:
|
|
@@ -2243,9 +2245,7 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
2243
2245
|
|
|
2244
2246
|
pd.set_option("display.max_columns", None)
|
|
2245
2247
|
|
|
2246
|
-
test_meta = self.
|
|
2247
|
-
test_meta=self._model_test_metadata, tests=tests, patterns=match_patterns
|
|
2248
|
-
)
|
|
2248
|
+
test_meta = self.select_tests(tests=tests, patterns=match_patterns)
|
|
2249
2249
|
|
|
2250
2250
|
result = run_tests(
|
|
2251
2251
|
model_test_metadata=test_meta,
|
|
@@ -2807,33 +2807,6 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
2807
2807
|
raise SQLMeshError(f"Gateway '{gateway}' not found in the available engine adapters.")
|
|
2808
2808
|
return self.engine_adapter
|
|
2809
2809
|
|
|
2810
|
-
def _select_tests(
|
|
2811
|
-
self,
|
|
2812
|
-
test_meta: t.List[ModelTestMetadata],
|
|
2813
|
-
tests: t.Optional[t.List[str]] = None,
|
|
2814
|
-
patterns: t.Optional[t.List[str]] = None,
|
|
2815
|
-
) -> t.List[ModelTestMetadata]:
|
|
2816
|
-
"""Filter pre-loaded test metadata based on tests and patterns."""
|
|
2817
|
-
|
|
2818
|
-
if tests:
|
|
2819
|
-
filtered_tests = []
|
|
2820
|
-
for test in tests:
|
|
2821
|
-
if "::" in test:
|
|
2822
|
-
if test in self._model_test_metadata_fully_qualified_name_index:
|
|
2823
|
-
filtered_tests.append(
|
|
2824
|
-
self._model_test_metadata_fully_qualified_name_index[test]
|
|
2825
|
-
)
|
|
2826
|
-
else:
|
|
2827
|
-
test_path = Path(test)
|
|
2828
|
-
if test_path in self._model_test_metadata_path_index:
|
|
2829
|
-
filtered_tests.extend(self._model_test_metadata_path_index[test_path])
|
|
2830
|
-
test_meta = filtered_tests
|
|
2831
|
-
|
|
2832
|
-
if patterns:
|
|
2833
|
-
test_meta = filter_tests_by_patterns(test_meta, patterns)
|
|
2834
|
-
|
|
2835
|
-
return test_meta
|
|
2836
|
-
|
|
2837
2810
|
def _snapshots(
|
|
2838
2811
|
self, models_override: t.Optional[UniqueKeyDict[str, Model]] = None
|
|
2839
2812
|
) -> t.Dict[str, Snapshot]:
|
|
@@ -3245,18 +3218,34 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
3245
3218
|
|
|
3246
3219
|
return all_violations
|
|
3247
3220
|
|
|
3248
|
-
def
|
|
3249
|
-
self,
|
|
3221
|
+
def select_tests(
|
|
3222
|
+
self,
|
|
3223
|
+
tests: t.Optional[t.List[str]] = None,
|
|
3224
|
+
patterns: t.Optional[t.List[str]] = None,
|
|
3250
3225
|
) -> t.List[ModelTestMetadata]:
|
|
3251
|
-
|
|
3252
|
-
|
|
3253
|
-
|
|
3226
|
+
"""Filter pre-loaded test metadata based on tests and patterns."""
|
|
3227
|
+
|
|
3228
|
+
test_meta = self._model_test_metadata
|
|
3229
|
+
|
|
3230
|
+
if tests:
|
|
3231
|
+
filtered_tests = []
|
|
3232
|
+
for test in tests:
|
|
3233
|
+
if "::" in test:
|
|
3234
|
+
if test in self._model_test_metadata_fully_qualified_name_index:
|
|
3235
|
+
filtered_tests.append(
|
|
3236
|
+
self._model_test_metadata_fully_qualified_name_index[test]
|
|
3237
|
+
)
|
|
3238
|
+
else:
|
|
3239
|
+
test_path = Path(test)
|
|
3240
|
+
if test_path in self._model_test_metadata_path_index:
|
|
3241
|
+
filtered_tests.extend(self._model_test_metadata_path_index[test_path])
|
|
3242
|
+
|
|
3243
|
+
test_meta = filtered_tests
|
|
3254
3244
|
|
|
3255
|
-
|
|
3256
|
-
|
|
3257
|
-
model_tests.extend(loader.load_model_tests(tests=tests, patterns=patterns))
|
|
3245
|
+
if patterns:
|
|
3246
|
+
test_meta = filter_tests_by_patterns(test_meta, patterns)
|
|
3258
3247
|
|
|
3259
|
-
return
|
|
3248
|
+
return test_meta
|
|
3260
3249
|
|
|
3261
3250
|
|
|
3262
3251
|
class Context(GenericContext[Config]):
|
|
@@ -130,7 +130,7 @@ class NoMissingAudits(Rule):
|
|
|
130
130
|
|
|
131
131
|
|
|
132
132
|
class NoMissingUnitTest(Rule):
|
|
133
|
-
"""All models must have a unit test found in the
|
|
133
|
+
"""All models must have a unit test found in the tests/ directory yaml files"""
|
|
134
134
|
|
|
135
135
|
def check_model(self, model: Model) -> t.Optional[RuleViolation]:
|
|
136
136
|
# External models cannot have unit tests
|
sqlmesh/core/loader.py
CHANGED
|
@@ -35,7 +35,7 @@ from sqlmesh.core.model import (
|
|
|
35
35
|
from sqlmesh.core.model import model as model_registry
|
|
36
36
|
from sqlmesh.core.model.common import make_python_env
|
|
37
37
|
from sqlmesh.core.signal import signal
|
|
38
|
-
from sqlmesh.core.test import ModelTestMetadata
|
|
38
|
+
from sqlmesh.core.test import ModelTestMetadata
|
|
39
39
|
from sqlmesh.utils import UniqueKeyDict, sys_path
|
|
40
40
|
from sqlmesh.utils.errors import ConfigError
|
|
41
41
|
from sqlmesh.utils.jinja import JinjaMacroRegistry, MacroExtractor
|
|
@@ -427,9 +427,7 @@ class Loader(abc.ABC):
|
|
|
427
427
|
"""Loads user linting rules"""
|
|
428
428
|
return RuleSet()
|
|
429
429
|
|
|
430
|
-
def load_model_tests(
|
|
431
|
-
self, tests: t.Optional[t.List[str]] = None, patterns: list[str] | None = None
|
|
432
|
-
) -> t.List[ModelTestMetadata]:
|
|
430
|
+
def load_model_tests(self) -> t.List[ModelTestMetadata]:
|
|
433
431
|
"""Loads YAML-based model tests"""
|
|
434
432
|
return []
|
|
435
433
|
|
|
@@ -868,38 +866,23 @@ class SqlMeshLoader(Loader):
|
|
|
868
866
|
|
|
869
867
|
return model_test_metadata
|
|
870
868
|
|
|
871
|
-
def load_model_tests(
|
|
872
|
-
self, tests: t.Optional[t.List[str]] = None, patterns: list[str] | None = None
|
|
873
|
-
) -> t.List[ModelTestMetadata]:
|
|
869
|
+
def load_model_tests(self) -> t.List[ModelTestMetadata]:
|
|
874
870
|
"""Loads YAML-based model tests"""
|
|
875
871
|
test_meta_list: t.List[ModelTestMetadata] = []
|
|
876
872
|
|
|
877
|
-
|
|
878
|
-
for test in tests:
|
|
879
|
-
filename, test_name = test.split("::", maxsplit=1) if "::" in test else (test, "")
|
|
873
|
+
search_path = Path(self.config_path) / c.TESTS
|
|
880
874
|
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
for yaml_file in itertools.chain(
|
|
890
|
-
search_path.glob("**/test*.yaml"),
|
|
891
|
-
search_path.glob("**/test*.yml"),
|
|
875
|
+
for yaml_file in itertools.chain(
|
|
876
|
+
search_path.glob("**/test*.yaml"),
|
|
877
|
+
search_path.glob("**/test*.yml"),
|
|
878
|
+
):
|
|
879
|
+
if any(
|
|
880
|
+
yaml_file.match(ignore_pattern)
|
|
881
|
+
for ignore_pattern in self.config.ignore_patterns or []
|
|
892
882
|
):
|
|
893
|
-
|
|
894
|
-
yaml_file.match(ignore_pattern)
|
|
895
|
-
for ignore_pattern in self.config.ignore_patterns or []
|
|
896
|
-
):
|
|
897
|
-
continue
|
|
898
|
-
|
|
899
|
-
test_meta_list.extend(self._load_model_test_file(yaml_file).values())
|
|
883
|
+
continue
|
|
900
884
|
|
|
901
|
-
|
|
902
|
-
test_meta_list = filter_tests_by_patterns(test_meta_list, patterns)
|
|
885
|
+
test_meta_list.extend(self._load_model_test_file(yaml_file).values())
|
|
903
886
|
|
|
904
887
|
return test_meta_list
|
|
905
888
|
|
sqlmesh/lsp/context.py
CHANGED
|
@@ -72,7 +72,7 @@ class LSPContext:
|
|
|
72
72
|
|
|
73
73
|
def list_workspace_tests(self) -> t.List[TestEntry]:
|
|
74
74
|
"""List all tests in the workspace."""
|
|
75
|
-
tests = self.context.
|
|
75
|
+
tests = self.context.select_tests()
|
|
76
76
|
|
|
77
77
|
# Use a set to ensure unique URIs
|
|
78
78
|
unique_test_uris = {URI.from_path(test.path).value for test in tests}
|
|
@@ -81,7 +81,9 @@ class LSPContext:
|
|
|
81
81
|
test_ranges = get_test_ranges(URI(uri).to_path())
|
|
82
82
|
if uri not in test_uris:
|
|
83
83
|
test_uris[uri] = {}
|
|
84
|
+
|
|
84
85
|
test_uris[uri].update(test_ranges)
|
|
86
|
+
|
|
85
87
|
return [
|
|
86
88
|
TestEntry(
|
|
87
89
|
name=test.test_name,
|
|
@@ -100,7 +102,7 @@ class LSPContext:
|
|
|
100
102
|
Returns:
|
|
101
103
|
List of TestEntry objects for the specified document.
|
|
102
104
|
"""
|
|
103
|
-
tests = self.context.
|
|
105
|
+
tests = self.context.select_tests(tests=[str(uri.to_path())])
|
|
104
106
|
test_ranges = get_test_ranges(uri.to_path())
|
|
105
107
|
return [
|
|
106
108
|
TestEntry(
|
sqlmesh/magics.py
CHANGED
|
@@ -337,7 +337,7 @@ class SQLMeshMagics(Magics):
|
|
|
337
337
|
if not args.test_name and not args.ls:
|
|
338
338
|
raise MagicError("Must provide either test name or `--ls` to list tests")
|
|
339
339
|
|
|
340
|
-
test_meta = context.
|
|
340
|
+
test_meta = context.select_tests()
|
|
341
341
|
|
|
342
342
|
tests: t.Dict[str, t.Dict[str, ModelTestMetadata]] = defaultdict(dict)
|
|
343
343
|
for model_test_metadata in test_meta:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
sqlmesh/__init__.py,sha256=v_spqQEhcnGaahp1yPvMqUIa6mhH3cs3Bc1CznxvCEA,7965
|
|
2
|
-
sqlmesh/_version.py,sha256=
|
|
3
|
-
sqlmesh/magics.py,sha256=
|
|
2
|
+
sqlmesh/_version.py,sha256=MjcLqt8ff4n5akUGB4arakRl5PMDvUgkFb6BH37y6Rc,723
|
|
3
|
+
sqlmesh/magics.py,sha256=7Q1_lXSD_PgYH40Hsx6-OkfSQC3UJZgF043RVFRnw1s,42082
|
|
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
|
|
@@ -13,13 +13,13 @@ sqlmesh/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
13
13
|
sqlmesh/core/_typing.py,sha256=PzXxMYnORq18JhblAOUttms3zPJZzZpIbfFA_jgKYPA,498
|
|
14
14
|
sqlmesh/core/console.py,sha256=MYpVlciUY6rUuoqXyKfXTxD6a4-Bw4-ooATUTj_VHGg,172830
|
|
15
15
|
sqlmesh/core/constants.py,sha256=BuQk43vluUm7LfP9nKp5o9qRhqIenWF_LiLXO_t_53c,2699
|
|
16
|
-
sqlmesh/core/context.py,sha256=
|
|
16
|
+
sqlmesh/core/context.py,sha256=Ig2FKOLecp0tZ3jnx4952gQ52KukFATMLNfRK4vHqlk,133051
|
|
17
17
|
sqlmesh/core/context_diff.py,sha256=mxkJu0IthFMOlaQ_kcq5C09mlgkq2RQb-pG2rd-x_nA,21648
|
|
18
18
|
sqlmesh/core/dialect.py,sha256=CnKcPj6BnREfu9Zn1OyS7hZ3ktnaX03ygOg91nADlTU,53029
|
|
19
19
|
sqlmesh/core/environment.py,sha256=Kgs_gUEUI072mh0JJFWNRynrCxp1TzRHZhX_NWJRfXc,13142
|
|
20
20
|
sqlmesh/core/janitor.py,sha256=zJRN48ENjKexeiqa1Kmwyj_HsEEEIAa8hsFD8gTCmfg,7194
|
|
21
21
|
sqlmesh/core/lineage.py,sha256=LtiOztX1xIbFfWz-eb5dPZW4B0o2sI942_IM4YDbsso,3163
|
|
22
|
-
sqlmesh/core/loader.py,sha256=
|
|
22
|
+
sqlmesh/core/loader.py,sha256=YbdDekoeIwu1zg0xFsiQUWsxgupZTqpHAziwxV-53Hs,36698
|
|
23
23
|
sqlmesh/core/macros.py,sha256=rkklwVnUEmEro4wpdel289mKhaS3x5_SPZrkYZt3Q9E,63173
|
|
24
24
|
sqlmesh/core/node.py,sha256=2ejDwH1whl_ic1CRzX16Be-FQrosAf8pdyWb7oPzU6M,19895
|
|
25
25
|
sqlmesh/core/notification_target.py,sha256=PPGoDrgbRKxr27vJEu03XqNTQLYTw0ZF_b0yAapxGeI,16158
|
|
@@ -82,7 +82,7 @@ sqlmesh/core/linter/definition.py,sha256=1EOhKdF16jmeqISfcrR-8fzMdgXuxpB7wb3Qaep
|
|
|
82
82
|
sqlmesh/core/linter/helpers.py,sha256=cwKXP4sL6azRtNVGbMfJ5_6Hqq5Xx2M2rRLCgH3Y3ag,10743
|
|
83
83
|
sqlmesh/core/linter/rule.py,sha256=nB3o1rHyN44ZOg5ImICP16SeUHimf-12ObdXJjkTGyM,3964
|
|
84
84
|
sqlmesh/core/linter/rules/__init__.py,sha256=gevzfb67vFqckTCoVAe_TBGf6hQ-YtE1_YuGuXyh1L0,77
|
|
85
|
-
sqlmesh/core/linter/rules/builtin.py,sha256=
|
|
85
|
+
sqlmesh/core/linter/rules/builtin.py,sha256=6j22W_5EOBN979Bi2_mvmCNq4yqZVsJ9oqEukunj4Ws,11728
|
|
86
86
|
sqlmesh/core/metric/__init__.py,sha256=H1HmoD5IwN4YWe9iJXyueLYNmTQFZwok5nSWNJcZIBQ,237
|
|
87
87
|
sqlmesh/core/metric/definition.py,sha256=Yd5aVgsZCDPJ43aGP7WqtzZOuuSUtB8uJGVA6Jw9x9M,7201
|
|
88
88
|
sqlmesh/core/metric/rewriter.py,sha256=GiSTHfn2kinqCfNPYgZPRk93JFLzVaaejHtHDQ0yXZI,7326
|
|
@@ -162,7 +162,7 @@ sqlmesh/integrations/github/cicd/controller.py,sha256=0I5mHPz3HBJR5lkR-2J9Bj06Yn
|
|
|
162
162
|
sqlmesh/lsp/api.py,sha256=Z_8Op6CWqdbmEeidCQgMcVmRooQujqaynn-0EOw4478,2505
|
|
163
163
|
sqlmesh/lsp/commands.py,sha256=7tZPePSH-IwBYmXJPIlqGM7pi4rOCLEtc3fKJglAxZs,72
|
|
164
164
|
sqlmesh/lsp/completions.py,sha256=7Lhboh6xyoMJ3kkHG3aZz1xVbDwKiXeQKdIRj5xlUOA,6674
|
|
165
|
-
sqlmesh/lsp/context.py,sha256=
|
|
165
|
+
sqlmesh/lsp/context.py,sha256=7S17A1oE9WZtOU1dYvQeoExqvXGwmNxZdbk9uF4Xllw,20886
|
|
166
166
|
sqlmesh/lsp/custom.py,sha256=npzNznpUJ3ELY_WU4n_4I73lAjuTapI0_HKCFsoMcOk,5132
|
|
167
167
|
sqlmesh/lsp/errors.py,sha256=3NMim_5J00Eypz7t8b7XbkBfy8gIsRkeq-VcjD4COtc,1489
|
|
168
168
|
sqlmesh/lsp/helpers.py,sha256=EFc1u3-b7kSv5-tNwmKUDxId72RCLDBnN2lLTgRSzzQ,1020
|
|
@@ -238,7 +238,7 @@ sqlmesh/utils/pydantic.py,sha256=-yppkVlw6iSBaSiKjbe7OChxL-u3urOS4-KCjJEgsRU,120
|
|
|
238
238
|
sqlmesh/utils/rich.py,sha256=cwQ5nJ6sgz64xHtoh6_ec7ReV5YpsOGhMtUJnwoRfEI,3549
|
|
239
239
|
sqlmesh/utils/windows.py,sha256=0F9RdpuuCoG5NiEDXvWlAGCiJ-59OjSAmgFF5wW05aY,1133
|
|
240
240
|
sqlmesh/utils/yaml.py,sha256=KFBd7hsKNRTtRudGR7d410qUYffQv0EWRcDM8hVNNZg,3025
|
|
241
|
-
sqlmesh-0.227.2.
|
|
241
|
+
sqlmesh-0.227.2.dev12.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
|
|
242
242
|
sqlmesh_dbt/__init__.py,sha256=awYS5y5mz-1NUmx6i5h5NSTJ7tidRl9NC0FAnFWSF6U,350
|
|
243
243
|
sqlmesh_dbt/cli.py,sha256=p9foHjAW9ni7BTOJ2loynk47M0Sf43QIJZRggOzF5tc,6351
|
|
244
244
|
sqlmesh_dbt/console.py,sha256=RwWLYnEZHzn9Xp-e2gbZvkdKbWbBLN146geI84mJitg,1132
|
|
@@ -363,8 +363,8 @@ web/server/api/endpoints/models.py,sha256=kwj0s7uve3iZSMfmjkoPVMFMeY1sD0peTeyrWf
|
|
|
363
363
|
web/server/api/endpoints/modules.py,sha256=8hqqgonGay_mJmpCw0IdbjsPhWlQH2VLdKAqha-myac,468
|
|
364
364
|
web/server/api/endpoints/plan.py,sha256=bbbY50W_2MsZSTxOHWMKz0tbIm75nsRSlPy8GI2fg9Q,9306
|
|
365
365
|
web/server/api/endpoints/table_diff.py,sha256=8XTwgOh6QBbNy_hTM1JuHgRjbnie-pGPrphiW-FNLjQ,6058
|
|
366
|
-
sqlmesh-0.227.2.
|
|
367
|
-
sqlmesh-0.227.2.
|
|
368
|
-
sqlmesh-0.227.2.
|
|
369
|
-
sqlmesh-0.227.2.
|
|
370
|
-
sqlmesh-0.227.2.
|
|
366
|
+
sqlmesh-0.227.2.dev12.dist-info/METADATA,sha256=vNgqxzXZ_rPkFQMXmKkaJTMA6ivtfK_wUVPEpqEyUPs,26686
|
|
367
|
+
sqlmesh-0.227.2.dev12.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
368
|
+
sqlmesh-0.227.2.dev12.dist-info/entry_points.txt,sha256=sHAf6tQczIM8xZoduN4qaUjV7QEPVUUW_LCT8EDUMv4,155
|
|
369
|
+
sqlmesh-0.227.2.dev12.dist-info/top_level.txt,sha256=RQ-33FPe2IgL0rgossAfJkCRtqslz9b7wFARqiWLC5Q,24
|
|
370
|
+
sqlmesh-0.227.2.dev12.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|