jupyter-ui-poll
Block Jupyter cell execution while interacting with widgets.
This library is for people familiar with ipywidgets
who want to solve the
following problem:
Display User Interface in Jupyter using
ipywidgets
or similarWait for data to be entered (this step is surprisingly non-trivial to implement)
Use entered data in cells below
Quick, self contained example:
import time
from ipywidgets import Button
from jupyter_ui_poll import ui_events
# Set up simple GUI, button with on_click callback
# that sets ui_done=True and changes button text
ui_done = False
def on_click(btn):
global ui_done
ui_done = True
btn.description = '👍'
btn = Button(description='Click Me')
btn.on_click(on_click)
display(btn)
# Wait for user to press the button
with ui_events() as poll:
while ui_done is False:
poll(10) # React to UI events (upto 10 at a time)
print('.', end='')
time.sleep(0.1)
print('done')
For a more detailed tutorial see Example notebook, you can also run it right now using awesome Binder service.