From 3be7505ba1e56f2ea411e7cbc7c070b58860b447 Mon Sep 17 00:00:00 2001 From: Jasmine Schoch <112601674+jasmine-schoch@users.noreply.github.com> Date: Wed, 6 Mar 2024 17:15:01 -0800 Subject: [PATCH] creating wrapping function for particle sizes to make things faster --- API/oursin/particles.py | 18 ++++++++++++++++-- API/oursin/ui.py | 21 +++++++++++++++++++++ 2 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 API/oursin/ui.py diff --git a/API/oursin/particles.py b/API/oursin/particles.py index ea519f90..309ae4fe 100644 --- a/API/oursin/particles.py +++ b/API/oursin/particles.py @@ -121,7 +121,7 @@ def create(num_particles): num_particles : int Examples - -------- + -------- >>> neurons = urchin.particles.create(3) """ global counter @@ -191,7 +191,21 @@ def set_sizes(particles_list, sizes_list): neurons_sizes[neuron.id] = utils.sanitize_float(sizes_list[i]) else: warnings.warn(f"Particle with id {neuron.id} does not exist in Unity, call create method first.") - client.sio.emit('SetParticleSize', neurons_sizes) + + _set_sizes(neurons_sizes) + +def _set_sizes(data): + """Set particles sizes when already wrapped + + Parameters + ---------- + neurons_sizes: dictionaryy of neuron id: float of particle size + + Examples + -------- + >>> urchin.particles._set_sizes({p1:0.01, p2:0.02, p3:0.03}) + """ + client.sio.emit('SetParticleSize', data) def set_colors(particles_list, colors_list): """Set neuron colors diff --git a/API/oursin/ui.py b/API/oursin/ui.py new file mode 100644 index 00000000..a57642bd --- /dev/null +++ b/API/oursin/ui.py @@ -0,0 +1,21 @@ +"""Interactive components within notebooks""" + + +def slider_widget(function_call, slider_parameters): + """Creates a slider in the notebook, displays results of the input function + + + Parameters + ---------- + function_call: function established earlier in code + slider_parameters: list of start, stop, and increment for slider to follow + + Examples + --------- + >>> urchin.ui.slider_widget(update_sizes_from_firing) + """ + try: + import ipywidgets as widgets + except ImportError: + raise ImportError("Widgets package is not installed. Please pip install ipywidgets to use this function.") + # widgets.interact(function_call, t=(slider_parameters[0],slider_parameters[1],slider_parameters[2]))