sqlmesh 0.226.1.dev8__py3-none-any.whl → 0.226.1.dev9__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.

Potentially problematic release.


This version of sqlmesh might be problematic. Click here for more details.

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.226.1.dev8'
32
- __version_tuple__ = version_tuple = (0, 226, 1, 'dev8')
31
+ __version__ = version = '0.226.1.dev9'
32
+ __version_tuple__ = version_tuple = (0, 226, 1, 'dev9')
33
33
 
34
34
  __commit_id__ = commit_id = None
sqlmesh/core/scheduler.py CHANGED
@@ -659,6 +659,7 @@ class Scheduler:
659
659
  }
660
660
  snapshots_to_create = snapshots_to_create or set()
661
661
  original_snapshots_to_create = snapshots_to_create.copy()
662
+ upstream_dependencies_cache: t.Dict[SnapshotId, t.Set[SchedulingUnit]] = {}
662
663
 
663
664
  snapshot_dag = snapshot_dag or snapshots_to_dag(batches)
664
665
  dag = DAG[SchedulingUnit]()
@@ -670,12 +671,15 @@ class Scheduler:
670
671
  snapshot = self.snapshots_by_name[snapshot_id.name]
671
672
  intervals = intervals_per_snapshot.get(snapshot.name, [])
672
673
 
673
- upstream_dependencies: t.List[SchedulingUnit] = []
674
+ upstream_dependencies: t.Set[SchedulingUnit] = set()
674
675
 
675
676
  for p_sid in snapshot.parents:
676
- upstream_dependencies.extend(
677
+ upstream_dependencies.update(
677
678
  self._find_upstream_dependencies(
678
- p_sid, intervals_per_snapshot, original_snapshots_to_create
679
+ p_sid,
680
+ intervals_per_snapshot,
681
+ original_snapshots_to_create,
682
+ upstream_dependencies_cache,
679
683
  )
680
684
  )
681
685
 
@@ -726,29 +730,43 @@ class Scheduler:
726
730
  parent_sid: SnapshotId,
727
731
  intervals_per_snapshot: t.Dict[str, Intervals],
728
732
  snapshots_to_create: t.Set[SnapshotId],
729
- ) -> t.List[SchedulingUnit]:
733
+ cache: t.Optional[t.Dict[SnapshotId, t.Set[SchedulingUnit]]] = None,
734
+ ) -> t.Set[SchedulingUnit]:
735
+ cache = cache or {}
730
736
  if parent_sid not in self.snapshots:
731
- return []
737
+ return set()
738
+ if parent_sid in cache:
739
+ return cache[parent_sid]
732
740
 
733
741
  p_intervals = intervals_per_snapshot.get(parent_sid.name, [])
734
742
 
743
+ parent_node: t.Optional[SchedulingUnit] = None
735
744
  if p_intervals:
736
745
  if len(p_intervals) > 1:
737
- return [DummyNode(snapshot_name=parent_sid.name)]
738
- interval = p_intervals[0]
739
- return [EvaluateNode(snapshot_name=parent_sid.name, interval=interval, batch_index=0)]
740
- if parent_sid in snapshots_to_create:
741
- return [CreateNode(snapshot_name=parent_sid.name)]
746
+ parent_node = DummyNode(snapshot_name=parent_sid.name)
747
+ else:
748
+ interval = p_intervals[0]
749
+ parent_node = EvaluateNode(
750
+ snapshot_name=parent_sid.name, interval=interval, batch_index=0
751
+ )
752
+ elif parent_sid in snapshots_to_create:
753
+ parent_node = CreateNode(snapshot_name=parent_sid.name)
754
+
755
+ if parent_node is not None:
756
+ cache[parent_sid] = {parent_node}
757
+ return {parent_node}
758
+
742
759
  # This snapshot has no intervals and doesn't need creation which means
743
760
  # that it can be a transitive dependency
744
- transitive_deps: t.List[SchedulingUnit] = []
761
+ transitive_deps: t.Set[SchedulingUnit] = set()
745
762
  parent_snapshot = self.snapshots[parent_sid]
746
763
  for grandparent_sid in parent_snapshot.parents:
