I'm trying use a multi select widget to enable users to select from a list of countries, and then have a widget button which, when clicked, runs all the cells below.
This displays the list.
from IPython.display import display
w = widgets.SelectMultiple(
description="Select up to five countries",
options=dfCountries['name'].tolist()
)
display(w)
And I want something like this to run all cells below:
def run_all(button):
get_ipython().run_cell()
button = widgets.Button(description="Create next input")
button.on_click(run_all)
display(button)
But I can't find the hook to 'run all cells below
Thanks
If I understood correctly you could do that via js.
See the following code:
from IPython.display import Javascript
Javascript('IPython.notebook.execute_cells_below()')
Will execute all the cells below the active cell so for you button it could be something like:
from IPython.display import Javascript, display
from ipywidgets import widgets
def run_all(ev):
display(Javascript('IPython.notebook.execute_cells_below()'))
button = widgets.Button(description="Create next input")
button.on_click(run_all)
display(button)
Let me know if this is what you need.