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. -
SnowparkConnection
has been upgraded to the new and improvedSnowflakeConnection
— the same, great functionality plus more! Check out our built-in connections. -
st.dataframe
andst.data_editor
have 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_editor
now supports datetime index editing (#7483). - Improved support for
decimal.Decimal
inst.dataframe
andst.data_editor
(#7475). - Global kwargs were added for
hashlib
(#7527, #7526). Thanks, DueViktor! -
st.components.v1.iframe
now permits writing to clipboard (#7487). Thanks, dilipthakkar! -
SafeSessionState
disconnect 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.status
when the input string is too long to show as a label (#7478). Thanks, pokidyshev! -
st.graphviz_chart
now supports using different Graphviz layout engines (#7505, #4089). - Assorted visual tweaks (#7486, #7592).
-
plotly.js
was 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-origins
endpoint to_stcore/host-config
(#7342). - Added
post_parent_message
platform command to send custom messages from a Streamlit app to its parent window (#7522).
Other Changes
- Improved string dtype handling for DataFrames (#7479).
-
st.write
will avoid usingunsafe_allow_html=True
if possible (#7432). - Bug fix: Implementation of
st.expander
was 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_input
won’t incorrectly prompt forlabel
parameter in IDEs (#7560). - Bug fix: Scroll bars correctly overlay
st.dataframe
andst.data_editor
without adding empty space (#7090, #6888). - Bug fix:
st.chat_message
behaves 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.SnowparkConnection
more 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
Styler
object (#7497, #5953). - Bug fix:
st.data_editor
automatically converts non-string column names to strings (#7485, #6950). - Bug fix:
st.data_editor
correctly identifies non-range indices as a required column (#7481, #6995). - Bug fix:
st.file_uploader
displays compound file extensions likecsv.gz
correctly (#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).