Highlights
Introducing a new testing framework for Streamlit apps! Check out our documentation to learn how to build automated tests for your apps.
Announcing the general availability of st.connection, a command to conveniently manage connections in Streamlit apps. Check out the docs to learn more.
SnowparkConnectionhas been upgraded to the new and improvedSnowflakeConnection— the same, great functionality plus more! Check out our built-in connections.
st.dataframeandst.data_editorhave a new toolbar! Users can search and download data in addition to enjoying improved UI for row additions and deletions. See our updated guide on Dataframes.
Notable Changes
When using a spinner with cached functions, the spinner will be overlaid instead of pushing content down (#7488).
st.data_editornow supports datetime index editing (#7483).
Improved support for decimal.Decimalinst.dataframeandst.data_editor(#7475).
Global kwargs were added for hashlib(#7527, #7526). Thanks, DueViktor!
st.components.v1.iframenow permits writing to clipboard (#7487). Thanks, dilipthakkar!
SafeSessionStatedisconnect was replaced with script runner yield points for improved efficiency and clarity (#7373).
The Langchain callback handler will show the full input string inside the body of a st.statuswhen the input string is too long to show as a label (#7478). Thanks, pokidyshev!
st.graphviz_chartnow supports using different Graphviz layout engines (#7505, #4089).
Assorted visual tweaks (#7486, #7592).
plotly.jswas upgraded to version 2.26.1 (#7449, #7476, #7045).
Legacy serialization for DataFrames was removed. All DataFrames will be serialized by Apache Arrow (#7429).
Compatibility for Pillow 10.x was added (#7442).
Migrated _stcore/allowed-message-originsendpoint to_stcore/host-config(#7342).
Added post_parent_messageplatform command to send custom messages from a Streamlit app to its parent window (#7522).
Other Changes
Improved string dtype handling for DataFrames (#7479).
st.writewill avoid usingunsafe_allow_html=Trueif possible (#7432).
Bug fix: Implementation of st.expanderwas simplified for improved behavior and consistency (#7247, #2839, #4111, #4651, #5604).
Bug fix: Multipage links in the sidebar are now aligned with other sidebar elements (#7531).
Bug fix: st.chat_inputwon’t incorrectly prompt forlabelparameter in IDEs (#7560).
Bug fix: Scroll bars correctly overlay st.dataframeandst.data_editorwithout adding empty space (#7090, #6888).
Bug fix: st.chat_messagebehaves correctly with the removal of AutoSizer (#7504, #7473).
Bug fix: Anchor links are reliably produced for non-English headers (#7454, #5291).
Bug fix: st.connections.SnowparkConnectionmore accurately detects when it’s running within Streamlit in Snowflake (#7502).
Bug fix: A user-friendly warning is shown when exceeding the size limitations of a pandas Stylerobject (#7497, #5953).
Bug fix: st.data_editorautomatically converts non-string column names to strings (#7485, #6950).
Bug fix: st.data_editorcorrectly identifies non-range indices as a required column (#7481, #6995).
Bug fix: st.file_uploaderdisplays compound file extensions likecsv.gzcorrectly (#7362). Thanks, mo42!
Bug fix: Column Configuration no longer uses deprecated type checks (#7496, #7477, #7550). Thanks, c-bik!
Bug fix: Additional toolbar items no longer stack vertically (#7470, #7471).
Bug fix: Column Configuration no longer causes a type warning in Mypy (#7457). Thanks, kopp!
Bug fix: Bokeh Sliders no longer cause JavaScript errors (#7441, #7171).
Bug fix: Caching now recognizes DataFrames with the same values but different column names as different (#7331, #7086).