I’ve been using streamlit extensively in place of Jupyter for EDA. For our team processes, we submit our analysis through code review. One of the common questions I’ve had from reviewers used to Jupyter is, “Is there a way to quickly see which code has generated the chart?” I’m accustomed to doing quick searches in the streamlit code to the accompanying text in the browser, but it’s a flow change that’s difficult for other folks new to streamlit.
Has anyone come up with any good solutions to bridge this?
You can use st.echo to display both your code and the associated chart. If you wish to not always display the code, but to have an option to switch it on or off, you could use the following (not very elegant) work-around:
show_python_code = st.sidebar.checkbox("Show the Python Code")
if show_python_code:
with st.echo():
table = df.describe()
st.write(table)
else:
st.write(df.describe())
If someone has a better solution for this then I am curious to know as well.
I like this solution. For large code executions it becomes unwieldy due to having to write the execution in the echo block and else block. Have you found a way around that?
We use inspect.getsourcelines to do this. That said, it would be nice to integrate this better with Streamlit. Feel free to open a Feature Request here.