AppState
a traitlet based class to help manage state in ipywidgets ui's
from curvenote import AppState, with_state
state = AppState()
wave_1_amp = FloatSlider(1.0, min=0.1, max=5.0, step=0.1, description="1 - Amp")
state.register_stateful_widget(wave_1_amp, "wave_1_amp", Float(1.0))
state.register_stateful_property("my_dict", Dict(dict(A="hello", B="world", C=1)))
def my_update_fn(state):
some_calc_function(state.wave_1_amp, state.my_dict)
state.observe(with_state(my_update_fn))
def wave_1_observer(evt):
pass
state.register_widget_observer("wave_1_amp", wave_1_observer)
def trait_observer(evt):
pass
state.register_widget_observer("my_dict", trait_observer)
from IPython.display import display
display(state.outlet)