2024 release notes
本页面包含2024年发布的Streamlit版本的发布说明。有关Streamlit的最新版本,请参阅发布说明。
Version 1.41.0 (latest)
发布日期:2024年12月10日
显著变化
- 🔲
st.metric和st.columns有一个参数可以显示可选的边框 (#9927, #9928)。 - 🎨 Markdown中的文本和背景颜色可以使用
theme.primaryColor配置选项中的“primary”颜色(#9676)。 - 🥶 您可以通过列配置冻结列,使它们在水平滚动时始终保持可见(#9535, #7078)。
- 3️⃣ buttons 的
type参数接受一个新的选项,"tertiary"(#9923)。 - 🚶♂️ Streamlit 支持在所有可以使用字符串路径的地方使用
pathlib.Path对象 (#9711, #9783)。 - ⏱️
st.date_input和st.time_input接受 ISO 格式的字符串作为初始值 (#9753)。 - 💬
st.write_stream接受异步生成器,它在内部将其转换为同步生成器 (#8724, #8161)。 - 🪵
client.showErrorDetails配置选项新增了更多值,用于显示或隐藏更多信息 (#9909)。 - 🔎 当Streamlit在应用程序中显示未捕获异常的堆栈跟踪时,内部代码被省略或简化以便于调试 (#9913)。
- 📈
st.line_chart在悬停时显示最近点的工具提示 (#9674). - 🌐
st.html将尝试使用._repr_html_()转换非字符串对象,然后再回退到str()(#9877)。 - 🐍 Streamlit 支持 Python 3.13,不再支持 Python 3.8 (#9635)。
其他变更
- 🔣 材料符号已更新为最新图标 (#9813, #9810).
- 👽 Streamlit 支持 Watchdog 版本 6 (#9785)。感谢 RubenVanEldik。
- 🌀 Bug 修复:Streamlit 仅在缓存未命中时显示缓存函数的加载动画,并且不会为嵌套的缓存函数显示加载动画 (#9956, #9951)。
- 🔈 Bug 修复:Streamlit 的音频缓冲区更好地处理声道,以在 Firefox 中正确播放录音 (#9885, #9799)。
- 🦊 错误修复:URL模式正确匹配,允许社区云开发者工具在Firefox中正确显示 (#9849, #9848).
- ☠️ 错误修复:修正了容器的性能和对齐问题 (#9901, #9456, #9560).
- 👻 Bug 修复:如果传递了无效的
scope给st.rerun,将会引发错误 (#9911, #9908)。 - 🦋 Bug 修复:Dataframe 工具栏在对话框中正确显示 (#9897, #9461).
- 🦀 Bug 修复:
LinkColumn的正则表达式用于display_text使用正确的 URI 解码 (#9895, #9893). - 🦎 Bug 修复:当
on_selection="ignore"时,st.dataframe具有正确的类型提示 (#9898, #9669)。 - 🐌 错误修复:在宽屏和居中布局模式下,填充应用一致(#9882, #9707)。
- 🕸️ Bug 修复:当
use_container_width=True时,st.graphviz_chart显示正确 (#9867, #9866). - 🦗 错误修复:
st.pills和st.segmented_control的重载定义使用了正确的选择模式默认值 (#9801)。感谢 RubenVanEldik! - 🦂 错误修复:当使用
Ctrl+Enter时,st.text_area(以及其他小部件)在表单中正确提交(#9847, #9841)。 - 🦟 错误修复:
st.write使用st.help渲染DeltaGenerator对象 (#9828, #9827)。 - 🦠 错误修复:
st.text_area在使用键时正确匹配会话状态中的值 (#9829, #9825)。 - 🪰 Bug 修复:当用户提交未更改的值时,
st.text_input不会触发重新运行 (#9826)。 - 🪳 Bug 修复:改进了
st.exception的样式,以修复溢出和错误的填充 (#9818, #9817, #9816)。 - 🕷️ Bug 修复:在全屏模式下,大数据帧不会溢出并覆盖数据帧工具栏 (#9803, #9798).
- 🐞 错误修复:
st.audio_input在半小时偏移的时区中显示正确的录音时间 (#9791, #9631)。 - 🐝 错误修复:在iOS中,
st.number_input在获得焦点时显示数字键盘而不是普通键盘 (#9766, #9763)。 - 🐜 错误修复:包含连字符的小部件键现在可以正确地以
st-key-前缀添加到DOM中的HTML类中(#9793)。 - 🪲 错误修复:由
st.audio_input创建的音频文件包含时间戳,以确保文件名唯一 (#9768)。 - 🐛 错误修复:双斜杠的URL路径名不会创建301重定向 (#9754, #9690).
Version 1.40.0
发布日期:2024年11月6日
亮点
- 💊 引入
st.pills来创建单选或多选的药丸按钮组。 - 🎛️ 引入
st.segmented_control来创建一个分段按钮或按钮组。 - 🎤 宣布
st.audio_input的全面可用性,这是一个允许用户使用麦克风录制声音的小部件。
显著变化
- ➡️ Markdown 渲染一组有限的排版符号(箭头和比较器)。
你可以使用
:streamlit:在 Markdown 中渲染 Streamlit 徽标。- 🐍
st.text包裹文本并不再使用等宽字体。 - 🪣 你可以为
st.image设置use_container_width。use_column_width已被弃用。 - 📅
st.date_input根据用户的语言环境推断一周的第一天 (#9706, #5215).
其他变更
- 🎶 Streamlit 的 CLI 工具接受配置选项的数组值 (#9577)。
- ⛓️ 静态文件服务支持符号链接 (#9147, #9146)。感谢, link89!
- 🚀 Streamlit 在应用本地运行时提供了有用的部署链接 (#9681)。
- ↕️ 图表的全屏按钮与数据框架工具栏匹配 (#9721).
- 🏃 跑步人图标在渲染前会有短暂的延迟,以避免在快速运行的应用程序中出现不必要的闪烁(#9732)。
- 🖇️
ComponentRequestHandler允许符号链接 (#9588)。 - 👆 Streamlit 与
pillow版本 11 兼容 (#9742)。感谢 hauntsaninja! - 🗺️ Deck.gl 已升级至版本 9.0.33 (#9636).
- 🦠 错误修复:当使用
help关键字参数时,st.latex保持居中对齐 (#9698, #9682)。感谢,emmagarr! - 🪰 Bug 修复:应用程序在 Android 上正确访问本地存储 (#9744, #9740).
- 🕷️ Bug 修复:可以清除缓存的类方法 (#9642, #9633).
- 🐞 错误修复:当用户更改页面时,Streamlit 清除片段自动重新运行。这防止了无效索引 (#9617)。
- 🐝 错误修复:
st.page_link的边距已修正 (#9625)。 - 🐜 错误修复:表单小部件在获得焦点时显示提交说明 (#9576, #7079).
- 🪲 错误修复:
st.navigation正确协调client.showSidebarNavigation(#9589, #9581)。 - 🐛 错误修复:
st.text_area需要最小高度为68px,以适应两行文本 (#9561, #9217)。 - 💅 错误修复:各种样式修复 (#9529, #8131, #9555, #9496, #9554, #9349, #7739).
Version 1.39.0
发布日期:2024年10月1日
亮点
- 🎤 介绍
st.experimental_audio_input让用户可以使用麦克风进行录音! - 📍
st.pydeck_chart可以返回选择事件!
显著变化
- 😃
st.button,st.download_button,st.form_submit_button,st.link_button, 和st.popover每个都有一个新参数来添加图标。 - 🏢
st.logo有一个新参数可以调整你的徽标大小。 - 🧭
st.navigation允许你使用新的expanded参数来显示一个始终展开或可折叠的菜单。 - ↕️ 你可以为
st.map和st.pydeck_chart设置height和width。 - ↩️ 表单提交行为可以通过一个新的
enter_to_submit参数进行配置 (#9480, #7538, #9406, #8042). - ⏱️ 一个新的配置选项,
server.disconnectedSessionTTL,允许你设置断开连接的会话在被清理之前的最小时间(#9179)。 - 🤹 数据框支持多级索引标题 (#9483, #6319).
其他变更
- 🔑 小部件键在DOM中以HTML类的形式出现,带有
st-key-前缀(#9295, #5437, #3888)。 - 🔍
StreamlitAPIException类已扩展为针对一些最常见错误的更具体的异常 (#9318)。 - 🗺️
st.map和st.pydeck_chart有一个全屏切换按钮,与数据框架工具栏相匹配。 - ⬆️ Vega的前端依赖已升级 (#9443, #9438).
- 🕵️ Streamlit 兼容 Watchdog 版本 5 (#9354)。感谢 RubenVanEldik!
- 🔁 Streamlit 兼容 Tenacity 版本 9 (#9348)。
- 🔢 错误修复:列配置将覆盖来自
pandas.Styler的任何文本或数字格式 (#9538, #7329, #7977)。 - 🦋 Bug 修复:Deck GL 缩放按钮具有正确的边框半径 (#9536).
- 🦐 错误修复:嵌入式应用程序具有正确的填充以避免隐藏元素 (#9524, #9341).
- 🎨 错误修复:
st.multiselect占位符文本的颜色已修正 (#9523, #9514)。 - 🧹 错误修复:
st.json水平滚动而不是溢出其容器 (#9521, #9520)。 - 🌬️ 错误修复:Bokeh 图表(暂时)没有全屏按钮以防止水平滚动(#9528, #2358)。
- 🐡 错误修复:如果用户在页面URL末尾添加斜杠,用户将被正确重定向 (#9500, #9127).
- 📁 Bug 修复:
st.Page警告开发者不要在url_path中使用子目录,因为这是不支持的 (#9499). - 💩 Bug 修复:Streamlit 正确计算数据框宽度,以防止最小化 React 错误 #185:超过最大更新深度 (#9490, #7949)。
- ☠️ Bug 修复:ScriptRunContext 处理活动脚本的哈希值,以避免在多页面应用程序中小部件失去状态的竞态条件(#9441, #9100)。
- 🪱 错误修复:通过 Streamlit 的静态文件服务托管时,PDF 不会显示为纯文本 (#9439, #9425)。
- 👻 Bug 修复:当与自定义组件和回调一起使用时,片段元素不会消失 (#9381, #9389, #9372).
- 👽 Bug 修复:Streamlit 监视正确的目录以进行文件更改 (#9453, #7467).
- 🦀 错误修复:侧边栏导航使用页面计数来确定何时显示“显示更多”按钮,以实现更一致的行为 (#9394)。
- 🦎 错误修复:在脚本运行开始时更新内部脚本哈希,而不是在结束时更新,以便在脚本运行中断时正确进行页面路由(#9408, #8975)。
- 🐌 错误修复:标题中的粗体格式被忽略 (#9395, #4248)。
- 🕸️ Bug 修复:Streamlit 正确识别更多文件的 MIME 类型,以防止自定义组件无法渲染 (#9390, #9365)。感谢 t0mdavid-m!
- 🦗 错误修复:
client.showSidebarNavigation配置选项与st.navigation正常工作(#9379)。 - 🦂 错误修复:Streamlit 在健康检查中使用
example.com而不是test.com,以避免不必要的警告 (#9371)。感谢 wyattscarpenter! - 🦟 错误修复:如果尝试使用空路径初始化页面,
st.Page将会引发错误 (#9374, #8892)。 - 🦠 错误修复:用户关闭后,未更改的
st.dialog可以通过编程方式重新打开 (#9333, #9323)。 - 🪰 Bug 修复:Streamlit 将不会从
st.Page中声明的页面标题中删除下划线 (#9375, #8890)。 - 🪳 Bug 修复:
st.logo在切换页面时不会闪烁 (#9361, #8815). - 🕷️ 错误修复:
st.data_editor允许用户在删除后重新添加具有相同索引的行 (#8864, #8854)。 - 🐞 错误修复:
st.logo在调整大小以适应侧边栏宽度时保持其宽高比 (#9368)。 - 🐝 错误修复:如果在重新运行期间未调用
st.logo,Streamlit 会正确移除它 (#9337, #9336)。 - 🐜 错误修复:当侧边栏改变状态时,
st.logo不会闪烁 (#9338)。 - 🪲 错误修复:Streamlit 在 React Portal 中渲染
st.balloons和st.snow,以提高渲染效果和与st.dialog的兼容性 (#9335, #9236)。 - 🐛 错误修复:当
st.multiselect在狭窄的容器中显示时,选项标签会被干净地截断(#9334, #8213)。
Version 1.38.0
发布日期:2024年8月27日
亮点
- 📈 Streamlit 原生支持更多数据框格式!使用来自流行库的数据框和系列对象,如 Dask、Modin、Numpy、pandas、Polars、PyArrow、Snowpark、Xarray 等。使用符合 Python 数据库 API 规范 2.0 的数据库游标。使用任何支持 Python 数据框交换协议的内容。请参阅 文档。
显著变化
- ↔️ 您可以控制
st.json元素的初始展开状态。 - 🧑💻 你可以选择在
st.code中换行。 - 🕵️ Streamlit 支持 Kubernetes 风格的密钥,因此您可以使用 Snowflake Snowpark 容器服务的密钥格式 (#9078)。
- ⤴️ 重大变更:我们移除了一个允许在
pydantic<2.0中使用自定义验证器的补丁 (#9257)。 - 💔 重大变更:我们从缓存装饰器中移除了实验性的缓存回放功能 (#9305)。
其他变更
- 🌐 为了提高应用程序的效率,除非脚本运行被中断,否则WebSocket重新连接不会触发重新运行(#9083)。
- 👋 我们更新了
streamlit hello应用程序以使用Google Material图标。 - ⌨️
st.number_input,st.selectbox,st.slider,st.select_slider, 和st.radio为它们的返回值提供了更精确的类型提示 (#9048, #9296, #8717). 感谢, Asaurus1! - ⭐
st.feedback为其返回值提供了更精确的类型提示 (#9216)。感谢 wyattscarpenter! - 💅 我们通过
postMessage改进了嵌入式应用的主题管理 (#9103)。 - 🌱 Bug 修复:在侧边栏中,
st.logo的图像会随着侧边栏宽度调整大小 (#9298, #8707)。 - 🪹 错误修复:当父片段更新时,Streamlit 正确清理子片段 (#9246, #9233, #9267)。
- 💩 错误修复:在片段重新运行时,元素在更新时不再一起重新运行,而是在片段重新运行结束时一起重新运行(#9285)。
- 🪱 错误修复:如果在重新运行期间块类型发生变化,Streamlit 会丢弃该块的子元素,以防止出现不正确的视觉伪影,例如
st.tabs导致空白页面 (#9276, #9259, #8676)。 - ☠️ 错误修复:当页面重新运行被另一个重新运行中断时,小部件状态得以保留(#9187, #9163)。感谢,dannyopts!
- 👽 错误修复:
st.selectbox、st.multiselect、st.radio和st.select_slider中的options正确使用了dict_items(#9241, #9237, #5377)。 - 👻 Bug 修复:在数据框中,
SelectboxColumn索引将以正确的灰色样式显示 (#9231, #8772)。 - 🦀 Bug 修复:
st.write_stream在接收到空块时不会立即失败 (#9234, #9227)。 - 🦋 Bug 修复:如果存在空锚点,Streamlit 不会自动滚动到该锚点 (#9206, #9203).
- 🦎 Bug 修复:我们更改了
scriptRunId的处理方式,以防止st.tabs在片段中显示额外的空标签 (#9186, #9158, #9215)。 - 🐌 错误修复:自动重新运行片段不会引发
FragmentStorageKeyError,以防止可能的竞争条件 (#9183, #9080)。 - 🕸️ Bug 修复:我们改进了
st.plotly_chart对传递关键字参数config的处理 (#9190, #9134)。 - 🦗 错误修复:所有
label参数中的 Markdown 现在正确地忽略了标题 (#9189, #9141)。 - 🦂 错误修复:我们撤销了一个关于片段的更改,该更改在某些情况下导致一些小部件丢失状态(#9178, #9171)。
- 🦟 错误修复:
st.experimental_fragment和st.experimental_dialog的弃用警告仅在命令被调用时显示。这防止了使用它们的自定义组件在导入时引发过早的警告 (#9170, #9143)。 - 🦠 错误修复:当
language="diff"时,st.code显示差异代码的语法高亮 (#9172, #8687)。 - 🪰 Bug 修复:在 try-except 块中,引发
ScriptControlException的 Streamlit 命令按预期执行 (#9167, #9155, #9182)。 - 🪳 Bug 修复:
st.date_input的value类型正确,适用于 linting (#9149)。感谢 wyattscarpenter! - 🕷️ Bug 修复:我们更新了
plotly.js以支持hoversubplots="axis"(#9144, #9118). - 🐞 错误修复:我们稳定了
st.map实例的身份,以便在更新其参数时不会创建多个地图 (#9092, #8329)。 - 🐝 错误修复:您现在可以清除缓存类实例方法的缓存(#9101, #8638)。
- 🐜 错误修复:对话框中的复制按钮现在可以正常工作 (#9130, #9112).
- 🪲 错误修复:Streamlit 魔法在 for-else、while-else、try-else、try-except 和 match 块中一致工作(#9110, #9109)。感谢 whitphx!
- 🐛 错误修复:打印应用程序时,底部容器将始终在最后打印,不会与其他内容重叠 (#9129)。
Version 1.37.0
发布日期:2024年7月25日
亮点
- 🍪 介绍
st.context用于读取头部信息和cookies! - ⭐ 引入
st.feedback以收集用户的评分和情感反馈! - 👟 宣布
st.fragment的全面可用性,这是一个装饰器,允许你独立于整个页面重新运行函数。 - 🍿 宣布
st.dialog的正式发布,这是一个装饰器,允许你创建模态对话框。
显著变化
- ℹ️ 你可以在Markdown中使用Material Symbols库中的图标!
- 📈 你可以将
graphviz.Source对象传递给st.graphviz_chart。 - 📊 您可以修改
st.bar_chart和st.area_chart的堆叠行为。 - 🔭 在片段中,您可以将
st.rerun的作用域限定为该片段。 - 🪺 Streamlit 支持嵌套片段 (#8931, #8635).
- 📞 片段可以在回调函数中使用 (#8916, #8591).
其他变更
- ⭕ Material Symbols 是圆形的而不是轮廓的 (#8998).
- 🔢 Streamlit 支持 Numpy 2.0 版本 (#8940)。
- 😄 我们已经更新了新表情符号的验证 (#8923).
- 👻 我们已经移除了几个实验性命令,并提供了新的、普遍可用的版本 (#8943)。
- ☠️ 我们已经根据宣布的过期日期移除了已弃用的配置选项 (#9005, #9013, #9018).
- 🦎 错误修复:当子片段在父片段中的小部件之前时,嵌套片段正确重新运行 (#9114)。
- 🐌 错误修复:Streamlit 在使用静态文件服务时,会在执行额外检查之前验证文件路径,以提高安全性 (#8990)。
- 🕸️ Bug 修复:
st.map在st.expander内以正确的宽度显示 (#9070, #8004)。 - 🦗 错误修复:Streamlit 在错误消息中显示正确的(Windows)路径用于
secrets.toml(#9061, #6147)。 - 🦂 错误修复:
st.switch_page在用户切换页面时正确清除非嵌入查询参数 (#9059, #9050)。 - 🦟 错误修复:自定义主题现在可以正确显示多页面元素,如
st.page_link(#8994, #8978)。 - 🦠 错误修复:
st.snow和st.balloons在打印时不显示 (#9053, #7790)。 - 🪰 Bug 修复:我们已经改进了
st.number_input的默认格式化 (#9035, #7163)。 - 🪳 Bug 修复:修正了一个
st.navigation示例 (#9027, #9026)。感谢 mahotd! - 🕷️ Bug 修复:关闭对话框时不再有短暂的延迟 (#9023, #8747).
- 🦀 Bug 修复:当在片段中遇到
KeyError时,Streamlit 会正确抛出错误,而不是一个误导性的片段相关错误 (#9011, #8494)。 - 🐞 错误修复:Streamlit 在片段重新运行时不清除
MediaFileManager以防止无效引用 (#9010, #8932)。 - 🐝 错误修复:删除自定义主题时,它们会被正确移除 (#8989, #8962).
- 🐜 错误修复:Streamlit 支持非 Unix 风格的路径,以便在 Windows 中正确进行多页面路由 (#8988, #8958)。
- 🪲 错误修复:在极少数情况下,在片段中使用
st.rerun不会导致应用的主体内容在片段中渲染 (#8798)。 - 🐛 错误修复:当片段中引发异常时,Streamlit 会在片段内显示错误消息 (#8868)。
Version 1.36.0
发布日期:2024年6月20日
亮点
- 🧭 引入
st.navigation和st.Page来定义多页面应用的新方式!查看 文档 了解更多。
显著变化
- 📊
st.bar_chart可以水平渲染图表。 - ℹ️
st.expander支持在其标签旁边添加图标。 - 🏗️
st.columns允许你设置垂直对齐。 - 📲 自定义组件支持回调函数 (#8633, #3977).
- 📥 片段不再支持在其主体之外渲染小部件 (#8756)。
- 🏷️ 您现在可以为
st.area_chart、st.bar_chart、st.line_chart和st.scatter_chart自定义轴标签。 - ⌛ 缓存参数
experimental_allow_widgets已弃用 (#8817). - ❌ Streamlit 不再支持旧版缓存。
st.cache现在是st.cache_data和st.cache_resource的别名 (#8737)。 - ⬆️ Streamlit 支持
protobuf版本 5 (#8627)。
其他变更
- ✨ Streamlit Hello 使用
st.navigation和st.Page,这是声明多页面应用的新推荐方法 (#8806)。 - 🧹 Streamlit 不再在应用程序的页面标题后附加 "· Streamlit",除非在 Community Cloud 上运行 (#8900)。
- 🦋 Streamlit 魔法和
st.write使用st.json来显示st.secrets(#8659, #2905). - 🔍 Streamlit 不会自动检查 PyPi 上的新版本 (#8841, #8453)。
- 🐌 错误修复:自定义组件函数需要导入
streamlit.components.v1(#8666, #8644). - 🕸️ Bug 修复:由于导致回归,已恢复对 Altairs
resolve_scale方法的更改处理 (#8845, #8642). - 🦗 错误修复:Markdown 中的图片不会溢出 Markdown 容器 (#8794)。
- 🦂 错误修复:当
index大于options的大小时,澄清了st.selectbox的错误信息 (#8775, #8771)。 - 🦟 Bug 修复:Streamlit 现在可以正确处理带有 ID 的非小部件元素 (#8770, #8768)。
- 🦠 错误修复:文档字符串正确识别了当
use_container_width=True是默认值的情况 (#8809)。 - 🪰 Bug 修复:Streamlit 现在具有一致的最小元素高度,以实现更好的垂直对齐 (#8797, #8835, #8027, #8706).
- 🪳 Bug 修复:添加了检查以确保在执行操作之前初始化
SessionInfo(#8779, #8321, #7549). - 🕷️ Bug 修复:默认情况下,Dataframe 使用原始数字而不进行格式化 (#8708, #8695)。
- 🐞 错误修复:更新了不允许写入会话状态的错误消息 (#8720, #8715)。
- 🐝 错误修复:如果文件监视被禁用,Streamlit 不会初始化
LocalSourcesWatcher(#8741, #8738). - 🐜 错误修复:
st.experimental_dialog不再为title提供无效的默认值 (#8729)。 - 🪲 错误修复:移除了
ast.Call中已弃用的kwargs以防止类型错误(#8711)。感谢JelleZijlstra! - 🐛 错误修复:
st.experimental_dialog被显式导出以避免类型检查错误 (#8728, #8712).
Version 1.35.0
发布日期:2024年5月23日
亮点
- 📈 宣布图表用户选择功能!使用
st.plotly_chart、st.altair_chart和st.vega_lite_chart来创建图表小部件,使应用程序更具交互性。 - 🚣♂️ 宣布用户对数据框的选择。使用
st.dataframe从用户那里获取行和列的选择。 - 💼 介绍
st.logo用于在侧边栏的导航上方添加图片。
显著变化
- 🔗
st.page_link支持 Material 图标 (#8593)。 - ⚓ 标题的锚点按钮显示在标题的末尾,以获得更美观和一致的外观 (#8587).
- 🈂️
SQLConnection接受query作为sqlalchemy.URL.create参数,以便您可以指定字符集 (#8581)。感谢 LucianLiu6!
其他变更
- 🕸️ Bug 修复:为 CSV 下载添加了一个备用方法,以提高浏览器兼容性 (#8452, #8210)。
- 🦗 Bug 修复:克隆时列配置被深度复制,以防止意外修改 (#8677).
- 🦂 错误修复:当使用
st.data_editor并在添加的行中使用num_rows=dynamic时,如果添加的行中有空值,渲染正确 (#8640, #7458)。 - 🦟 错误修复:当使用
server.headless=true初始化 Streamlit 时,streamlit run将显示localhost地址 (#8647, #8629)。 - 🦠 错误修复:滚动边距与新的工具栏(应用界面)高度匹配 (#8641, #8554).
- 🪰 Bug 修复:枚举强制转换与 StrEnum 兼容 (#8622, #8500)。感谢 97k!
- 🪳 错误修复:点击提交后焦点返回到聊天输入框,以提供更好的移动体验 (#8637)。
- 🕷️ 错误修复:Altair图表的内部参数和视图名称已稳定,以提高性能 (#8628).
- 🐞 错误修复:改进了
st.query_params.update()和st.query_params.from_dict()的输入类型 (#8614, #8613)。感谢 Asaurus1! - 🐝 错误修复:为了防止不必要的侧向滚动,
st.table的全屏按钮不再显示 (#8621, #2358)。 - 🐜 错误修复:当使用
st.rerun时,Streamlit 正确清除了过时的元素 (#8599, #8360)。 - 🪲 错误修复:自定义组件可以独立执行以进行测试和脚本编写 (#8620, #8606).
- 👻 Bug 修复:Plotly 图表在更新时不再渲染缓存数据 (#8191, #5902)
- 👽 当在带边框的容器中渲染时,Plotly 图表的宽度不会溢出其父容器 (#8191, #8244)。
- 🦀 使用
webgl渲染的 Plotly 图表在 macOS 的 M1/M2 芯片组上正确显示 (#8191, #8169). - 🦋 当垂直相邻渲染时,Plotly图表的大小是正确的(#8191, #7597)。
- 🦎 错误修复:当应用程序窗口调整大小时,Plotly图表保持其状态(#8191, #6324)。
- 🐛 错误修复:在
st.tabs中的 Plotly 图表在切换标签时不再闪烁 (#8191, #8575)。 - 🐌 错误修复:如果在重新运行之间更改了此参数,Plotly图表将尊重
use_container_width(#8191, #8576)。
Version 1.34.0
发布日期:2024年5月2日
亮点
- 🍿 介绍
st.experimental_dialog!创建一个模态覆盖层,它也可以独立于应用程序的其他部分重新运行。查看 文档 了解如何操作。
显著变化
- 🔣
st.toast,st.chat_message,st.set_page_config,st.info,st.success,st.error, 和st.warning可以使用 Google Material Symbols 作为它们的图标。 - 🌈 Markdown 支持文本的背景颜色。查看 功能演示应用。
- 🎥
st.audio和st.video现在可以设置为自动播放。st.video可以静音。 - 🗃️ 你可以清除特定缓存值用于缓存函数。感谢,OscarSaharoy!
- ❓ 你现在可以通过一次调用
st.query_params.from_dict来设置所有查询参数。感谢Asaurus1!
其他变更
- 🔲 Streamlit 支持 Modin 和 Snowpark pandas 的 DataFrames 和 Series (#8506)。
- ⏱️ 改进了对
st.dataframe和st.data_editor中period数据类型的支持 (#7987)。 - 🗺️ Streamlit 支持使用
pydeck-carto与st.pydeck_chart一起使用 (#8422)。 - ❄️ 额外的
snowflake要求已更新,以允许 Python 版本 3.8 到 3.11 (#8538)。 - 🍞
st.toast收到了视觉改进,现在出现在右上角 (#8433)。 - 🦋 对话框和模态框的视觉调整。
- 🦀 Bug 修复:当传递一个没有 yield 的生成器时,
st.write_stream返回一个空字符串 (#8560)。 - 🦎 错误修复:支持
None值的小部件现在可以通过Session State正确设置为None(#8529, #7649)。 - 🐌 错误修复:如果未设置
st.date_input的初始值,并且今天的日期超出了声明的最小值或最大值,则将使用最小值或最大值,以较接近者为准(#8519, #6167)。 - 🕸️ Bug 修复:Altair 的
resolve_scale方法已正确处理 (#8497, #1667)。 - 🦗 错误修复:
st.multiselects在传递给options或default时正确处理集合 (#8471, #8466)。 - 🦂 错误修复:当为空时,
st.status不显示扩展器切换 (#8369)。 - 🦟 Bug 修复:Vega 和 Altair 中
vconcat图表的宽度已正确设置 (#8498, #2751). - 🦠 错误修复:应用程序打印效果更佳,不再显示过多的空白(#8502, #7815)。
- 🪰 Bug 修复:移除了无效的转义序列,以避免
pytest的警告 (#8510, #8501)。 - 🪳 Bug 修复:
st.file_uploader回调在第一次选择后每次文件选择时正确执行一次 (#8493, #4877)。 - 🕷️ Bug 修复:Streamlit 兼容最低版本为
pillow7.1.0 而不是 9.1.0 (#8492, #8486). - 🐞 错误修复:当脚本运行因切换页面而中断时,小部件值被正确丢弃(#8425, #7338)。
- 🐝 错误修复:深色模式下的应用程序在打印后将返回深色模式 (#8469, #7879).
- 🐜 错误修复:组件准备状态是动态的,以避免在Safari中导致空白应用程序的竞争条件(#8434, #8362)。
- 🪲 错误修复:当
min_value小于或等于max_value时,st.slider会产生 Python 错误 (#8413, #8342)。 - 🐛 错误修复:Vega 和 Altair 的时间偏移已正确修复 (#8278, #4342)。
Version 1.33.0
发布日期:2024年4月4日
亮点
- 👟 引入
st.experimental_fragment来装饰函数并独立于整个页面重新运行它们。查看 文档 并为您的应用程序提速! - 🌐 介绍
st.html以将自定义 HTML 插入到您的应用程序中!查看 文档 了解如何使用它。
显著变化
- 📺
st.audio和st.video允许循环播放和设置结束时间 (#8203, #8348). - 🔁
AppTest允许使用AppTest.switch_page切换页面 (#8280)。 - 🧪
format_func在使用它的小部件中可以通过AppTest访问 (#8189, #8019, #7679)。 - 📈 列配置现在包括
AreaChartColumn。LineChartColumn不再显示区域 (#8237)。 - 🚧 重大变更:
st.write将不再在传递包含_repr_html_方法的对象时设置unsafe_allow_html=True。更多信息,请参见 PR #8238。
其他变更
- 🖱️用户可以点击小部件标签以聚焦于
st.number_input、st.text_input和st.text_area的输入(#8155)。感谢filiptammergard! - ⬆️ Streamlit 支持
packaging版本 24.x (#8338, #8328). - 🕸️ Bug 修复:Streamlit 现在除了页面外,还会监视导入模块的更改 (#8372)。感谢 zyxue!
- 🦗 错误修复:溢出的提示消息现在被正确截断 (#8337, #8330).
- 🦂 错误修复:当使用 LangChain 的
StreamlitCallbackHandler时,st.status正确更新为完成状态 (#8331)。 - 🦟 错误修复:自定义组件在暗色主题中不再显示白色背景 (#8242, #8156, #7813).
- 🦠 错误修复:当全屏图标可能导致水平溢出时,内容区域的宽度会减小(#8279, #6990)。
- 🪰 错误修复:未定义框架高度的自定义组件将以高度0渲染 (#8290, #8285).
- 🪳 错误修复:恢复了活动会话的检查,以防止在没有用户连接时应用程序不必要地运行 (#8294)。
- 🕷️ 错误修复:自定义主题优先于嵌入选项 (#8021, #7118).
- 🐞 错误修复:恢复了异步计时器以过期会话存储缓存,以解决计算效率问题 (#8281)。
- 🐝 错误修复:当使用
st.popover并设置use_container_width=True时,弹出容器的最小宽度将与弹出按钮匹配(#8266, #8261)。 - 🐜 错误修复:在
AppTest中使用st.rerun与触发小部件不再创建无限循环 (#8264, #7768). - 🪲 错误修复:如果使用正则表达式或不使用完全限定的URL,
LinkColumn中的URL将被正确解码(#8258, #7064)。 - 🐛 错误修复:
st.query_params在更新多个参数时只发送一个ForwardMsg(#8205, #8199)。感谢 Asaurus1!
Version 1.32.0
发布日期:2024年3月7日
亮点
- 🍿 介绍
st.popover以在您的 Streamlit 应用程序中创建弹出元素。查看 文档 了解如何使用它!
显著变化
- 📺 您现在可以向
st.video传递字幕了!查看我们的 功能演示。 - ⚗️
AppTest包含对st.expander和st.status的支持。 - 🧪
AppTest.from_function接受一个带有参数和/或返回值的函数。 - 🧩 自定义组件的超时警告已被替换为元素骨架,以改善加载缓慢组件的用户体验,特别是在一些云托管平台上(#8179, #7046)。
- 📄
st.switch_page和st.page_link在路径处理、性能和视觉外观方面得到了显著改进(详见下文)。 - 🦀 Bug 修复:Streamlit 使用
glide-data-grid版本 6.0.4 来修复各种数据框问题 (#7779, #6900, #7032, #7727, #6810, #7930, #7949, #7831, #8168). - 💦 错误修复:我们修复了协程循环中的一个重大内存泄漏问题。在客户端和服务器之间生成大量小消息的应用程序将大大受益(#8068, #7989, #6510)。
其他变更
- 💪 现在多个模块被懒加载,以加快 Streamlit 的导入时间 (#8150, #8143, #8134, #8113, #8125, #8111, #8109, #6066).
- 🖼️
st.write支持PIL图像 (#8039). - 🔗
st.radio允许在传递给options的项目中使用 markdown 链接 (#8028, #7992). - 💀
deprecation.showPyplotGlobalUse配置选项已被弃用,并将在后续版本中移除 (#8133)。 - 🤖 Streamlit 支持 AzureOpenAI 聊天流 (#8107, #8084).
- 🌐
/healthz端点支持 HTTP HEAD 方法 (#8145, #8144)。感谢 rahulmistri1997! - 🌀
st.spinner的cache参数现在是私有的(_cache),因为它仅供内部使用(#8118)。 - 🏃 会话存储的检查和过期是异步进行的,以提高低流量应用的性能和效率 (#8083)。
- 🐜
st.write_stream在消息无法解析时会抛出一个描述性的Exception(#8036)。 - 📘 修复了
st.switch_page和st.page_link示例中的拼写错误(#8162)。感谢t1emp0! - 👻 Bug 修复:
st.help正确显示条件成员 (#8228). - 🦋 Bug 修复:页面更改时应用状态完全清除,以防止残留的陈旧元素 (#8208)。
- 🦎 Bug 修复:
st.info,st.success,st.warning, 和st.error不会因为长的 markdown 字符串而溢出 (#8194, #6394). - 🐌 错误修复:当服务器端口设置为3000时,Streamlit会显示一个警告,提示端口3000是为开发保留的(#8152, #8149)。
- 🕸️ Bug 修复:
st.page_link和st.switch_page改进了路径计算以提高一致性 (#8127)。 - 🦗 错误修复:
st.page_link在悬停时显示浏览器中的正确路径 (#8086, #8080)。 - 🦂 错误修复:
st.page_link和st.switch_page规范化路径以在 Windows 中正确处理 (#8103, #8070)。 - 🦟 错误修复:脚本运行器使用 while 循环代替递归以避免堆栈溢出 (#8100)。
- 🦠 错误修复:
st.page_link和st.switch_page正确处理以"/"为前缀的相对路径 (#8085, #8081)。 - 🪰 Bug 修复:
st.image在 Windows 中正确解析路径 (#8092, #7271, #6066). - 🪳 Bug 修复:
st.switch_page不再等待当前页面运行完毕后再切换页面 (#8054, #7954). - 🕷️ Bug 修复:
st.map和其他简单图表在数据索引不从0开始时正确处理颜色 (#8158, #8079, #8077). 感谢, awhazell! - 🐞 错误修复:
st.selectbox,st.multiselect,st.select_slider, 和st.radio使用选项的浅拷贝以防止意外的突变 (#8064, #7534). - 🐝 错误修复:在暗模式下,
st.time_input中选择的时间显示正确 (#8056, #7436)。 - 🪲 错误修复:在最新版本的Chrome中,Dataframe滚动条显示正确 (#8034)。
- 🐛 错误修复:将
st.query_params转换为str将打印查询参数的内容,而不是类描述 (#8030)。
Version 1.31.0
发布日期:2024年2月1日
发布视频
亮点
- 🔗 介绍
st.page_link!现在,您可以为多页面应用程序构建自定义导航菜单。查看 我们的文档 了解如何操作。 - 💦 宣布
st.write_stream以便利地处理生成器和流式响应。查看 我们的文档 了解如何使聊天应用的开发变得更加简单。
显著变化
- 📝
st.chat_input可以内联使用,并放置在应用程序的任何位置。您还可以在一个页面上放置多个st.chat_input小部件 (#7896)。
其他变更
- 🧹 内部重构和清理 (#7980)。感谢,whitphx!
- ❄️ Bug 修复:Snowpark 现在是
SnowflakeConnection的可选依赖项 (#7919)。 - 🕷️ Bug 修复:当
server.fileWatcherType设置为none或poll时,watchdog 建议被禁用 (#8024, #7999)。 - 🐞 错误修复:当不使用
st.data_editor与动态行时,必需的列可能会被隐藏 (#7996, #7991). - 🐝 错误修复:支持 pandas 2.2.0 的新周期类型 (#7988)。
- 🐜 错误修复:自定义组件仅接收应用程序的来源和路径,以避免在查询参数更改时重新加载组件 (#7951, #7503)。感谢 eric-skydio!
- 🪲 错误修复:
st.progress在给定值大于1.0时不会由于浮点精度问题引发异常(#7953, #5517)。感谢,notiona! - 📚 Streamlit 支持
importlib-metadata版本 7 (#7925)。感谢 elgalu! - 🐛 错误修复:
AppTest正确识别容器内的小部件 (#7923, #7711). - 💿 自定义组件在重新渲染时不再累积样式元素,以提高性能 (#7914)。感谢 Tom-Julux!
Version 1.30.0
发布日期:2024年1月11日
发布视频
亮点
- 🔄 宣布
st.switch_page以编程方式在多页面应用程序中切换页面!查看我们的 文档 了解这一备受期待的功能! - ❓介绍
st.query_params用于处理通过应用程序URL传递的变量。查看我们的 文档 以了解此功能以及它如何从我们的实验版本中升级和改进!
显著变化
- 📐
st.container可以配置高度以创建网格或滚动容器 (#7697, #2169, #2447). - 🔗 对于数据框,
LinkColumn有一个简化的用户界面,并且可以配置显示文本,包括通过正则表达式以编程方式定义的文本 (#7784, #7741, #6787)。 - 🧭 多页面应用的侧边栏导航可以通过配置隐藏(#7852)。
- ⏩ 当与
orjson结合使用时,Plotly图表可以加载得更快(#7860)。感谢,eric-skydio! - ♻️ 行为变更:更改页面时移除查询参数 (#7817, #6725, #5505).
其他变更
- 🛠️
showFooter不再是一个嵌入选项,因为页脚不再存在 (#7902, #7785). - 🕵️ 所有安全问题应通过 HackerOne (#7783) 报告。
- 🕷️ Bug 修复:当标签页过时时,标签页不会被禁用以防止闪烁 (#7905, #7820).
- 🛡️ 错误修复:使用完整文件路径而不是前缀,以防止自定义组件访问超出其自身文件夹的范围 (#7901)。
- 🪱 Bug 修复:如果小部件的值无法在 Python 中进行比较,则会引发异常 (#7840, #3714)。
- 🐞 错误修复:扩展器上的向下箭头图标保持一致的尺寸 (#7596)。感谢,matiboux!
- 🐝 错误修复:在切换标签时不再闪烁 (#7904).
- 🐜 错误修复:当关联的
st.form_submit_button被禁用时,Enter-to-submit 会自动禁用 (#7827, #7822)。 - 🪲 错误修复:无法通过列配置隐藏必填列 (#7888, #7559).
- 🐛 错误修复:在
SelectboxColumn中使用nan作为值将会引发错误,而不是静默失败 (#7887, #7558)。 - 🌙 Bug 修复:自定义组件 iframe 支持暗黑模式 (#7821, #7813).
- 🪰 Bug 修复:启动 Streamlit 的命令未发送到前端 (#7787)。
- 💅 错误修复:增强了
st.toggle的背景颜色以提高可见性 (#7788)。 - 🪳 Bug 修复:内置图表可以处理有序分类列 (#7771, #7776).
还有问题吗?
我们的 论坛 充满了有用的信息和Streamlit专家。