Skip to content

Commit b9ff2f3

Browse files
committed
Inline callback input and state definitions in scatter_3d_view.py
Removed shared input and state dictionaries (e.g., COMMON_STATE, FILTER_STATE) and replaced them with explicit inline definitions in callback registrations. This change improves code clarity by making callback dependencies more visible and reduces indirection.
1 parent 04f32d1 commit b9ff2f3

File tree

1 file changed

+43
-75
lines changed

1 file changed

+43
-75
lines changed

view_callbacks/scatter_3d_view.py

Lines changed: 43 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -75,67 +75,6 @@
7575
from process_frame import process_overlay_frame
7676
from process_frame import process_single_frame
7777

78-
# Common state definitions to reduce repetition
79-
COMMON_STATE = {
80-
"session_id": State("session-id", "data"),
81-
"file": State("current-file", "data"),
82-
"file_list": State("file-add", "value"),
83-
"c_key": State("c-picker-3d", "value"),
84-
"size_vary": State("size-vary-switch", "value"),
85-
"darkmode": State("darkmode-switch", "value"),
86-
}
87-
88-
FILTER_STATE = {
89-
"cat_values": State({"type": "filter-dropdown", "index": ALL}, "value"),
90-
"num_values": State({"type": "filter-slider", "index": ALL}, "value"),
91-
"visible_list": State("visible-picker", "value"),
92-
}
93-
94-
ANIMATION_STATE = {
95-
"slider_arg": State("slider-frame", "value"),
96-
"ispaused": State("interval-component", "disabled"),
97-
"decay": State("decay-slider", "value"),
98-
}
99-
100-
VISUAL_STATE = {
101-
"colormap": State("colormap-3d", "value"),
102-
"overlay_enable": State("overlay-switch", "value"),
103-
}
104-
105-
PICKER_3D_STATE = {
106-
"slider_picker_3d": State("slider-picker-3d", "value"),
107-
"x_picker_3d": State("x-picker-3d", "value"),
108-
"y_picker_3d": State("y-picker-3d", "value"),
109-
"z_picker_3d": State("z-picker-3d", "value"),
110-
"x_ref_picker_3d": State("x-ref-picker-3d", "value"),
111-
"y_ref_picker_3d": State("y-ref-picker-3d", "value"),
112-
"z_ref_picker_3d": State("z-ref-picker-3d", "value"),
113-
}
114-
115-
# Common input definitions
116-
FILTER_INPUTS = {
117-
"cat_values": Input({"type": "filter-dropdown", "index": ALL}, "value"),
118-
"num_values": Input({"type": "filter-slider", "index": ALL}, "value"),
119-
"visible_list": Input("visible-picker", "value"),
120-
}
121-
122-
PICKER_3D_INPUTS = {
123-
"slider_picker_3d": Input("slider-picker-3d", "value"),
124-
"x_picker_3d": Input("x-picker-3d", "value"),
125-
"y_picker_3d": Input("y-picker-3d", "value"),
126-
"z_picker_3d": Input("z-picker-3d", "value"),
127-
"x_ref_picker_3d": Input("x-ref-picker-3d", "value"),
128-
"y_ref_picker_3d": Input("y-ref-picker-3d", "value"),
129-
"z_ref_picker_3d": Input("z-ref-picker-3d", "value"),
130-
}
131-
132-
TRIGGER_INPUTS = {
133-
"unused_vistable_trigger": Input("visible-table-change-trigger", "data"),
134-
"unused_left_hide_trigger": Input("left-hide-trigger", "data"),
135-
"unused_right_hide_trigger": Input("right-hide-trigger", "data"),
136-
"unused_file_loaded": Input("file-loaded-trigger", "data"),
137-
}
138-
13978

