Change8

1.61.0

Breaking Changes
📦 streamlitView on GitHub →
2 breaking10 features🐛 26 fixes🔧 17 symbols

Summary

This release introduces lazy loading for st.dataframe, an icon parameter for st.metric, and background refresh for st.cache_data and st.cache_resource. It also includes several bug fixes and improvements to existing widgets.

⚠️ Breaking Changes

  • The `use_column_width` parameter has been removed from `st.image`. Users should now use `width='auto'` or `width='always'` instead.
  • String file paths are deprecated in `st.html` and `st.iframe` in favor of `pathlib.Path` objects. Migrating to `pathlib.Path` is recommended to avoid future issues.

Migration Steps

  1. Update calls to `st.image` to use `width='auto'` or `width='always'` instead of `use_column_width`.
  2. Migrate string file paths in `st.html` and `st.iframe` to `pathlib.Path` objects.

✨ New Features

  • Added lazy loading for `st.dataframe`.
  • Added an `icon` parameter to `st.metric`.
  • Added background refresh for `st.cache_data` and `st.cache_resource`.
  • Added WebSocket Host allow-list.
  • Added seconds granularity and `format` for hour cycle to `st.time_input`.
  • Improved form support and enter to submit for `st.time_input`.
  • Inferred `download_button` file_name and mime from file object name.
  • Enforced disabled widget parameter server-side.
  • Improved tag accessibility in `st.multiselect`.
  • Turned `st.Page` into a proper class.

🐛 Bug Fixes

  • Fixed popover in sidebar rendering off-screen.
  • Fixed escape key clearing typed search query in `st.selectbox`.
  • Fixed AppTest sys.path handling for script paths.
  • Fixed clearing stale AppTest elements on rerun.
  • Clarified AppTest multipage path handling.
  • Fixed `st.selectbox` fuzzy search only matching contiguous substrings since 1.59.0.
  • Fixed committing open `data_editor` cell edit on outside click.
  • Fixed `TypeError` in `run_every` fragments with Sentry threading.
  • Prevented `st.data_editor` row additions from overwriting rows.
  • Rejected network paths and null bytes in `st.Page`.
  • Fixed `st.expander` being clipped after interrupted animation.
  • Locked Mermaid init config overrides.
  • Honored Plotly layout fonts in Sankey charts.
  • Made multiselect dropdown background match sidebar theme.
  • Flipped sidebar dropdown up instead of clipping.
  • Preserved IME composition in `data_editor` NumberColumn.
  • Preserved right-side padding when code block is scrolled.
  • Improved higher-DPI Altair PNG export.
  • Fixed `st.bar_chart` failing on column names containing '.'
  • Ensured stable dataframe header background with alpha.
  • Preserved fragment children across container reruns.
  • Reconnected to existing session on unclean websocket close.
  • Accepted `io.StringIO` data in `st.download_button`.
  • Kept pills and `segmented_control` selection highlighted when `format_func` changes.
  • Suppressed the skills nudge when an install would only conflict, and reported why.
  • Fixed `st.help` header showing "page.run()" in multipage apps.

Affected Symbols