sqlmesh 0.180.1.dev5__py3-none-any.whl → 0.180.1.dev7__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 +52 -14
- sqlmesh/core/plan/builder.py +9 -1
- sqlmesh/core/plan/definition.py +5 -0
- sqlmesh/lsp/main.py +29 -0
- {sqlmesh-0.180.1.dev5.dist-info → sqlmesh-0.180.1.dev7.dist-info}/METADATA +1 -1
- {sqlmesh-0.180.1.dev5.dist-info → sqlmesh-0.180.1.dev7.dist-info}/RECORD +11 -11
- {sqlmesh-0.180.1.dev5.dist-info → sqlmesh-0.180.1.dev7.dist-info}/WHEEL +0 -0
- {sqlmesh-0.180.1.dev5.dist-info → sqlmesh-0.180.1.dev7.dist-info}/entry_points.txt +0 -0
- {sqlmesh-0.180.1.dev5.dist-info → sqlmesh-0.180.1.dev7.dist-info}/licenses/LICENSE +0 -0
- {sqlmesh-0.180.1.dev5.dist-info → sqlmesh-0.180.1.dev7.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.180.1.
|
|
21
|
-
__version_tuple__ = version_tuple = (0, 180, 1, '
|
|
20
|
+
__version__ = version = '0.180.1.dev7'
|
|
21
|
+
__version_tuple__ = version_tuple = (0, 180, 1, 'dev7')
|
sqlmesh/core/context.py
CHANGED
|
@@ -88,6 +88,7 @@ from sqlmesh.core.notification_target import (
|
|
|
88
88
|
NotificationTargetManager,
|
|
89
89
|
)
|
|
90
90
|
from sqlmesh.core.plan import Plan, PlanBuilder, SnapshotIntervals
|
|
91
|
+
from sqlmesh.core.plan.definition import UserProvidedFlags
|
|
91
92
|
from sqlmesh.core.reference import ReferenceGraph
|
|
92
93
|
from sqlmesh.core.scheduler import Scheduler, CompletionStatus
|
|
93
94
|
from sqlmesh.core.schema_loader import create_external_models_file
|
|
@@ -1161,11 +1162,11 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
1161
1162
|
end: t.Optional[TimeLike] = None,
|
|
1162
1163
|
execution_time: t.Optional[TimeLike] = None,
|
|
1163
1164
|
create_from: t.Optional[str] = None,
|
|
1164
|
-
skip_tests: bool =
|
|
1165
|
+
skip_tests: t.Optional[bool] = None,
|
|
1165
1166
|
restate_models: t.Optional[t.Iterable[str]] = None,
|
|
1166
|
-
no_gaps: bool =
|
|
1167
|
-
skip_backfill: bool =
|
|
1168
|
-
empty_backfill: bool =
|
|
1167
|
+
no_gaps: t.Optional[bool] = None,
|
|
1168
|
+
skip_backfill: t.Optional[bool] = None,
|
|
1169
|
+
empty_backfill: t.Optional[bool] = None,
|
|
1169
1170
|
forward_only: t.Optional[bool] = None,
|
|
1170
1171
|
allow_destructive_models: t.Optional[t.Collection[str]] = None,
|
|
1171
1172
|
no_prompts: t.Optional[bool] = None,
|
|
@@ -1178,9 +1179,9 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
1178
1179
|
categorizer_config: t.Optional[CategorizerConfig] = None,
|
|
1179
1180
|
enable_preview: t.Optional[bool] = None,
|
|
1180
1181
|
no_diff: t.Optional[bool] = None,
|
|
1181
|
-
run: bool =
|
|
1182
|
-
diff_rendered: bool =
|
|
1183
|
-
skip_linter: bool =
|
|
1182
|
+
run: t.Optional[bool] = None,
|
|
1183
|
+
diff_rendered: t.Optional[bool] = None,
|
|
1184
|
+
skip_linter: t.Optional[bool] = None,
|
|
1184
1185
|
) -> Plan:
|
|
1185
1186
|
"""Interactively creates a plan.
|
|
1186
1187
|
|
|
@@ -1278,11 +1279,11 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
1278
1279
|
end: t.Optional[TimeLike] = None,
|
|
1279
1280
|
execution_time: t.Optional[TimeLike] = None,
|
|
1280
1281
|
create_from: t.Optional[str] = None,
|
|
1281
|
-
skip_tests: bool =
|
|
1282
|
+
skip_tests: t.Optional[bool] = None,
|
|
1282
1283
|
restate_models: t.Optional[t.Iterable[str]] = None,
|
|
1283
|
-
no_gaps: bool =
|
|
1284
|
-
skip_backfill: bool =
|
|
1285
|
-
empty_backfill: bool =
|
|
1284
|
+
no_gaps: t.Optional[bool] = None,
|
|
1285
|
+
skip_backfill: t.Optional[bool] = None,
|
|
1286
|
+
empty_backfill: t.Optional[bool] = None,
|
|
1286
1287
|
forward_only: t.Optional[bool] = None,
|
|
1287
1288
|
allow_destructive_models: t.Optional[t.Collection[str]] = None,
|
|
1288
1289
|
no_auto_categorization: t.Optional[bool] = None,
|
|
@@ -1292,9 +1293,9 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
1292
1293
|
backfill_models: t.Optional[t.Collection[str]] = None,
|
|
1293
1294
|
categorizer_config: t.Optional[CategorizerConfig] = None,
|
|
1294
1295
|
enable_preview: t.Optional[bool] = None,
|
|
1295
|
-
run: bool =
|
|
1296
|
-
diff_rendered: bool =
|
|
1297
|
-
skip_linter: bool =
|
|
1296
|
+
run: t.Optional[bool] = None,
|
|
1297
|
+
diff_rendered: t.Optional[bool] = None,
|
|
1298
|
+
skip_linter: t.Optional[bool] = None,
|
|
1298
1299
|
) -> PlanBuilder:
|
|
1299
1300
|
"""Creates a plan builder.
|
|
1300
1301
|
|
|
@@ -1335,6 +1336,42 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
1335
1336
|
Returns:
|
|
1336
1337
|
The plan builder.
|
|
1337
1338
|
"""
|
|
1339
|
+
kwargs: t.Dict[str, t.Optional[UserProvidedFlags]] = {
|
|
1340
|
+
"start": start,
|
|
1341
|
+
"end": end,
|
|
1342
|
+
"execution_time": execution_time,
|
|
1343
|
+
"create_from": create_from,
|
|
1344
|
+
"skip_tests": skip_tests,
|
|
1345
|
+
"restate_models": list(restate_models) if restate_models is not None else None,
|
|
1346
|
+
"no_gaps": no_gaps,
|
|
1347
|
+
"skip_backfill": skip_backfill,
|
|
1348
|
+
"empty_backfill": empty_backfill,
|
|
1349
|
+
"forward_only": forward_only,
|
|
1350
|
+
"allow_destructive_models": list(allow_destructive_models)
|
|
1351
|
+
if allow_destructive_models is not None
|
|
1352
|
+
else None,
|
|
1353
|
+
"no_auto_categorization": no_auto_categorization,
|
|
1354
|
+
"effective_from": effective_from,
|
|
1355
|
+
"include_unmodified": include_unmodified,
|
|
1356
|
+
"select_models": list(select_models) if select_models is not None else None,
|
|
1357
|
+
"backfill_models": list(backfill_models) if backfill_models is not None else None,
|
|
1358
|
+
"enable_preview": enable_preview,
|
|
1359
|
+
"run": run,
|
|
1360
|
+
"diff_rendered": diff_rendered,
|
|
1361
|
+
"skip_linter": skip_linter,
|
|
1362
|
+
}
|
|
1363
|
+
user_provided_flags: t.Dict[str, UserProvidedFlags] = {
|
|
1364
|
+
k: v for k, v in kwargs.items() if v is not None
|
|
1365
|
+
}
|
|
1366
|
+
|
|
1367
|
+
skip_tests = skip_tests or False
|
|
1368
|
+
no_gaps = no_gaps or False
|
|
1369
|
+
skip_backfill = skip_backfill or False
|
|
1370
|
+
empty_backfill = empty_backfill or False
|
|
1371
|
+
run = run or False
|
|
1372
|
+
diff_rendered = diff_rendered or False
|
|
1373
|
+
skip_linter = skip_linter or False
|
|
1374
|
+
|
|
1338
1375
|
environment = environment or self.config.default_target_environment
|
|
1339
1376
|
environment = Environment.sanitize_name(environment)
|
|
1340
1377
|
is_dev = environment != c.PROD
|
|
@@ -1469,6 +1506,7 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
1469
1506
|
engine_schema_differ=self.engine_adapter.SCHEMA_DIFFER,
|
|
1470
1507
|
interval_end_per_model=max_interval_end_per_model,
|
|
1471
1508
|
console=self.console,
|
|
1509
|
+
user_provided_flags=user_provided_flags,
|
|
1472
1510
|
)
|
|
1473
1511
|
|
|
1474
1512
|
def apply(
|
sqlmesh/core/plan/builder.py
CHANGED
|
@@ -15,7 +15,12 @@ from sqlmesh.core.config import (
|
|
|
15
15
|
)
|
|
16
16
|
from sqlmesh.core.context_diff import ContextDiff
|
|
17
17
|
from sqlmesh.core.environment import EnvironmentNamingInfo
|
|
18
|
-
from sqlmesh.core.plan.definition import
|
|
18
|
+
from sqlmesh.core.plan.definition import (
|
|
19
|
+
Plan,
|
|
20
|
+
SnapshotMapping,
|
|
21
|
+
UserProvidedFlags,
|
|
22
|
+
earliest_interval_start,
|
|
23
|
+
)
|
|
19
24
|
from sqlmesh.core.schema_diff import SchemaDiffer, has_drop_alteration, get_dropped_column_names
|
|
20
25
|
from sqlmesh.core.snapshot import (
|
|
21
26
|
DeployabilityIndex,
|
|
@@ -107,6 +112,7 @@ class PlanBuilder:
|
|
|
107
112
|
ensure_finalized_snapshots: bool = False,
|
|
108
113
|
interval_end_per_model: t.Optional[t.Dict[str, int]] = None,
|
|
109
114
|
console: t.Optional[PlanBuilderConsole] = None,
|
|
115
|
+
user_provided_flags: t.Optional[t.Dict[str, UserProvidedFlags]] = None,
|
|
110
116
|
):
|
|
111
117
|
self._context_diff = context_diff
|
|
112
118
|
self._no_gaps = no_gaps
|
|
@@ -134,6 +140,7 @@ class PlanBuilder:
|
|
|
134
140
|
self._engine_schema_differ = engine_schema_differ
|
|
135
141
|
self._console = console or get_console()
|
|
136
142
|
self._choices: t.Dict[SnapshotId, SnapshotChangeCategory] = {}
|
|
143
|
+
self._user_provided_flags = user_provided_flags
|
|
137
144
|
|
|
138
145
|
self._start = start
|
|
139
146
|
if not self._start and (
|
|
@@ -280,6 +287,7 @@ class PlanBuilder:
|
|
|
280
287
|
execution_time=self._execution_time,
|
|
281
288
|
end_bounded=self._end_bounded,
|
|
282
289
|
ensure_finalized_snapshots=self._ensure_finalized_snapshots,
|
|
290
|
+
user_provided_flags=self._user_provided_flags,
|
|
283
291
|
)
|
|
284
292
|
self._latest_plan = plan
|
|
285
293
|
return plan
|
sqlmesh/core/plan/definition.py
CHANGED
|
@@ -28,6 +28,7 @@ from sqlmesh.utils.date import TimeLike, now, to_datetime, to_timestamp
|
|
|
28
28
|
from sqlmesh.utils.pydantic import PydanticModel
|
|
29
29
|
|
|
30
30
|
SnapshotMapping = t.Dict[SnapshotId, t.Set[SnapshotId]]
|
|
31
|
+
UserProvidedFlags = t.Union[TimeLike, str, bool, t.List[str]]
|
|
31
32
|
|
|
32
33
|
|
|
33
34
|
class Plan(PydanticModel, frozen=True):
|
|
@@ -63,6 +64,8 @@ class Plan(PydanticModel, frozen=True):
|
|
|
63
64
|
effective_from: t.Optional[TimeLike] = None
|
|
64
65
|
execution_time: t.Optional[TimeLike] = None
|
|
65
66
|
|
|
67
|
+
user_provided_flags: t.Optional[t.Dict[str, UserProvidedFlags]] = None
|
|
68
|
+
|
|
66
69
|
@cached_property
|
|
67
70
|
def start(self) -> TimeLike:
|
|
68
71
|
if self.provided_start is not None:
|
|
@@ -262,6 +265,7 @@ class Plan(PydanticModel, frozen=True):
|
|
|
262
265
|
if s.is_model and s.model.disable_restatement
|
|
263
266
|
},
|
|
264
267
|
environment_statements=self.context_diff.environment_statements,
|
|
268
|
+
user_provided_flags=self.user_provided_flags,
|
|
265
269
|
)
|
|
266
270
|
|
|
267
271
|
@cached_property
|
|
@@ -294,6 +298,7 @@ class EvaluatablePlan(PydanticModel):
|
|
|
294
298
|
execution_time: t.Optional[TimeLike] = None
|
|
295
299
|
disabled_restatement_models: t.Set[str]
|
|
296
300
|
environment_statements: t.Optional[t.List[EnvironmentStatements]] = None
|
|
301
|
+
user_provided_flags: t.Optional[t.Dict[str, UserProvidedFlags]] = None
|
|
297
302
|
|
|
298
303
|
def is_selected_for_backfill(self, model_fqn: str) -> bool:
|
|
299
304
|
return self.models_to_backfill is None or model_fqn in self.models_to_backfill
|
sqlmesh/lsp/main.py
CHANGED
|
@@ -40,6 +40,35 @@ class SQLMeshLanguageServer:
|
|
|
40
40
|
def _register_features(self) -> None:
|
|
41
41
|
"""Register LSP features on the internal LanguageServer instance."""
|
|
42
42
|
|
|
43
|
+
@self.server.feature(types.INITIALIZE)
|
|
44
|
+
def initialize(ls: LanguageServer, params: types.InitializeParams) -> None:
|
|
45
|
+
"""Initialize the server when the client connects."""
|
|
46
|
+
try:
|
|
47
|
+
if params.workspace_folders:
|
|
48
|
+
# Try to find a SQLMesh config file in any workspace folder (only at the root level)
|
|
49
|
+
for folder in params.workspace_folders:
|
|
50
|
+
folder_path = Path(self._uri_to_path(folder.uri))
|
|
51
|
+
# Only check for config files directly in the workspace directory
|
|
52
|
+
for ext in ("py", "yml", "yaml"):
|
|
53
|
+
config_path = folder_path / f"config.{ext}"
|
|
54
|
+
if config_path.exists():
|
|
55
|
+
try:
|
|
56
|
+
# Use user-provided instantiator to build the context
|
|
57
|
+
created_context = self.context_class(paths=[folder_path])
|
|
58
|
+
self.lsp_context = LSPContext(created_context)
|
|
59
|
+
ls.show_message(
|
|
60
|
+
f"Loaded SQLMesh context from {config_path}",
|
|
61
|
+
types.MessageType.Info,
|
|
62
|
+
)
|
|
63
|
+
return # Exit after successfully loading any config
|
|
64
|
+
except Exception as e:
|
|
65
|
+
ls.show_message(
|
|
66
|
+
f"Error loading context from {config_path}: {e}",
|
|
67
|
+
types.MessageType.Warning,
|
|
68
|
+
)
|
|
69
|
+
except Exception as e:
|
|
70
|
+
ls.show_message(f"Error initializing SQLMesh context: {e}", types.MessageType.Error)
|
|
71
|
+
|
|
43
72
|
@self.server.feature(ALL_MODELS_FEATURE)
|
|
44
73
|
def all_models(ls: LanguageServer, params: AllModelsRequest) -> AllModelsResponse:
|
|
45
74
|
try:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
sqlmesh/__init__.py,sha256=uPXld_xTZ2NTruSfVJ_vR_w-uAxR3T-gMXAb-EphTe8,7167
|
|
2
|
-
sqlmesh/_version.py,sha256=
|
|
2
|
+
sqlmesh/_version.py,sha256=052Ck_Q6K5fDNQDCHUodUEMU99K561pVTbF5SgTNWmY,528
|
|
3
3
|
sqlmesh/magics.py,sha256=7BU9ec9zE4tjvZ3hdEqwFX2VVV-CI0h06TGZo_Ssi8M,39070
|
|
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=ERAYluCseNnRxWXpgtNE0MYut5CCWGoyHdPKMnYv0Fc,146135
|
|
15
15
|
sqlmesh/core/constants.py,sha256=oqt6zjepUhQoWlgapKn_HpG7Pu9mrFwepdX5caNfJUI,2499
|
|
16
|
-
sqlmesh/core/context.py,sha256=
|
|
16
|
+
sqlmesh/core/context.py,sha256=9QX_FW-CoTvEhp-yTQYntHcZ9SXyRK-AJmZp_kelW-I,113609
|
|
17
17
|
sqlmesh/core/context_diff.py,sha256=s9toP17d4tJfOpFH91LcjGK2CM64PVuB0MPkeFgF4hQ,20415
|
|
18
18
|
sqlmesh/core/dialect.py,sha256=fPTV517IOS0nWMxYznNNQnXkQkFFrPOSKe8ghsQ0o8A,49759
|
|
19
19
|
sqlmesh/core/environment.py,sha256=0TTQf4C4LXwf37fm-dfYv1qyG7vtZfQI5rizgm5g0j0,11442
|
|
@@ -93,8 +93,8 @@ sqlmesh/core/model/meta.py,sha256=v-g1lnGPoeZ2SjV2CbVjvlec9buydiOFKkZWUm2dQPs,19
|
|
|
93
93
|
sqlmesh/core/model/schema.py,sha256=QzM1cOfukuK3L-cEE9MtxKeYec3x5JvutdZAnczJSiQ,3858
|
|
94
94
|
sqlmesh/core/model/seed.py,sha256=ctUHH6CmeEnBVJyIAZznx0xJBm09W7VIZ-76Cfwfq28,5004
|
|
95
95
|
sqlmesh/core/plan/__init__.py,sha256=ctpnu9mK3uTujs0It8qRMqcj9GdObXDnvSgn4rD2zqc,450
|
|
96
|
-
sqlmesh/core/plan/builder.py,sha256=
|
|
97
|
-
sqlmesh/core/plan/definition.py,sha256=
|
|
96
|
+
sqlmesh/core/plan/builder.py,sha256=ltoUlUr13uoEftYqGzjbnOa_n7-Q1CUiE9R_LgHY9Mc,38471
|
|
97
|
+
sqlmesh/core/plan/definition.py,sha256=SI3zi2poPkKJKTZogYv60Q7eIOhksaAcFUcu-J2-XqI,13218
|
|
98
98
|
sqlmesh/core/plan/evaluator.py,sha256=Ocb4vxWUFRI1hD5tpkVvdJicWSa9rUfL8Qm1C3DMVts,23760
|
|
99
99
|
sqlmesh/core/snapshot/__init__.py,sha256=Z5HTetNCZGoKF1WAKXk4LWL9dc8EC8lwS2O4TtoBmt4,1317
|
|
100
100
|
sqlmesh/core/snapshot/cache.py,sha256=MRYi_koDvp2yeQ5NDGoNFzhuJTw7Vh7mI0oJyeVbqio,4022
|
|
@@ -158,7 +158,7 @@ sqlmesh/integrations/github/cicd/controller.py,sha256=AiEMsRW4WSVxXP_7oQSIdzBzmY
|
|
|
158
158
|
sqlmesh/lsp/completions.py,sha256=w0ytB-WNYoDSSf_K-JOOs3FtLJUGAfzR3kkZZnCvS1E,2805
|
|
159
159
|
sqlmesh/lsp/context.py,sha256=vLhQBDmwDG4QhE0s6h7zNSxB0pjzHmRzkJdH1oqldac,637
|
|
160
160
|
sqlmesh/lsp/custom.py,sha256=GvNAiW7imPI8xmIx3qLWN5FljGPHFJKh0N5b6aZnwRo,489
|
|
161
|
-
sqlmesh/lsp/main.py,sha256=
|
|
161
|
+
sqlmesh/lsp/main.py,sha256=QEWxoX-LtEfFVE-Qf6ke2iUfEjgl0TcM1J9Wo7THAwg,13332
|
|
162
162
|
sqlmesh/lsp/reference.py,sha256=mpgAg3ckXei067EUeVulagbZsOui5Etb8U8Unu81hVs,5539
|
|
163
163
|
sqlmesh/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
164
164
|
sqlmesh/migrations/v0001_init.py,sha256=h8FwMYJj9_O8yGpk12guaSaGwX5A3we2GiKeHrXi15o,2048
|
|
@@ -265,7 +265,7 @@ sqlmesh/utils/pandas.py,sha256=j_tYhuPcWpzuPceZZ6IhdTVbmxYyGJW7l4FHr4bQqjM,1824
|
|
|
265
265
|
sqlmesh/utils/pydantic.py,sha256=ioaAzYF42PutEJRyAS11-AHguiCG3yWI6VRcTVa2G-g,10470
|
|
266
266
|
sqlmesh/utils/rich.py,sha256=xNZyPCqEc4TAlJlsEthg-5eYUWpaizz0QjBzO7a1Yv4,1509
|
|
267
267
|
sqlmesh/utils/yaml.py,sha256=np-WVcwmwsKghCgAj1OBBMsK1SXSRn4wR-H37cGiFr8,2282
|
|
268
|
-
sqlmesh-0.180.1.
|
|
268
|
+
sqlmesh-0.180.1.dev7.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
|
|
269
269
|
web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
270
270
|
web/client/dist/index.html,sha256=cQRIlDgkl6OgeWuHI9hM8bJhKUE9-Ji2NpQa2hlgNM8,5472
|
|
271
271
|
web/client/dist/assets/Audits-4U9LnWyN.js,sha256=reXu-sKJ76kiaAZIGkCPvgO68Km9tj1PN_9mx6X6WAY,997
|
|
@@ -382,8 +382,8 @@ web/server/api/endpoints/models.py,sha256=SzS5bshzdXyM6hb948sZ_3k-xhpGCHkxkb7pHz
|
|
|
382
382
|
web/server/api/endpoints/modules.py,sha256=8hqqgonGay_mJmpCw0IdbjsPhWlQH2VLdKAqha-myac,468
|
|
383
383
|
web/server/api/endpoints/plan.py,sha256=OYuQ_4dgbhG9ibTcX1a8mvYgH3ANxw9Fhbb4wg6QWqc,9222
|
|
384
384
|
web/server/api/endpoints/table_diff.py,sha256=Wd5YxeKbZB7AkrDvqFgvV9ZQlnKYOF1n5W_w2EHE_Zw,2085
|
|
385
|
-
sqlmesh-0.180.1.
|
|
386
|
-
sqlmesh-0.180.1.
|
|
387
|
-
sqlmesh-0.180.1.
|
|
388
|
-
sqlmesh-0.180.1.
|
|
389
|
-
sqlmesh-0.180.1.
|
|
385
|
+
sqlmesh-0.180.1.dev7.dist-info/METADATA,sha256=1KbYPc5IlJFeCYcqieGPzuOFI1jK5g8lBHA7DXeBa3M,25307
|
|
386
|
+
sqlmesh-0.180.1.dev7.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
|
|
387
|
+
sqlmesh-0.180.1.dev7.dist-info/entry_points.txt,sha256=pIYKtg-u-uO7BK_Y0qrdmfyj0bYrcMc3Xiqr5WE3VFk,121
|
|
388
|
+
sqlmesh-0.180.1.dev7.dist-info/top_level.txt,sha256=bspjo5vjELQkuN0qKuTFIbsrUt3Zeo8D2mlKeHG1LdE,12
|
|
389
|
+
sqlmesh-0.180.1.dev7.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|