49
49
SQLMeshError ,
50
50
SignalEvalError ,
51
51
)
52
- from sqlmesh .utils .pydantic import serialize_expressions
53
52
54
53
if t .TYPE_CHECKING :
55
54
from sqlmesh .core .context import ExecutionContext
64
63
class SignalListener :
65
64
def on_signal_register (
66
65
self ,
67
- snapshot_id : SnapshotId ,
68
- signals : t .Dict [str , t .Dict [str , str ]],
66
+ snapshots : t .List [Snapshot ],
69
67
) -> None :
70
68
pass
71
69
72
70
def on_signal_start (
73
71
self ,
74
- snapshot_id : SnapshotId ,
72
+ snapshot : Snapshot ,
75
73
signal_name : str ,
76
74
signal_index : int ,
77
75
intervals : Intervals ,
78
- signal_kwargs : t .Dict [str , str ],
76
+ signal_kwargs : t .Dict [str , t . Optional [ exp . Expression ] ],
79
77
) -> None :
80
78
pass
81
79
82
80
def on_signal_end (
83
81
self ,
84
- snapshot_id : SnapshotId ,
82
+ snapshot : Snapshot ,
85
83
signal_name : str ,
86
84
signal_index : int ,
87
- signal_kwargs : t .Dict [str , str ],
85
+ signal_kwargs : t .Dict [str , t . Optional [ exp . Expression ] ],
88
86
intervals : Intervals ,
89
87
ready_intervals : Intervals ,
90
88
error : t .Optional [Exception ] = None ,
@@ -339,6 +337,7 @@ def batch_intervals(
339
337
)
340
338
for snapshot , intervals in merged_intervals .items ()
341
339
}
340
+ self .signal_listener .on_signal_register (list (merged_intervals .keys ()))
342
341
snapshot_batches = {}
343
342
all_unready_intervals : t .Dict [str , set [Interval ]] = {}
344
343
for snapshot_id in dag :
@@ -800,16 +799,6 @@ def _check_ready_intervals(
800
799
if not (signals and signals .signals_to_kwargs ):
801
800
return intervals
802
801
803
- signals_to_serialized_kwargs = {
804
- signal_name : serialize_expressions (kwargs )
805
- for signal_name , kwargs in signals .signals_to_kwargs .items ()
806
- }
807
-
808
- self .signal_listener .on_signal_register (
809
- snapshot_id = snapshot .snapshot_id ,
810
- signals = signals_to_serialized_kwargs ,
811
- )
812
-
813
802
self .console .start_signal_progress (
814
803
snapshot ,
815
804
self .default_catalog ,
@@ -823,11 +812,11 @@ def _check_ready_intervals(
823
812
signal_start_ts = time .perf_counter ()
824
813
825
814
self .signal_listener .on_signal_start (
826
- snapshot_id = snapshot . snapshot_id ,
815
+ snapshot = snapshot ,
827
816
signal_name = signal_name ,
828
817
signal_index = signal_idx ,
829
818
intervals = intervals_to_check ,
830
- signal_kwargs = signals_to_serialized_kwargs [ signal_name ] ,
819
+ signal_kwargs = kwargs ,
831
820
)
832
821
833
822
error = None
@@ -849,10 +838,10 @@ def _check_ready_intervals(
849
838
finally :
850
839
ready_intervals = merge_intervals (intervals )
851
840
self .signal_listener .on_signal_end (
852
- snapshot_id = snapshot . snapshot_id ,
841
+ snapshot = snapshot ,
853
842
signal_name = signal_name ,
854
843
signal_index = signal_idx ,
855
- signal_kwargs = signals_to_serialized_kwargs [ signal_name ] ,
844
+ signal_kwargs = kwargs ,
856
845
intervals = intervals_to_check ,
857
846
ready_intervals = ready_intervals ,
858
847
error = error ,
0 commit comments