Alert: We’ve discovered an inefficient use of CPU for Streamlit version 1.32.0 and 1.32.1 and blocked their use on Community Cloud. Patch 1.32.2 has been released on PyPi and is available for development and deployment to Community Cloud.
Highlights
- Introducing
st.popover
to create popover elements in your Streamlit apps. Check out the docs to see how to use it!
Notable Changes
- You can now pass subtitles to
st.video
! Check out our feature demo. -
AppTest
includes support forst.expander
andst.status
. -
AppTest.from_function
accepts a function that takes arguments and/or returns a value. - The timeout warning for custom components was replaced with an element skeleton to improve the UX for slow-loading components, especially in some cloud-hosted platforms (#8179, #7046).
-
st.switch_page
andst.page_link
received significant improvements to path handling, performance, and visual appearance (see below for details). - Bug fix: Streamlit uses
glide-data-grid
version 6.0.4 to fix a variety of dataframe issues (#7779, #6900, #7032, #7727, #6810, #7930, #7949, #7831, #8168). - Bug fix: We’ve plugged a significant memory leak in the coroutine loop. Apps that generate a large number of small messages between client and server will benefit greatly (#8068, #7989, #6510).
Other Changes
- Multiple modules are now lazy-loaded to speed up Streamlit’s import time (#8150, #8143, #8134, #8113, #8125, #8111, #8109, #6066).
-
st.write
supportsPIL
images (#8039). -
st.radio
allows markdown links within the items passed tooptions
(#8028, #7992). - The
deprecation.showPyplotGlobalUse
config option is deprecated and will be removed in the subsequent release (#8133). - Streamlit supports AzureOpenAI chat stream (#8107, #8084).
- The
/healthz
endpoint supports the HTTP HEAD method (#8145, #8144). Thanks, rahulmistri1997! - The
cache
parameter forst.spinner
is now private (_cache
) since it’s for internal use (#8118). - Session storage is checked and expired asynchronously to improve performance and efficiency of apps with lower traffic (#8083).
-
st.write_stream
raises a descriptiveException
when the message cannot be parsed (#8036). - Fixed a typo in the examples for
st.switch_page
andst.page_link
(#8162). Thanks, t1emp0! - Bug fix:
st.help
correctly displays conditional members (#8228). - Bug fix: App State fully clears on page change to prevent lingering stale elements (#8208).
- Bug fix:
st.info
,st.success
,st.warning
, andst.error
don’t overflow with long markdown strings (#8194, #6394). - Bug fix: Streamlit shows a warning that port 3000 is reserved for development when the server port is set to 3000 (#8152, #8149).
- Bug fix:
st.page_link
andst.switch_page
have improved path calculation for consistency (#8127). - Bug fix:
st.page_link
shows the correct path in browser on hover (#8086, #8080). - Bug fix:
st.page_link
andst.switch_page
normalize paths for correct handling in Windows (#8103, #8070). - Bug fix: Script runner uses a while loop instead of recursion to avoid stack overflows (#8100).
- Bug fix:
st.page_link
andst.switch_page
correctly handle relative paths prefixed with"/"
(#8085, #8081). - Bug fix:
st.image
parses paths in Windows correctly (#8092, #7271, #6066). - Bug fix:
st.switch_page
no longer waits for the current page to finish running before switching pages (#8054, #7954). - Bug fix:
st.map
and other simple charts correctly handle color when data is not indexed starting from 0 (#8158, #8079, #8077). Thanks, awhazell! - Bug fix:
st.selectbox
,st.multiselect
,st.select_slider
, andst.radio
use shallow copies of their options to prevent unexpected mutations (#8064, #7534). - Bug fix: The selected time in
st.time_input
displays correctly in dark mode (#8056, #7436). - Bug fix: Dataframe scrollbars display correctly in the latest version of Chrome (#8034).
- Bug fix: Casting
st.query_params
tostr
will print the content of the query parameters instead of the class description (#8030).