sqlmesh 0.197.1.dev1__py3-none-any.whl → 0.197.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/config/scheduler.py +0 -1
- sqlmesh/core/context.py +38 -20
- sqlmesh/core/engine_adapter/athena.py +1 -1
- sqlmesh/core/engine_adapter/base.py +9 -3
- sqlmesh/core/model/definition.py +2 -2
- sqlmesh/core/plan/evaluator.py +9 -3
- sqlmesh/core/plan/explainer.py +5 -1
- sqlmesh/utils/__init__.py +21 -0
- {sqlmesh-0.197.1.dev1.dist-info → sqlmesh-0.197.1.dev3.dist-info}/METADATA +1 -1
- {sqlmesh-0.197.1.dev1.dist-info → sqlmesh-0.197.1.dev3.dist-info}/RECORD +15 -15
- {sqlmesh-0.197.1.dev1.dist-info → sqlmesh-0.197.1.dev3.dist-info}/WHEEL +0 -0
- {sqlmesh-0.197.1.dev1.dist-info → sqlmesh-0.197.1.dev3.dist-info}/entry_points.txt +0 -0
- {sqlmesh-0.197.1.dev1.dist-info → sqlmesh-0.197.1.dev3.dist-info}/licenses/LICENSE +0 -0
- {sqlmesh-0.197.1.dev1.dist-info → sqlmesh-0.197.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.197.1.
|
|
21
|
-
__version_tuple__ = version_tuple = (0, 197, 1, '
|
|
20
|
+
__version__ = version = '0.197.1.dev3'
|
|
21
|
+
__version_tuple__ = version_tuple = (0, 197, 1, 'dev3')
|
sqlmesh/core/config/scheduler.py
CHANGED
|
@@ -130,7 +130,6 @@ 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,
|
|
134
133
|
create_scheduler=context.create_scheduler,
|
|
135
134
|
default_catalog=context.default_catalog,
|
|
136
135
|
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, CorrelationId
|
|
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 (
|
|
@@ -418,7 +418,7 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
418
418
|
self.config.get_state_connection(self.gateway) or self.connection_config
|
|
419
419
|
)
|
|
420
420
|
|
|
421
|
-
self.
|
|
421
|
+
self._snapshot_evaluators: t.Dict[t.Optional[CorrelationId], SnapshotEvaluator] = {}
|
|
422
422
|
|
|
423
423
|
self.console = get_console()
|
|
424
424
|
setattr(self.console, "dialect", self.config.dialect)
|
|
@@ -446,18 +446,22 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
446
446
|
self._engine_adapter = self.connection_config.create_engine_adapter()
|
|
447
447
|
return self._engine_adapter
|
|
448
448
|
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
449
|
+
def snapshot_evaluator(
|
|
450
|
+
self, correlation_id: t.Optional[CorrelationId] = None
|
|
451
|
+
) -> SnapshotEvaluator:
|
|
452
|
+
# Cache snapshot evaluators by correlation_id to avoid old correlation_ids being attached to future Context operations
|
|
453
|
+
if correlation_id not in self._snapshot_evaluators:
|
|
454
|
+
self._snapshot_evaluators[correlation_id] = SnapshotEvaluator(
|
|
453
455
|
{
|
|
454
|
-
gateway: adapter.
|
|
456
|
+
gateway: adapter.with_settings(
|
|
457
|
+
log_level=logging.INFO, correlation_id=correlation_id
|
|
458
|
+
)
|
|
455
459
|
for gateway, adapter in self.engine_adapters.items()
|
|
456
460
|
},
|
|
457
461
|
ddl_concurrent_tasks=self.concurrent_tasks,
|
|
458
462
|
selected_gateway=self.selected_gateway,
|
|
459
463
|
)
|
|
460
|
-
return self.
|
|
464
|
+
return self._snapshot_evaluators[correlation_id]
|
|
461
465
|
|
|
462
466
|
def execution_context(
|
|
463
467
|
self,
|
|
@@ -538,7 +542,9 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
538
542
|
|
|
539
543
|
return self.create_scheduler(snapshots)
|
|
540
544
|
|
|
541
|
-
def create_scheduler(
|
|
545
|
+
def create_scheduler(
|
|
546
|
+
self, snapshots: t.Iterable[Snapshot], correlation_id: t.Optional[CorrelationId] = None
|
|
547
|
+
) -> Scheduler:
|
|
542
548
|
"""Creates the built-in scheduler.
|
|
543
549
|
|
|
544
550
|
Args:
|
|
@@ -549,7 +555,7 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
549
555
|
"""
|
|
550
556
|
return Scheduler(
|
|
551
557
|
snapshots,
|
|
552
|
-
self.snapshot_evaluator,
|
|
558
|
+
self.snapshot_evaluator(correlation_id),
|
|
553
559
|
self.state_sync,
|
|
554
560
|
default_catalog=self.default_catalog,
|
|
555
561
|
max_workers=self.concurrent_tasks,
|
|
@@ -714,7 +720,7 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
714
720
|
NotificationEvent.RUN_START, environment=environment
|
|
715
721
|
)
|
|
716
722
|
analytics_run_id = analytics.collector.on_run_start(
|
|
717
|
-
engine_type=self.snapshot_evaluator.adapter.dialect,
|
|
723
|
+
engine_type=self.snapshot_evaluator().adapter.dialect,
|
|
718
724
|
state_sync_type=self.state_sync.state_type(),
|
|
719
725
|
)
|
|
720
726
|
self._load_materializations()
|
|
@@ -1076,7 +1082,7 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
1076
1082
|
and not parent_snapshot.categorized
|
|
1077
1083
|
]
|
|
1078
1084
|
|
|
1079
|
-
df = self.snapshot_evaluator.evaluate_and_fetch(
|
|
1085
|
+
df = self.snapshot_evaluator().evaluate_and_fetch(
|
|
1080
1086
|
snapshot,
|
|
1081
1087
|
start=start,
|
|
1082
1088
|
end=end,
|
|
@@ -1588,7 +1594,12 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
1588
1594
|
default_catalog=self.default_catalog,
|
|
1589
1595
|
console=self.console,
|
|
1590
1596
|
)
|
|
1591
|
-
explainer.evaluate(
|
|
1597
|
+
explainer.evaluate(
|
|
1598
|
+
plan.to_evaluatable(),
|
|
1599
|
+
snapshot_evaluator=self.snapshot_evaluator(
|
|
1600
|
+
correlation_id=CorrelationId.from_plan_id(plan.plan_id)
|
|
1601
|
+
),
|
|
1602
|
+
)
|
|
1592
1603
|
return
|
|
1593
1604
|
|
|
1594
1605
|
self.notification_target_manager.notify(
|
|
@@ -1902,7 +1913,7 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
1902
1913
|
)
|
|
1903
1914
|
|
|
1904
1915
|
return TableDiff(
|
|
1905
|
-
adapter=adapter.
|
|
1916
|
+
adapter=adapter.with_settings(logger.getEffectiveLevel()),
|
|
1906
1917
|
source=source,
|
|
1907
1918
|
target=target,
|
|
1908
1919
|
on=on,
|
|
@@ -2111,7 +2122,7 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
2111
2122
|
errors = []
|
|
2112
2123
|
skipped_count = 0
|
|
2113
2124
|
for snapshot in snapshots:
|
|
2114
|
-
for audit_result in self.snapshot_evaluator.audit(
|
|
2125
|
+
for audit_result in self.snapshot_evaluator().audit(
|
|
2115
2126
|
snapshot=snapshot,
|
|
2116
2127
|
start=start,
|
|
2117
2128
|
end=end,
|
|
@@ -2143,7 +2154,7 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
2143
2154
|
self.console.log_status_update(f"Got {error.count} results, expected 0.")
|
|
2144
2155
|
if error.query:
|
|
2145
2156
|
self.console.show_sql(
|
|
2146
|
-
f"{error.query.sql(dialect=self.snapshot_evaluator.adapter.dialect)}"
|
|
2157
|
+
f"{error.query.sql(dialect=self.snapshot_evaluator().adapter.dialect)}"
|
|
2147
2158
|
)
|
|
2148
2159
|
|
|
2149
2160
|
self.console.log_status_update("Done.")
|
|
@@ -2335,11 +2346,14 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
2335
2346
|
|
|
2336
2347
|
def close(self) -> None:
|
|
2337
2348
|
"""Releases all resources allocated by this context."""
|
|
2338
|
-
|
|
2339
|
-
|
|
2349
|
+
for evaluator in self._snapshot_evaluators.values():
|
|
2350
|
+
evaluator.close()
|
|
2351
|
+
|
|
2340
2352
|
if self._state_sync:
|
|
2341
2353
|
self._state_sync.close()
|
|
2342
2354
|
|
|
2355
|
+
self._snapshot_evaluators.clear()
|
|
2356
|
+
|
|
2343
2357
|
def _run(
|
|
2344
2358
|
self,
|
|
2345
2359
|
environment: str,
|
|
@@ -2390,7 +2404,11 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
2390
2404
|
|
|
2391
2405
|
def _apply(self, plan: Plan, circuit_breaker: t.Optional[t.Callable[[], bool]]) -> None:
|
|
2392
2406
|
self._scheduler.create_plan_evaluator(self).evaluate(
|
|
2393
|
-
plan.to_evaluatable(),
|
|
2407
|
+
plan.to_evaluatable(),
|
|
2408
|
+
snapshot_evaluator=self.snapshot_evaluator(
|
|
2409
|
+
correlation_id=CorrelationId.from_plan_id(plan.plan_id)
|
|
2410
|
+
),
|
|
2411
|
+
circuit_breaker=circuit_breaker,
|
|
2394
2412
|
)
|
|
2395
2413
|
|
|
2396
2414
|
@python_api_analytics
|
|
@@ -2683,7 +2701,7 @@ class GenericContext(BaseContext, t.Generic[C]):
|
|
|
2683
2701
|
)
|
|
2684
2702
|
|
|
2685
2703
|
# Remove the expired snapshots tables
|
|
2686
|
-
self.snapshot_evaluator.cleanup(
|
|
2704
|
+
self.snapshot_evaluator().cleanup(
|
|
2687
2705
|
target_snapshots=cleanup_targets,
|
|
2688
2706
|
on_complete=self.console.update_cleanup_progress,
|
|
2689
2707
|
)
|
|
@@ -46,7 +46,7 @@ class AthenaEngineAdapter(PandasNativeFetchDFSupportMixin, RowDiffMixin):
|
|
|
46
46
|
self, *args: t.Any, s3_warehouse_location: t.Optional[str] = None, **kwargs: t.Any
|
|
47
47
|
):
|
|
48
48
|
# Need to pass s3_warehouse_location to the superclass so that it goes into _extra_config
|
|
49
|
-
# which means that EngineAdapter.
|
|
49
|
+
# which means that EngineAdapter.with_settings() keeps this property when it makes a clone
|
|
50
50
|
super().__init__(*args, s3_warehouse_location=s3_warehouse_location, **kwargs)
|
|
51
51
|
self.s3_warehouse_location = s3_warehouse_location
|
|
52
52
|
|
|
@@ -39,7 +39,7 @@ from sqlmesh.core.engine_adapter.shared import (
|
|
|
39
39
|
)
|
|
40
40
|
from sqlmesh.core.model.kind import TimeColumn
|
|
41
41
|
from sqlmesh.core.schema_diff import SchemaDiffer
|
|
42
|
-
from sqlmesh.utils import columns_to_types_all_known, random_id
|
|
42
|
+
from sqlmesh.utils import columns_to_types_all_known, random_id, CorrelationId
|
|
43
43
|
from sqlmesh.utils.connection_pool import create_connection_pool, ConnectionPool
|
|
44
44
|
from sqlmesh.utils.date import TimeLike, make_inclusive, to_time_column
|
|
45
45
|
from sqlmesh.utils.errors import (
|
|
@@ -123,6 +123,7 @@ class EngineAdapter:
|
|
|
123
123
|
pre_ping: bool = False,
|
|
124
124
|
pretty_sql: bool = False,
|
|
125
125
|
shared_connection: bool = False,
|
|
126
|
+
correlation_id: t.Optional[CorrelationId] = None,
|
|
126
127
|
**kwargs: t.Any,
|
|
127
128
|
):
|
|
128
129
|
self.dialect = dialect.lower() or self.DIALECT
|
|
@@ -144,19 +145,21 @@ class EngineAdapter:
|
|
|
144
145
|
self._pre_ping = pre_ping
|
|
145
146
|
self._pretty_sql = pretty_sql
|
|
146
147
|
self._multithreaded = multithreaded
|
|
148
|
+
self.correlation_id = correlation_id
|
|
147
149
|
|
|
148
|
-
def
|
|
150
|
+
def with_settings(self, log_level: int, **kwargs: t.Any) -> EngineAdapter:
|
|
149
151
|
adapter = self.__class__(
|
|
150
152
|
self._connection_pool,
|
|
151
153
|
dialect=self.dialect,
|
|
152
154
|
sql_gen_kwargs=self._sql_gen_kwargs,
|
|
153
155
|
default_catalog=self._default_catalog,
|
|
154
|
-
execute_log_level=
|
|
156
|
+
execute_log_level=log_level,
|
|
155
157
|
register_comments=self._register_comments,
|
|
156
158
|
null_connection=True,
|
|
157
159
|
multithreaded=self._multithreaded,
|
|
158
160
|
pretty_sql=self._pretty_sql,
|
|
159
161
|
**self._extra_config,
|
|
162
|
+
**kwargs,
|
|
160
163
|
)
|
|
161
164
|
|
|
162
165
|
return adapter
|
|
@@ -2211,6 +2214,9 @@ class EngineAdapter:
|
|
|
2211
2214
|
else:
|
|
2212
2215
|
sql = t.cast(str, e)
|
|
2213
2216
|
|
|
2217
|
+
if self.correlation_id:
|
|
2218
|
+
sql = f"/* {self.correlation_id} */ {sql}"
|
|
2219
|
+
|
|
2214
2220
|
self._log_sql(
|
|
2215
2221
|
sql,
|
|
2216
2222
|
expression=e if isinstance(e, exp.Expression) else None,
|
sqlmesh/core/model/definition.py
CHANGED
|
@@ -2431,7 +2431,7 @@ def _create_model(
|
|
|
2431
2431
|
if not issubclass(klass, SqlModel):
|
|
2432
2432
|
defaults.pop("optimize_query", None)
|
|
2433
2433
|
|
|
2434
|
-
statements = []
|
|
2434
|
+
statements: t.List[t.Union[exp.Expression, t.Tuple[exp.Expression, bool]]] = []
|
|
2435
2435
|
|
|
2436
2436
|
if "pre_statements" in kwargs:
|
|
2437
2437
|
statements.extend(kwargs["pre_statements"])
|
|
@@ -2453,7 +2453,7 @@ def _create_model(
|
|
|
2453
2453
|
statements.extend(property_values.expressions)
|
|
2454
2454
|
|
|
2455
2455
|
jinja_macro_references, used_variables = extract_macro_references_and_variables(
|
|
2456
|
-
*(gen(e) for e in statements)
|
|
2456
|
+
*(gen(e if isinstance(e, exp.Expression) else e[0]) for e in statements)
|
|
2457
2457
|
)
|
|
2458
2458
|
|
|
2459
2459
|
if jinja_macros:
|
sqlmesh/core/plan/evaluator.py
CHANGED
|
@@ -49,7 +49,10 @@ logger = logging.getLogger(__name__)
|
|
|
49
49
|
class PlanEvaluator(abc.ABC):
|
|
50
50
|
@abc.abstractmethod
|
|
51
51
|
def evaluate(
|
|
52
|
-
self,
|
|
52
|
+
self,
|
|
53
|
+
plan: EvaluatablePlan,
|
|
54
|
+
snapshot_evaluator: SnapshotEvaluator,
|
|
55
|
+
circuit_breaker: t.Optional[t.Callable[[], bool]] = None,
|
|
53
56
|
) -> None:
|
|
54
57
|
"""Evaluates a plan by pushing snapshots and backfilling data.
|
|
55
58
|
|
|
@@ -60,6 +63,8 @@ class PlanEvaluator(abc.ABC):
|
|
|
60
63
|
|
|
61
64
|
Args:
|
|
62
65
|
plan: The plan to evaluate.
|
|
66
|
+
snapshot_evaluator: The snapshot evaluator to use.
|
|
67
|
+
circuit_breaker: The circuit breaker to use.
|
|
63
68
|
"""
|
|
64
69
|
|
|
65
70
|
|
|
@@ -67,13 +72,11 @@ class BuiltInPlanEvaluator(PlanEvaluator):
|
|
|
67
72
|
def __init__(
|
|
68
73
|
self,
|
|
69
74
|
state_sync: StateSync,
|
|
70
|
-
snapshot_evaluator: SnapshotEvaluator,
|
|
71
75
|
create_scheduler: t.Callable[[t.Iterable[Snapshot]], Scheduler],
|
|
72
76
|
default_catalog: t.Optional[str],
|
|
73
77
|
console: t.Optional[Console] = None,
|
|
74
78
|
):
|
|
75
79
|
self.state_sync = state_sync
|
|
76
|
-
self.snapshot_evaluator = snapshot_evaluator
|
|
77
80
|
self.create_scheduler = create_scheduler
|
|
78
81
|
self.default_catalog = default_catalog
|
|
79
82
|
self.console = console or get_console()
|
|
@@ -82,9 +85,12 @@ class BuiltInPlanEvaluator(PlanEvaluator):
|
|
|
82
85
|
def evaluate(
|
|
83
86
|
self,
|
|
84
87
|
plan: EvaluatablePlan,
|
|
88
|
+
snapshot_evaluator: SnapshotEvaluator,
|
|
85
89
|
circuit_breaker: t.Optional[t.Callable[[], bool]] = None,
|
|
86
90
|
) -> None:
|
|
87
91
|
self._circuit_breaker = circuit_breaker
|
|
92
|
+
self.snapshot_evaluator = snapshot_evaluator
|
|
93
|
+
|
|
88
94
|
self.console.start_plan_evaluation(plan)
|
|
89
95
|
analytics.collector.on_plan_apply_start(
|
|
90
96
|
plan=plan,
|
sqlmesh/core/plan/explainer.py
CHANGED
|
@@ -20,6 +20,7 @@ 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
|
|
23
24
|
|
|
24
25
|
|
|
25
26
|
logger = logging.getLogger(__name__)
|
|
@@ -37,7 +38,10 @@ class PlanExplainer(PlanEvaluator):
|
|
|
37
38
|
self.console = console or get_console()
|
|
38
39
|
|
|
39
40
|
def evaluate(
|
|
40
|
-
self,
|
|
41
|
+
self,
|
|
42
|
+
plan: EvaluatablePlan,
|
|
43
|
+
snapshot_evaluator: SnapshotEvaluator,
|
|
44
|
+
circuit_breaker: t.Optional[t.Callable[[], bool]] = None,
|
|
41
45
|
) -> None:
|
|
42
46
|
plan_stages = stages.build_plan_stages(plan, self.state_reader, self.default_catalog)
|
|
43
47
|
explainer_console = _get_explainer_console(
|
sqlmesh/utils/__init__.py
CHANGED
|
@@ -13,6 +13,7 @@ import traceback
|
|
|
13
13
|
import types
|
|
14
14
|
import typing as t
|
|
15
15
|
import uuid
|
|
16
|
+
from dataclasses import dataclass
|
|
16
17
|
from collections import defaultdict
|
|
17
18
|
from contextlib import contextmanager
|
|
18
19
|
from copy import deepcopy
|
|
@@ -382,3 +383,23 @@ def to_snake_case(name: str) -> str:
|
|
|
382
383
|
return "".join(
|
|
383
384
|
f"_{c.lower()}" if c.isupper() and idx != 0 else c.lower() for idx, c in enumerate(name)
|
|
384
385
|
)
|
|
386
|
+
|
|
387
|
+
|
|
388
|
+
class JobType(Enum):
|
|
389
|
+
PLAN = "SQLMESH_PLAN"
|
|
390
|
+
RUN = "SQLMESH_RUN"
|
|
391
|
+
|
|
392
|
+
|
|
393
|
+
@dataclass(frozen=True)
|
|
394
|
+
class CorrelationId:
|
|
395
|
+
"""ID that is added to each query in order to identify the job that created it."""
|
|
396
|
+
|
|
397
|
+
job_type: JobType
|
|
398
|
+
job_id: str
|
|
399
|
+
|
|
400
|
+
def __str__(self) -> str:
|
|
401
|
+
return f"{self.job_type.value}: {self.job_id}"
|
|
402
|
+
|
|
403
|
+
@classmethod
|
|
404
|
+
def from_plan_id(cls, plan_id: str) -> CorrelationId:
|
|
405
|
+
return CorrelationId(JobType.PLAN, plan_id)
|
|
@@ -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=HQJgjVhwiMv4ia0DPXeZo_njaYuo0HuCC_iKq7gB0lc,528
|
|
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=_B9rmOn0WbgP8DsST8Lg9ODGu9u0WA2D2jRrJRX0VMM,153805
|
|
15
15
|
sqlmesh/core/constants.py,sha256=gUABXWYgH_XOSbaZAJsR5o1dmA61JDCvBDyxqqXX3LM,2630
|
|
16
|
-
sqlmesh/core/context.py,sha256=
|
|
16
|
+
sqlmesh/core/context.py,sha256=mkAceSQIwojrA4pgs23vJKJGEy7yL-Bk5a8E-bR02bM,119377
|
|
17
17
|
sqlmesh/core/context_diff.py,sha256=TCzM8egBE35DskpouOB-GQM2Qf5iUHWbRgiB5yZ6tzg,21552
|
|
18
18
|
sqlmesh/core/dialect.py,sha256=cS7JM0WeqjMfOIpZY7250ivCuyqHyHJi2Io2gezG8S4,49820
|
|
19
19
|
sqlmesh/core/environment.py,sha256=7DbJX0r5nZRU3LhcgIxbSV-JosQYDjAt3V5Wc2Fpns8,13005
|
|
@@ -54,12 +54,12 @@ 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=LETAHZ-dwW07Uhe8M12gCYwCrYqDSGTKRxSN-5-JACs,6970
|
|
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
|
|
61
|
-
sqlmesh/core/engine_adapter/athena.py,sha256=
|
|
62
|
-
sqlmesh/core/engine_adapter/base.py,sha256=
|
|
61
|
+
sqlmesh/core/engine_adapter/athena.py,sha256=DMC94WfCH8m37cVPio43Q11J8RQE8tuf1nl0RtXZ_CM,26198
|
|
62
|
+
sqlmesh/core/engine_adapter/base.py,sha256=sG9Cq_dwzXmjBxx9RmuLrPhf85YkIbCAqYrHMBiDeow,104056
|
|
63
63
|
sqlmesh/core/engine_adapter/base_postgres.py,sha256=DOsOdCJyQAVfA9S0GznuH0J1bonMqYVP_yJLDYcxFYM,6772
|
|
64
64
|
sqlmesh/core/engine_adapter/bigquery.py,sha256=qJE8vHLKKAeWMvltmYaUvWS95jM_UEZ6UzYLlr58sGo,50424
|
|
65
65
|
sqlmesh/core/engine_adapter/clickhouse.py,sha256=LoPdm_s_s-ZxS1XJPA3Et0iOHeJ1LgqTAFbwBdiqE7A,34912
|
|
@@ -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=6visJ4GBdQ7Stl2T9_J4E_fQlV1o8xoLCuuStekHZYs,111250
|
|
92
92
|
sqlmesh/core/model/kind.py,sha256=_SBjhrTUrCGkmcsKmabbmBIe1s_6aMIEPEaQh0cDIok,36109
|
|
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
|
|
@@ -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=kmCCmEeRwt_SX6Bue2ulICqtJDVqgL4mqdhWrftOr5I,20669
|
|
100
|
+
sqlmesh/core/plan/explainer.py,sha256=mwAqLg6i7HIU_mZnyjqkR0wN3vMccuiRFjMn3y5qqTw,12137
|
|
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
|
|
@@ -261,7 +261,7 @@ sqlmesh/migrations/v0081_update_partitioned_by.py,sha256=Rj9RDd7WBonbGfTJx3vAqSv
|
|
|
261
261
|
sqlmesh/migrations/v0082_warn_if_incorrectly_duplicated_statements.py,sha256=K-Z0ghTCFSZuAYzNSUXF4L8axihPemM15EOXHcqkK3s,2489
|
|
262
262
|
sqlmesh/migrations/v0083_use_sql_for_scd_time_data_type_data_hash.py,sha256=0r-SlncPec4TBpnQTeblPsiIjIOVKc10GjBVbFPGcFA,148
|
|
263
263
|
sqlmesh/schedulers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
264
|
-
sqlmesh/utils/__init__.py,sha256=
|
|
264
|
+
sqlmesh/utils/__init__.py,sha256=51VqA2etTZ6kX54250s1hN5ui7D89OeUTUQ9kgMze7s,11554
|
|
265
265
|
sqlmesh/utils/aws.py,sha256=krxyhrKtsMJDEjT567UbGZogjJ9JRHkvAV-Cg3FVndM,1062
|
|
266
266
|
sqlmesh/utils/cache.py,sha256=GITQ3sldwG4vlI0wKIDI7yOr1CND1EI3necAmeCEW8g,4743
|
|
267
267
|
sqlmesh/utils/concurrency.py,sha256=EMgEecfPFN9_2Wjz4TUksJngECGse7fnKVcLswkmhAk,9274
|
|
@@ -283,7 +283,7 @@ sqlmesh/utils/pydantic.py,sha256=I898jAFqa3qU6lG2uPpRebVFncOUo8ZrLWM_R3K3DHU,116
|
|
|
283
283
|
sqlmesh/utils/rich.py,sha256=BpB47G0-JcU41LkGkeGKroexj4NOV5fox4-GOIXPgIc,3545
|
|
284
284
|
sqlmesh/utils/windows.py,sha256=r7Yin4WEwbvH7sKA3hOJtRsclmscNuBeCklCfVPvtQs,611
|
|
285
285
|
sqlmesh/utils/yaml.py,sha256=hvo5lmybYLcIx4p6CQwufS8X4MbwS60lEBnCmYJCXmU,2336
|
|
286
|
-
sqlmesh-0.197.1.
|
|
286
|
+
sqlmesh-0.197.1.dev3.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
|
|
287
287
|
web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
288
288
|
web/client/dist/index.html,sha256=kNpFjWxt34Pf-P-cROtPWi3GNSVk6zqA3eoN9tlZXI0,5472
|
|
289
289
|
web/client/dist/assets/Audits-DKgXravk.js,sha256=SaVQhNlislD_yQc_KivO7SPi1JH0ts1GnDPD5Zssutw,1041
|
|
@@ -401,8 +401,8 @@ web/server/api/endpoints/models.py,sha256=ud-lRwriyI_OYg9tZchrBgeiXELiRTLNEodraf
|
|
|
401
401
|
web/server/api/endpoints/modules.py,sha256=8hqqgonGay_mJmpCw0IdbjsPhWlQH2VLdKAqha-myac,468
|
|
402
402
|
web/server/api/endpoints/plan.py,sha256=OYuQ_4dgbhG9ibTcX1a8mvYgH3ANxw9Fhbb4wg6QWqc,9222
|
|
403
403
|
web/server/api/endpoints/table_diff.py,sha256=SCy3-pr5x6bEEiOaZGCDbiHQhpgxwmnz3Acqa2Ie6jI,2090
|
|
404
|
-
sqlmesh-0.197.1.
|
|
405
|
-
sqlmesh-0.197.1.
|
|
406
|
-
sqlmesh-0.197.1.
|
|
407
|
-
sqlmesh-0.197.1.
|
|
408
|
-
sqlmesh-0.197.1.
|
|
404
|
+
sqlmesh-0.197.1.dev3.dist-info/METADATA,sha256=-yuLM6HBRp3nnkp9Rabpzk9Umn_suvkbalDAC7TalN8,26686
|
|
405
|
+
sqlmesh-0.197.1.dev3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
406
|
+
sqlmesh-0.197.1.dev3.dist-info/entry_points.txt,sha256=pIYKtg-u-uO7BK_Y0qrdmfyj0bYrcMc3Xiqr5WE3VFk,121
|
|
407
|
+
sqlmesh-0.197.1.dev3.dist-info/top_level.txt,sha256=bspjo5vjELQkuN0qKuTFIbsrUt3Zeo8D2mlKeHG1LdE,12
|
|
408
|
+
sqlmesh-0.197.1.dev3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|