CoolFace
Apppublic

jordancheney89/causality

sourceHugging Facemitupdated 4mo agoView on Hugging Face
0likes
__init__.py45 linesDownload Raw Back to callbacks
1from dash import Output, Input, State2 3from .psm import register_psm_callbacks4from .bayesian import register_bayesian_callbacks5from .uplift import register_uplift_callbacks6from .comparison import register_comparison_callbacks7 8# Pure-clientside toggle: flipping `is_open` doesn't need a server roundtrip.9_TOGGLE_JS = "function(n, is_open) { return !is_open; }"10 11 12def _register_collapse_toggles(app, pairs):13    """Wire `methodology_collapse` (and similar) buttons to their collapses14    via a single clientside callback per pair.15 16    `pairs` is an iterable of `(button_id, collapse_id)`. The button-click17    flips the collapse's `is_open` state with no server work.18    """19    for btn_id, collapse_id in pairs:20        app.clientside_callback(21            _TOGGLE_JS,22            Output(collapse_id, "is_open"),23            Input(btn_id, "n_clicks"),24            State(collapse_id, "is_open"),25            prevent_initial_call=True,26        )27 28 29def register_callbacks(app):30    register_psm_callbacks(app)31    register_bayesian_callbacks(app)32    register_uplift_callbacks(app)33    register_comparison_callbacks(app)34    _register_collapse_toggles(35        app,36        [37            ("method-btn-tab2", "method-collapse-tab2"),38            ("method-btn-tab3", "method-collapse-tab3"),39            ("method-btn-tab4", "method-collapse-tab4"),40            ("method-btn-tab5", "method-collapse-tab5"),41            ("ppc-btn", "ppc-collapse"),42            ("diag-btn", "diag-collapse"),43        ],44    )45