What's Changed
Breaking Changes 🛠
- Remove legacy dataframe serialization by @LukasMasuch in #7429
New Features 🎉
- Add overrideable default timeout for script tests by @AnOctopus in #7327
- Fluent asserts and type narrowing for widgets in tests by @AnOctopus in #7325
- Teach st.write how to not set unsafe_allow_html when possible by @vdonato in #7432
- Add datetime index editing support for
st.data_editor
by @LukasMasuch in #7483 - Support Graphviz layout engines by @snehankekre in #7505
- Better input/output visibility in Langchain callback by @pokidyshev in #7478
- New test framework api structure by @AnOctopus in #7413
- Arrow dataframe test wrapper by @AnOctopus in #7519
- Columns and tabs in script testing by @AnOctopus in #7524
- Chat input and messages for app testing by @AnOctopus in #7535
- Update
st.spinner
by @mayagbarnes in #7488 - Alert classes in app testing by @AnOctopus in #7542
- Query params and secrets in app tests by @AnOctopus in #7561
- De-experimentalize st.connection by @vdonato in #7536
- Minor st.connection tweaks by @vdonato in #7562
- Basic app test repr cleanup by @AnOctopus in #7573
- Add toolbar to
st.dataframe
andst.data_editor
by @LukasMasuch in #7345 - Implement many remaining AppTest elements by @AnOctopus in #7576
Bug Fixes 🐛
- Remove autosizer so we don't have weird flickering and weird layout issues by @willhuang1997 in #7281
- Better dataframe hashing by @kajarenc in #7331
- Fix bokeh slider by adding in side effects to package json by @willhuang1997 in #7441
- Fix vertical button regression in toolbar actions by @willhuang1997 in #7470
- Upgrade plotly.js version by @sfc-gh-wihuang in #7449
- Avoid confusion about file extensions: keep inner dots by @mo42 in #7362
- Configure non-range indices as required for editing with
st.data_editor
by @LukasMasuch in #7481 - Widget style fixes by @sfc-gh-jgarcia in #7486
- Support for non-string column names in
st.data_editor
by @LukasMasuch in #7485 - Add user-friendly exception if dataframe exceeds max config of Pandas Styler by @LukasMasuch in #7497
- Only use get_active_session when running in SiS by @vdonato in #7502
- Call matplotlib crash fix for scripts run in tests by @AnOctopus in #7511
- Improve decimal type support for
st.dataframe
andst.data_editor
by @LukasMasuch in #7475 - Fix: Foreign language anchors by @mayagbarnes in #7454
- Fix Chat Message container to align and manage the autosizer handling by @kmcgrady in #7504
- Added permission to use Clipboard API in IFrame by @dilipthakkar in #7487
- Move label attribute to only widgets that have it by @AnOctopus in #7560
- Fix select slider value setting with non-strings by @AnOctopus in #7566
- Fix attr access of session state in app tests by @AnOctopus in #7543
- Added FIPS compliance by @DueViktor in #7527
- Enlarge sidebar left and right padding to match MPA spacing by @sfc-gh-jgarcia in #7531
- Convert Expander to Details/Summary Element by @kmcgrady in #7247
- Fix chat_input repr and add repr tests by @AnOctopus in #7574
Other Changes
- Release 1.27.0 by @vdonato in #7402
- Allow pillow 10.0.1 by @AnOctopus in #7442
- Release 1.27.1 by @kmcgrady in #7450
- fixes pandas is_categorical_dtype deprecation warning by @c-bik in #7477
- Release Streamlit version 1.27.2 by @vdonato in #7492
- Fix pandas 2.1 deprecation warnings by @LukasMasuch in #7496
- Use the new string dtype for dataframe handling by @LukasMasuch in #7479
- Session state yield points by @AnOctopus in #7373
- Migrate allowed-message-origins to host-config endpoint by @LukasMasuch in #7342
- Make AppTest constructors and run methods require kwargs for timeouts by @AnOctopus in #7520
New Contributors
- @kopp made their first contribution in #7457
- @c-bik made their first contribution in #7477
- @pokidyshev made their first contribution in #7478
- @dilipthakkar made their first contribution in #7487
Full Changelog: 1.27.2...1.28.0