controller#

class Controls(slider_formats=None, play_buttons=False, play_button_pos='right', use_ipywidgets=None, use_cache=True, **kwargs)[source]#

Bases: object

Manager of many interactive functions.

add_kwargs(kwargs, slider_formats=None, play_buttons=None)[source]#

Add kwargs to the controller.

If you pass a redundant kwarg it will just be overwritten maybe should only raise a warning rather than an error?.

need to implement matplotlib widgets also a big question is how to dynamically update the display of matplotlib widgets.

control_figures#

Storage for figures made of matplotlib sliders.

display()[source]#

Display the display the ipywidgets controls or show the control figures.

params#

Parameters in the controller, see Custom Callbacks and Accessing Parameter Values.

register_callback(callback, params=None, eager=False)[source]#

Register a callback to be called anytime one of the specified params changes.

Parameters:
callbackcallable

A function called. Should accept all of the parameters specified by params as a kwargs.

paramsstr, list of str, or None

The params to be passed to the callback. If None then all params currently registered with this controls object will be used.

eagerbool, default: False

If True, call the callback immediately upon registration

save_animation(filename, fig, param, interval=20, func_anim_kwargs=None, N_frames=None, **kwargs)[source]#

Save an animation over one of the parameters controlled by this Controls object.

Parameters:
filenamestr

Where to save the animation

figfigure

The figure to animate.

paramstr

the name of the kwarg to use to animate

intervalint, default: 2o

interval between frames in ms

func_anim_kwargsdict, optional

kwargs to pass the creation of the underlying FuncAnimation

N_framesint

Only used if the param is a matplotlib slider that was created without a valstep argument. This will only be relevant if you passed your own matplotlib slider as a kwarg when plotting. If needed but not given it will default to a value of 200.

**kwargs

Passed through to anim.save

Returns:
animmatplotlib.animation.FuncAniation
show()[source]#

Show the control figures or display the ipywidgets controls.

slider_updated(change, key, values)[source]#

Call the slider updated function special casing vmin/vmax.

Not sure why this is public - users should NOT call this directly.

thin wrapper to enable splitting of special cased range sliders. e.g. of vmin_vmax -> vmin and vmax. In the future maybe generalize this to any range slider with an underscore in the name?.

gogogo_controls(kwargs, controls, display_controls, slider_formats, play_buttons, extra_controls=None)[source]#

Create a new controls object.

This should be private - users should NOT use this.

prep_scalars(kwarg_dict, **kwargs)[source]#

Process potentially scalar arguments.

This allows for passing in slider shorthands for these arguments, and for passing indexed controls objects for them.

Parameters:
kwarg_dictdict

The kwargs passed to the calling functions

kwargs

The arguments to process

Returns:
funcsdict

The processed arguments. Re-assign the args as s = funcs['s'] to make use of any autogenerated functions to connect callbacks to these scalar values.

extra_ctrlslist of Controls

Any extra controls objects that need to be used. Useful for gogogo_controls

param_excluderfunction

A function to exclude any scalar kwargs we added from params. Use this in the update functions to avoid calling user provided functions with the kwargs that we added here.