14079
def get_scatter_3d_view_callbacks(app: dash.Dash) -> None:
14180
"""
@@ -187,10 +126,19 @@ def toggle_3d_config_collapse(n_clicks: int, is_open: bool) -> dict:
187126
"overlay_enable": Input("overlay-switch", "value"),
188127
},
189128
state={
190-
**ANIMATION_STATE,
191-
**FILTER_STATE,
192-
**VISUAL_STATE,
193-
**COMMON_STATE,
129+
"slider_arg": State("slider-frame", "value"),
130+
"ispaused": State("interval-component", "disabled"),
131+
"decay": State("decay-slider", "value"),
132+
"cat_values": State({"type": "filter-dropdown", "index": ALL}, "value"),
133+
"num_values": State({"type": "filter-slider", "index": ALL}, "value"),
134+
"visible_list": State("visible-picker", "value"),
135+
"colormap": State("colormap-3d", "value"),
136+
"c_key": State("c-picker-3d", "value"),
137+
"size_vary": State("size-vary-switch", "value"),
138+
"darkmode": State("darkmode-switch", "value"),
139+
"session_id": State("session-id", "data"),
140+
"file": State("current-file", "data"),
141+
"file_list": State("file-add", "value"),
194142
},
195143
prevent_initial_call=True,
196144
)
@@ -208,13 +156,13 @@ def slider_change_callback(
208156
visible_list: list,
209157
# Visual state parameters
210158
colormap: str,
159+
c_key: str,
160+
size_vary: str,
161+
darkmode: list,
211162
# Common state parameters
212163
session_id: str,
213164
file: str,
214165
file_list: list,
215-
c_key: str,
216-
size_vary: str,
217-
darkmode: list,
218166
) -> dict:
219167
"""
220168
Update the 3D scatter plot when slider position changes.
@@ -458,15 +406,33 @@ def visible_table_change_callback(
458406
),
459407
},
460408
inputs={
461-
**FILTER_INPUTS, # cat_values, num_values, visible_list
462-
**PICKER_3D_INPUTS, # slider_picker_3d, x_picker_3d, etc.
463-
**TRIGGER_INPUTS, # unused triggers
409+
"cat_values": Input({"type": "filter-dropdown", "index": ALL}, "value"),
410+
"num_values": Input({"type": "filter-slider", "index": ALL}, "value"),
411+
"visible_list": Input("visible-picker", "value"),
412+
"slider_picker_3d": Input("slider-picker-3d", "value"),
413+
"x_picker_3d": Input("x-picker-3d", "value"),
414+
"y_picker_3d": Input("y-picker-3d", "value"),
415+
"z_picker_3d": Input("z-picker-3d", "value"),
416+
"x_ref_picker_3d": Input("x-ref-picker-3d", "value"),
417+
"y_ref_picker_3d": Input("y-ref-picker-3d", "value"),
418+
"z_ref_picker_3d": Input("z-ref-picker-3d", "value"),
419+
"unused_vistable_trigger": Input("visible-table-change-trigger", "data"),
420+
"unused_left_hide_trigger": Input("left-hide-trigger", "data"),
421+
"unused_right_hide_trigger": Input("right-hide-trigger", "data"),
422+
"unused_file_loaded": Input("file-loaded-trigger", "data"),
464423
"c_key": Input("c-picker-3d", "value"),
465424
},
466425
state={
467-
**ANIMATION_STATE, # ispaused, slider_arg, decay
468-
**VISUAL_STATE, # overlay_enable, colormap
469-
**COMMON_STATE, # size_vary, darkmode, session_id, file, file_list
426+
"slider_arg": State("slider-frame", "value"),
427+
"ispaused": State("interval-component", "disabled"),
428+
"decay": State("decay-slider", "value"),
429+
"colormap": State("colormap-3d", "value"),
430+
"overlay_enable": State("overlay-switch", "value"),
431+
"size_vary": State("size-vary-switch", "value"),
432+
"darkmode": State("darkmode-switch", "value"),
433+
"session_id": State("session-id", "data"),
434+
"file": State("current-file", "data"),
435+
"file_list": State("file-add", "value"),
470436
"trigger_val": State("background-trigger", "data"),
471437
"data_path": State("data-path", "value"),
472438
"case": State("test-case", "value"),
@@ -626,7 +592,9 @@ def regenerate_figure_callback(
626592
"trigger_idx": Input("background-trigger", "data"),
627593
},
628594
state={
629-
**FILTER_STATE, # cat_values, num_values, visible_list
595+
"cat_values": State({"type": "filter-dropdown", "index": ALL}, "value"),
596+
"num_values": State({"type": "filter-slider", "index": ALL}, "value"),
597+
"visible_list": State("visible-picker", "value"),
630598
"c_key": State("c-picker-3d", "value"),
631599
"session_id": State("session-id", "data"),
632600
"file": State("current-file", "data"),

0 commit comments

Comments
 (0)