747
- transitive_deps.extend(
764
+ transitive_deps.update(
748
765
  self._find_upstream_dependencies(
749
- grandparent_sid, intervals_per_snapshot, snapshots_to_create
766
+ grandparent_sid, intervals_per_snapshot, snapshots_to_create, cache
750
767
  )
751
768
  )
769
+ cache[parent_sid] = transitive_deps
752
770
  return transitive_deps
753
771
 
754
772
  def _run_or_audit(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlmesh
3
- Version: 0.226.1.dev8
3
+ Version: 0.226.1.dev9
4
4
  Summary: Next-generation data transformation framework
5
5
  Author-email: "TobikoData Inc." <engineering@tobikodata.com>
6
6
  License: Apache License
@@ -1,5 +1,5 @@
1
1
  sqlmesh/__init__.py,sha256=v_spqQEhcnGaahp1yPvMqUIa6mhH3cs3Bc1CznxvCEA,7965
2
- sqlmesh/_version.py,sha256=U1w4pzMpOm_drWkVAhW0YS4I88d6BADCLrc54-0ibW4,721
2
+ sqlmesh/_version.py,sha256=9R8jaoEqE0UBtmm7B-JigsD3PXUf-V8fQNjMtbK11Xs,721
3
3
  sqlmesh/magics.py,sha256=xLh3u4eqpVrKRVN5KF3X84RPRqjygAB9AJP1TXwH8hg,42086
4
4
  sqlmesh/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  sqlmesh/cicd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -25,7 +25,7 @@ sqlmesh/core/node.py,sha256=2ejDwH1whl_ic1CRzX16Be-FQrosAf8pdyWb7oPzU6M,19895
25
25
  sqlmesh/core/notification_target.py,sha256=PPGoDrgbRKxr27vJEu03XqNTQLYTw0ZF_b0yAapxGeI,16158
26
26
  sqlmesh/core/reference.py,sha256=k7OSkLqTjPR8WJjNeFj0xAJ297nZUMgb_iTVwKRRKjc,4875
27
27
  sqlmesh/core/renderer.py,sha256=JZuoydTwK0voU5sH70jhULjo5_x41uTEFKydtT-JRCg,28855
28
- sqlmesh/core/scheduler.py,sha256=JK48cWPbzHD8f5FWKcyKUz13qDt_SJ-7bnIqPghvMAs,50006
28
+ sqlmesh/core/scheduler.py,sha256=pzbZoZFVOiF4D2My2E9J7aDAiNUjfPf85cpgySKTUDk,50676
29
29
  sqlmesh/core/schema_diff.py,sha256=qM4uxOBtrAqx8_5JU0ERicMT-byLD4xUUv4FrQw92js,33934
30
30
  sqlmesh/core/schema_loader.py,sha256=_Pq2RSw91uthqv1vNi_eHmLlzhtGz_APMJ0wAJZYuvk,3677
31
31
  sqlmesh/core/selector.py,sha256=gb8NpDXO-yxzxAB4Rl5yRkirWZyouV9V9d9AC1Lfzjg,18030
@@ -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.226.1.dev8.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
241
+ sqlmesh-0.226.1.dev9.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.226.1.dev8.dist-info/METADATA,sha256=ab2HYriOyZUIhvTl6VuLh2D8Krs4wXCyq0ojR0OHYSk,26685
367
- sqlmesh-0.226.1.dev8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
368
- sqlmesh-0.226.1.dev8.dist-info/entry_points.txt,sha256=sHAf6tQczIM8xZoduN4qaUjV7QEPVUUW_LCT8EDUMv4,155
369
- sqlmesh-0.226.1.dev8.dist-info/top_level.txt,sha256=RQ-33FPe2IgL0rgossAfJkCRtqslz9b7wFARqiWLC5Q,24
370
- sqlmesh-0.226.1.dev8.dist-info/RECORD,,
366
+ sqlmesh-0.226.1.dev9.dist-info/METADATA,sha256=-vjTSrWZhEFlwh19OqZMq9qi-GZCzoxTalGs7mFQ13g,26685
367
+ sqlmesh-0.226.1.dev9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
368
+ sqlmesh-0.226.1.dev9.dist-info/entry_points.txt,sha256=sHAf6tQczIM8xZoduN4qaUjV7QEPVUUW_LCT8EDUMv4,155
369
+ sqlmesh-0.226.1.dev9.dist-info/top_level.txt,sha256=RQ-33FPe2IgL0rgossAfJkCRtqslz9b7wFARqiWLC5Q,24
370
+ sqlmesh-0.226.1.dev9.dist-info/RECORD,,