import streamlit as st
from streamlit_jupyter import StreamlitPatcher, tqdm
# register streamlit with jupyter-compatible wrappers StreamlitPatcher().jupyter()
streamlit-jupyter
Docs & links
Detailed docs for this library can be found at ddobrinskiy.github.io/streamlit-jupyter
ToDos on github project
The rest of this README provides a quick overview of the library.
Install
pip install streamlit_jupyter
How to use
Take a look at our example notebook, streamlit version runs here
The main idea is for you do experiment and develop in your notebook, visually see all the pieces, and then convert the notebook to .py
to be run by streamlit
start by importing streamlit and patching it with streamlit-jupyter:
And now develop your notebook as usual, but with the ability to use Streamlit widgets and components.
See how it works below, and check out the example notebook
Currently supported methods
Refer to excellent streamlit docs for more details on each method
method | docstring |
---|---|
st.cache_data |
Implements the public st.cache_data API: the @st.cache_data decorator, and |
st.cache_resource |
Implements the public st.cache_resource API: the @st.cache_resource decorator, |
st.cache |
Legacy caching decorator (deprecated). |
st.caption |
Display text in small font. |
st.checkbox |
Display a checkbox widget. |
st.code |
Display a code block with optional syntax highlighting. |
st.data_editor |
Display a data editor widget. |
st.dataframe |
Display a dataframe as an interactive table. |
st.date_input |
Display a date input widget. |
st.expander |
Insert a multi-element container that can be expanded/collapsed. |
st.header |
Display text in header formatting. |
st.json |
Display object or string as a pretty-printed JSON string. |
st.latex |
Display mathematical expressions formatted as LaTeX. |
st.markdown |
Display string formatted as Markdown. |
st.metric |
Display a metric in big bold font, with an optional indicator of how the metric changed. |
st.multiselect |
Display a multiselect widget. |
st.radio |
Display a radio button widget. |
st.selectbox |
Display a select widget. |
st.subheader |
Display text in subheader formatting. |
st.text_area |
Display a multi-line text input widget. |
st.text_input |
Display a single-line text input widget. |
st.text |
Write fixed-width and preformatted text. |
st.title |
Display text in title formatting. |
st.write |
Write arguments to the app. |
Currently unsupported methods
Most of the other methods are not supported yet.
If you need any of them, you have one of 2 options:
please open an issue or a PR
use them in your notebook regardless, they will still work once you convert your notebook to streamlit. You just won’t be able to preview them in jupyter.
How to contribute
To start with you need to create virtualenv with pipenv tool and the libraries from Pipfile:
pipenv shell
pipenv install -d
Install quatro, if you have Mac OS use homebrew:
brew install quarto
otherwise, check https://quarto.org/docs/download/
The next step is to install streamlit-jupyter from the repo
pip install -e "[dev]"
now you are all set, you can refer to Makefile to see examples with streamlit-jupyter. Simply run a command:
make all
Demonstration
Jupyter | Streamlit | |
---|---|---|
Markdown and headings | ||
Interactive data entry | ||
Pick and choose | ||
Dataframes, caching and progress bars | ||
Plots | ||
Metrics |