einteract
[!WARNING] This package has been deprecated and is no longer actively maintained. For improved interactive dashboards within Jupyter and to access future developments, we recommend migrating to DashLab.
An enhanced interactive widget that lets you observe any trait of widgets, observe multiple functions and build beautiful dashboards which can be turned into full screen. This is a wrapper library around interact functionality in ipyslides which also provides rich content representations.
Installation
You can install einteract using pip:
pip install einteract
Or if you prefer to install from source, clone the repository and in its top folder, run:
pip install -e .
Interactive Playground
✨ Try it in your browser ✨
| Jupyter Lab | Notebook | Binder |
|---|---|---|
Features
- InteractBase: Create interactive dashboard applications with minimal code by extending the
InteractBaseclass and defining methods with the@callbackdecorator. - Custom Widgets:
- Included custom built widgets for enhanced interaction.
- Pass any DOMWidget as a parameter to
interact/interactivefunctions unlike defaultipywidgets.interactivebehavior. - Observe any trait of the widget by
'widget_name.trait_name'where'widget_name'is assigned to awidget/fixed(widget)in control parameters, OR'.trait_name'iftrait_nameexists on instance of interactive. - You can use '.fullscreen' to detect fullscreen change and do actions based on that.
- Add
ipywidgets.Buttonto hold callbacks which use it as paramter for a click
- Plotly Integration: Modified plotly support with additional traits like
selectedandclicked - HTML support:
- Any (supported) python object can be converted to html using
hstackandvstackfunction.
- Any (supported) python object can be converted to html using
- JupyTimer: A non-blocking widget timer for Jupyter Notebooks without threading/asyncio.
- Event Callbacks: Easy widget event handling with the
@callbackdecorator inside the subclass ofInteractBaseor multiple functions ininteract/interactivefunctions. - Full Screen Mode: Transform your dashboards into full-screen applications by added button.
Usage Example
import numpy as np
import matplotlib.pyplot as plt
import ipywidgets as ipw
import pandas as pd
import plotly.graph_objects as go
import einteract as ei
dash = ei.Dashboard(
fig = ei.patched_plotly(go.FigureWidget()),
html = ipw.HTML('**Select Box/Lesso on figure traces**'),
A = (1,10), omega = (0,20), phi = (0,10),
sdata = 'fig.selected', cdata = 'fig.clicked', fs = '.isfullscreen',
)
@dash.callback('out-click', throttle = 200) # limit click rate by 200 ms
def on_click(cdata,html):
display(pd.DataFrame(cdata or {}))
@dash.callback('out-select')
def on_select(sdata, html):
plt.scatter(sdata.get('xs',[]),sdata.get('ys',[]))
plt.show()
@dash.callback('out-fs')
def detect_fs(fig, fs):
print("isfullscreen = ",fs)
fig.layout.autosize = False # double trigger
fig.layout.autosize = True
@dash.callback
def plot(fig:go.FigureWidget, A, omega,phi): # adding type hint allows auto-completion inside function
fig.data = []
x = np.linspace(0,10,100)
fig.add_trace(go.Scatter(x=x, y=A*np.sin(omega*x + phi), mode='lines+markers'))
dash.set_css({
'.left-sidebar':{'background':'whitesmoke'},
':fullscreen': {'height': '100vh'}}
)
dash.set_layout(
left_sidebar=['A','omega','phi','html','out-main'],
center=['fig','out-click'],
pane_widths=[3,7,0],
)
dash
Comprehensive Examples
- Check out the einteract-demo.ipynb which demonstates subclassing
InteractBase, using custom widgets, and observing multiple functions through the@callbackdecorator. - See Bandstructure Visualizer and KPath Builder as comprehensive dashboards.
Metadata
Release files for einteract 1.4.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| einteract-1.4.3.tar.gz | 6.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| einteract-1.4.3-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 11.4 kB
Release files / einteract-1.4.3.tar.gz
| Download URL | einteract-1.4.3.tar.gz |
|---|---|
| Size | 6.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
abead4fd52df86e0bd2418d2c1b488a3a6f5c2b10430cfb5c7211becfd0fec6a
|
|
BLAKE2b-256 checksum How to use checksums |
cc01ca48f1d339b9287bcbe044044b402598fa9c8a97df618e775792d0d82a81
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.9.13
|
Release files / einteract-1.4.3-py2.py3-none-any.whl
| Download URL | einteract-1.4.3-py2.py3-none-any.whl |
|---|---|
| Size | 5.3 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
0dc7edba244bd8768e96dafdc595004658b4371fd73e17db3dccf33ea6b91354
|
|
BLAKE2b-256 checksum How to use checksums |
9d8f91d3172b820d1a232a2acc1659d109cbf6bb2192a556abd8234668375bfb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.9.13
|