Skip to content

Commit 3a33452

Browse files
authoredNov 6, 2024··
Release 1.40.0 (#1180)
* Only deprecate the first mentioned parameter in a notice. * Add API pages * Update streamlit.json * API reference cards * Audio input GA * Update streamlit.json * Update streamlit.json * Update streamlit.json * st.text example typo * Update streamlit.json * Update navigation example for style * Release notes * Update streamlit.json * What's new * Cheat sheet * Bump app versions
1 parent 08877cc commit 3a33452

File tree

31 files changed

+10847
-170
lines changed

31 files changed

+10847
-170
lines changed
 

‎content/develop/api-reference/_index.md

+40-14
Original file line numberDiff line numberDiff line change
@@ -779,19 +779,6 @@ Display a download button widget.
779779
st.download_button("Download file", file)
780780
```
781781

782-
</RefCard>
783-
<RefCard href="/develop/api-reference/widgets/st.feedback">
784-
785-
<Image pure alt="screenshot" src="/images/api/feedback.jpg" />
786-
787-
<h4>Feedback</h4>
788-
789-
Display a rating or sentiment button group.
790-
791-
```python
792-
st.feedback("stars")
793-
```
794-
795782
</RefCard>
796783
<RefCard href="/develop/api-reference/execution-flow/st.form_submit_button">
797784

@@ -858,6 +845,19 @@ Display a color picker widget.
858845
color = st.color_picker("Pick a color")
859846
```
860847

848+
</RefCard>
849+
<RefCard href="/develop/api-reference/widgets/st.feedback">
850+
851+
<Image pure alt="screenshot" src="/images/api/feedback.jpg" />
852+
853+
<h4>Feedback</h4>
854+
855+
Display a rating or sentiment button group.
856+
857+
```python
858+
st.feedback("stars")
859+
```
860+
861861
</RefCard>
862862
<RefCard href="/develop/api-reference/widgets/st.multiselect">
863863

@@ -871,6 +871,19 @@ Display a multiselect widget. The multiselect widget starts as empty.
871871
choices = st.multiselect("Buy", ["milk", "apples", "potatoes"])
872872
```
873873

874+
</RefCard>
875+
<RefCard href="/develop/api-reference/widgets/st.pills">
876+
877+
<Image pure alt="screenshot" src="/images/api/pills.jpg" />
878+
879+
<h4>Pills</h4>
880+
881+
Display a pill-button selection widget.
882+
883+
```python
884+
st.pills("Tags", ["Sports", "AI", "Politics"])
885+
```
886+
874887
</RefCard>
875888
<RefCard href="/develop/api-reference/widgets/st.radio">
876889

@@ -884,6 +897,19 @@ Display a radio button widget.
884897
choice = st.radio("Pick one", ["cats", "dogs"])
885898
```
886899

900+
</RefCard>
901+
<RefCard href="/develop/api-reference/widgets/st.segmented_control">
902+
903+
<Image pure alt="screenshot" src="/images/api/segmented_control.jpg" />
904+
905+
<h4>Segmented control</h4>
906+
907+
Display a segmented-button selection widget.
908+
909+
```python
910+
st.segmented_control("Filter", ["Open", "Closed", "All"])
911+
```
912+
887913
</RefCard>
888914
<RefCard href="/develop/api-reference/widgets/st.selectbox">
889915

@@ -1026,7 +1052,7 @@ name = st.text_input("First name")
10261052
Display a widget that allows users to record with their microphone.
10271053

10281054
```python
1029-
speech = st.experimental_audio_input("Record a voice message")
1055+
speech = st.audio_input("Record a voice message")
10301056
```
10311057

10321058
</RefCard>

‎content/develop/api-reference/text/text.md

-2
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,3 @@ description: st.text writes fixed-width and preformatted text.
55
---
66

77
<Autofunction function="streamlit.text" />
8-
9-
<Image src="/images/api/st.text.png" clean />

‎content/develop/api-reference/widgets/_index.md

+65-40
Original file line numberDiff line numberDiff line change
@@ -38,20 +38,6 @@ st.download_button("Download file", file)
3838

3939
</RefCard>
4040

41-
<RefCard href="/develop/api-reference/widgets/st.feedback">
42-
43-
<Image pure alt="screenshot" src="/images/api/feedback.jpg" />
44-
45-
<h4>Feedback</h4>
46-
47-
Display a rating or sentiment button group.
48-
49-
```python
50-
st.feedback("stars")
51-
```
52-
53-
</RefCard>
54-
5541
<RefCard href="/develop/api-reference/execution-flow/st.form_submit_button">
5642

5743
<Image pure alt="screenshot" src="/images/api/form_submit_button.svg" />
@@ -114,55 +100,81 @@ selected = st.checkbox("I agree")
114100
```
115101

116102
</RefCard>
117-
<RefCard href="/develop/api-reference/widgets/st.toggle">
103+
<RefCard href="/develop/api-reference/widgets/st.color_picker">
118104

119-
<Image pure alt="screenshot" src="/images/api/toggle.jpg" />
105+
<Image pure alt="screenshot" src="/images/api/color_picker.jpg" />
120106

121-
<h4>Toggle</h4>
107+
<h4>Color picker</h4>
122108

123-
Display a toggle widget.
109+
Display a color picker widget.
124110

125111
```python
126-
activated = st.toggle("Activate")
112+
color = st.color_picker("Pick a color")
127113
```
128114

129115
</RefCard>
130-
<RefCard href="/develop/api-reference/widgets/st.radio">
116+
<RefCard href="/develop/api-reference/widgets/st.feedback">
131117

132-
<Image pure alt="screenshot" src="/images/api/radio.jpg" />
118+
<Image pure alt="screenshot" src="/images/api/feedback.jpg" />
133119

134-
<h4>Radio</h4>
120+
<h4>Feedback</h4>
135121

136-
Display a radio button widget.
122+
Display a rating or sentiment button group.
137123

138124
```python
139-
choice = st.radio("Pick one", ["cats", "dogs"])
125+
st.feedback("stars")
140126
```
141127

142128
</RefCard>
143-
<RefCard href="/develop/api-reference/widgets/st.selectbox">
129+
<RefCard href="/develop/api-reference/widgets/st.multiselect">
144130

145-
<Image pure alt="screenshot" src="/images/api/selectbox.jpg" />
131+
<Image pure alt="screenshot" src="/images/api/multiselect.jpg" />
146132

147-
<h4>Selectbox</h4>
133+
<h4>Multiselect</h4>
148134

149-
Display a select widget.
135+
Display a multiselect widget. The multiselect widget starts as empty.
150136

151137
```python
152-
choice = st.selectbox("Pick one", ["cats", "dogs"])
138+
choices = st.multiselect("Buy", ["milk", "apples", "potatoes"])
153139
```
154140

155141
</RefCard>
156-
<RefCard href="/develop/api-reference/widgets/st.multiselect">
142+
<RefCard href="/develop/api-reference/widgets/st.pills">
157143

158-
<Image pure alt="screenshot" src="/images/api/multiselect.jpg" />
144+
<Image pure alt="screenshot" src="/images/api/pills.jpg" />
159145

160-
<h4>Multiselect</h4>
146+
<h4>Pills</h4>
161147

162-
Display a multiselect widget. The multiselect widget starts as empty.
148+
Display a pill-button selection widget.
163149

164150
```python
165-
choices = st.multiselect("Buy", ["milk", "apples", "potatoes"])
151+
st.pills("Tags", ["Sports", "AI", "Politics"])
152+
```
153+
154+
</RefCard>
155+
<RefCard href="/develop/api-reference/widgets/st.radio">
156+
157+
<Image pure alt="screenshot" src="/images/api/radio.jpg" />
158+
159+
<h4>Radio</h4>
160+
161+
Display a radio button widget.
162+
163+
```python
164+
choice = st.radio("Pick one", ["cats", "dogs"])
165+
```
166+
167+
</RefCard>
168+
<RefCard href="/develop/api-reference/widgets/st.segmented_control">
169+
170+
<Image pure alt="screenshot" src="/images/api/segmented_control.jpg" />
171+
172+
<h4>Segmented control</h4>
173+
174+
Display a segmented-button selection widget.
175+
176+
```python
177+
st.segmented_control("Filter", ["Open", "Closed", "All"])
166178
```
167179

168180
</RefCard>
@@ -179,16 +191,29 @@ size = st.select_slider("Pick a size", ["S", "M", "L"])
179191
```
180192

181193
</RefCard>
182-
<RefCard href="/develop/api-reference/widgets/st.color_picker">
194+
<RefCard href="/develop/api-reference/widgets/st.selectbox">
183195

184-
<Image pure alt="screenshot" src="/images/api/color_picker.jpg" />
196+
<Image pure alt="screenshot" src="/images/api/selectbox.jpg" />
185197

186-
<h4>Color picker</h4>
198+
<h4>Selectbox</h4>
187199

188-
Display a color picker widget.
200+
Display a select widget.
189201

190202
```python
191-
color = st.color_picker("Pick a color")
203+
choice = st.selectbox("Pick one", ["cats", "dogs"])
204+
```
205+
206+
</RefCard>
207+
<RefCard href="/develop/api-reference/widgets/st.toggle">
208+
209+
<Image pure alt="screenshot" src="/images/api/toggle.jpg" />
210+
211+
<h4>Toggle</h4>
212+
213+
Display a toggle widget.
214+
215+
```python
216+
activated = st.toggle("Activate")
192217
```
193218

194219
</RefCard>
@@ -320,7 +345,7 @@ if prompt:
320345
Display a widget that allows users to record with their microphone.
321346

322347
```python
323-
speech = st.experimental_audio_input("Record a voice message")
348+
speech = st.audio_input("Record a voice message")
324349
```
325350

326351
</RefCard>

‎content/develop/api-reference/widgets/audio_input.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ slug: /develop/api-reference/widgets/st.audio_input
44
description: st.audio_input displays a widget to upload audio from a microphone
55
---
66

7-
<Autofunction function="streamlit.experimental_audio_input" />
7+
<Autofunction function="streamlit.audio_input" oldName="streamlit.experimental_audio_input" />
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
title: st.pills
3+
slug: /develop/api-reference/widgets/st.pills
4+
description: st.pills displays a select widget where options display as pill buttons.
5+
---
6+
7+
<Autofunction function="streamlit.pills" />
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
title: st.segmented_control
3+
slug: /develop/api-reference/widgets/st.segmented_control
4+
description: st.segmented_control displays a select widget where options display in a segmented button.
5+
---
6+
7+
<Autofunction function="streamlit.segmented_control" />

‎content/develop/quick-references/api-cheat-sheet.md

+9-7
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ slug: /develop/quick-reference/cheat-sheet
55

66
# Streamlit API cheat sheet
77

8-
This is a summary of the docs for the latest version of Streamlit, [v1.39.0](https://pypi.org/project/streamlit/1.39.0/).
8+
This is a summary of the docs for the latest version of Streamlit, [v1.40.0](https://pypi.org/project/streamlit/1.40.0/).
99

1010
<Masonry>
1111

@@ -64,7 +64,7 @@ streamlit --version
6464
```python
6565
# Magic commands implicitly
6666
# call st.write().
67-
"_This_ is some **Markdown***"
67+
"_This_ is some **Markdown**"
6868
my_variable
6969
"dataframe:", my_data_frame
7070

@@ -78,12 +78,12 @@ my_variable
7878

7979
```python
8080
st.write("Most objects") # df, err, func, keras!
81-
st.write(["st", "is <", 3]) # see *
81+
st.write(["st", "is <", 3])
8282
st.write_stream(my_generator)
8383
st.write_stream(my_llm_stream)
8484

8585
st.text("Fixed width text")
86-
st.markdown("_Markdown_") # see *
86+
st.markdown("_Markdown_")
8787
st.latex(r""" e^{i\pi} + 1 = 0 """)
8888
st.title("My title")
8989
st.header("My header")
@@ -284,13 +284,15 @@ fragment_function()
284284
```python
285285
st.button("Click me")
286286
st.download_button("Download file", data)
287-
st.feedback("thumbs")
288287
st.link_button("Go to gallery", url)
289288
st.page_link("app.py", label="Home")
290289
st.data_editor("Edit data", data)
291290
st.checkbox("I agree")
292-
st.toggle("Enable")
291+
st.feedback("thumbs")
292+
st.pills("Tags", ["Sports", "Politics"])
293293
st.radio("Pick one", ["cats", "dogs"])
294+
st.segmented_control("Filter", ["Open", "Closed"])
295+
st.toggle("Enable")
294296
st.selectbox("Pick one", ["cats", "dogs"])
295297
st.multiselect("Buy", ["milk", "apples", "potatoes"])
296298
st.slider("Pick a number", 0, 100)
@@ -301,7 +303,7 @@ st.text_area("Text to translate")
301303
st.date_input("Your birthday")
302304
st.time_input("Meeting time")
303305
st.file_uploader("Upload a CSV")
304-
st.experimental_audio_input("Record a voice message")
306+
st.audio_input("Record a voice message")
305307
st.camera_input("Take a picture")
306308
st.color_picker("Pick a color")
307309

‎content/develop/quick-references/release-notes/2024.md

+38
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,44 @@ keywords: changelog, release notes, version history
99

1010
This page contains release notes for Streamlit versions released in 2024. For the latest version of Streamlit, see [Release notes](/develop/quick-reference/release-notes).
1111

12+
## **Version 1.40.0**
13+
14+
_Release date: November 6, 2024_
15+
16+
**Highlights**
17+
18+
- 💊 Introducing [`st.pills`](/develop/api-reference/widgets/st.pills) to create a single- or multi-select group of pill-buttons.
19+
- 🎛️ Introducing [`st.segmented_control`](/develop/api-reference/widgets/st.segmented_control) to create a segmented button or button group.
20+
- 🎤 Announcing the general availability of [`st.audio_input`](), a widget to let users record sound with their microphones.
21+
22+
**Notable Changes**
23+
24+
- ➡️ Markdown renders a limited set of typographical symbols (arrows and comparators).
25+
- <img src="/logo.svg" style={{ display: "inline-block", width: "1em" }} /> You can use `:streamlit:` to render the Streamlit logo in [Markdown](/develop/api-reference/text/st.markdown).
26+
- 🐍 [`st.text`](/develop/api-reference/text/st.text) wraps text and no longer uses monospace font.
27+
- 🪣 You can set `use_container_width` for [`st.image`](/develop/api-reference/media/st.image). `use_column_width` is deprecated.
28+
- 📅 [`st.date_input`](/develop/api-reference/widgets/st.date_input) infers the first day of the week from the user’s locale ([#9706](https://github.com/streamlit/streamlit/pull/9706), [#5215](https://github.com/streamlit/streamlit/issues/5215)).
29+
30+
**Other Changes**
31+
32+
- 🎶 Streamlit’s CLI tool accepts array values for configuration options ([#9577](https://github.com/streamlit/streamlit/pull/9577)).
33+
- ⛓️ Static file serving supports symlinks ([#9147](https://github.com/streamlit/streamlit/pull/9147), [#9146](https://github.com/streamlit/streamlit/issues/9146)). Thanks, [link89](https://github.com/link89)!
34+
- 🚀 Streamlit provides helpful links for deployment when an app is running locally ([#9681](https://github.com/streamlit/streamlit/pull/9681)).
35+
- ↕️ The fullscreen button for charts matches with the dataframe toolbar ([#9721](https://github.com/streamlit/streamlit/pull/9721)).
36+
- 🏃 The running-man icon has a brief delay before rendering to avoid an unnecessary flicker for fast running apps ([#9732](https://github.com/streamlit/streamlit/pull/9732)).
37+
- 🖇️ The `ComponentRequestHandler` allows symlinks ([#9588](https://github.com/streamlit/streamlit/pull/9588)).
38+
- 👆 Streamlit works with `pillow` version 11 ([#9742](https://github.com/streamlit/streamlit/pull/9742)). Thanks, [hauntsaninja](https://github.com/hauntsaninja)!
39+
- 🗺️ Deck.gl was upgraded to version 9.0.33 ([#9636](https://github.com/streamlit/streamlit/pull/9636)).
40+
- 🦠 Bug fix: `st.latex` stays center-aligned when using the `help` keyword argument ([#9698](https://github.com/streamlit/streamlit/pull/9698), [#9682](https://github.com/streamlit/streamlit/issues/9682)). Thanks, [emmagarr](https://github.com/emmagarr)!
41+
- 🪰 Bug fix: Apps correctly access local storage on Android ([#9744](https://github.com/streamlit/streamlit/pull/9744), [#9740](https://github.com/streamlit/streamlit/issues/9740)).
42+
- 🕷️ Bug fix: Cached class methods can be cleared ([#9642](https://github.com/streamlit/streamlit/pull/9642), [#9633](https://github.com/streamlit/streamlit/issues/9633)).
43+
- 🐞 Bug fix: Streamlit clears fragment auto-reruns when a user changes pages. This prevents an invalid index ([#9617](https://github.com/streamlit/streamlit/pull/9617)).
44+
- 🐝 Bug fix: `st.page_link` margins are correct ([#9625](https://github.com/streamlit/streamlit/pull/9625)).
45+
- 🐜 Bug fix: Form widgets show submission instructions when in focus ([#9576](https://github.com/streamlit/streamlit/pull/9576), [#7079](https://github.com/streamlit/streamlit/issues/7079)).
46+
- 🪲 Bug fix: `st.navigation` correctly reconciles `client.showSidebarNavigation` ([#9589](https://github.com/streamlit/streamlit/pull/9589), [#9581](https://github.com/streamlit/streamlit/issues/9581)).
47+
- 🐛 Bug fix: `st.text_area` requires a minimum height of 68px which fits two lines ([#9561](https://github.com/streamlit/streamlit/pull/9561), [#9217](https://github.com/streamlit/streamlit/issues/9217)).
48+
- 💅 Bug fix: Various styling fixes ([#9529](https://github.com/streamlit/streamlit/pull/9529), [#8131](https://github.com/streamlit/streamlit/issues/8131), [#9555](https://github.com/streamlit/streamlit/pull/9555), [#9496](https://github.com/streamlit/streamlit/issues/9496), [#9554](https://github.com/streamlit/streamlit/pull/9554), [#9349](https://github.com/streamlit/streamlit/issues/9349), [#7739](https://github.com/streamlit/streamlit/issues/7739)).
49+
1250
## **Version 1.39.0**
1351

1452
_Release date: October 1, 2024_

‎content/develop/quick-references/release-notes/_index.md

+27-46
Original file line numberDiff line numberDiff line change
@@ -21,62 +21,43 @@ pip install --upgrade streamlit
2121

2222
</Tip>
2323

24-
## **Version 1.39.0 (latest)**
24+
## **Version 1.40.0 (latest)**
2525

26-
_Release date: October 1, 2024_
26+
_Release date: November 6, 2024_
2727

2828
**Highlights**
2929

30-
- 🎤 Introducing [`st.experimental_audio_input`](/develop/api-reference/widgets/st.audio_input) to let users record with their microphones!
31-
- 📍 [`st.pydeck_chart`](/develop/api-reference/charts/st.pydeck_chart#chart-selections) can return selection events!
30+
- 💊 Introducing [`st.pills`](/develop/api-reference/widgets/st.pills) to create a single- or multi-select group of pill-buttons.
31+
- 🎛️ Introducing [`st.segmented_control`](/develop/api-reference/widgets/st.segmented_control) to create a segmented button or button group.
32+
- 🎤 Announcing the general availability of [`st.audio_input`](), a widget to let users record sound with their microphones.
3233

3334
**Notable Changes**
3435

35-
- 😃 [`st.button`](/develop/api-reference/widgets/st.button), [`st.download_button`](/develop/api-reference/widgets/st.download_button), [`st.form_submit_button`](/develop/api-reference/execution-flow/st.form_submit_button), [`st.link_button`](/develop/api-reference/widgets/st.link_button), and [`st.popover`](/develop/api-reference/layout/st.popover) each have a new parameter to add an icon.
36-
- 🏢 [`st.logo`](/develop/api-reference/media/st.logo) has a new parameter to adjust the size of your logo.
37-
- 🧭 [`st.navigation`](/develop/api-reference/navigation/st.navigation) lets you display an always-expanded or collapsible menu using a new `expanded` parameter.
38-
- ↕️ You can set `height` and `width` for [`st.map`](/develop/api-reference/charts/st.map) and [`st.pydeck_chart`](/develop/api-reference/charts/st.pydeck_chart).
39-
- ↩️ Form submission behavior can be configured with a new `enter_to_submit` parameter ([#9480](https://github.com/streamlit/streamlit/pull/9480), [#7538](https://github.com/streamlit/streamlit/issues/7538), [#9406](https://github.com/streamlit/streamlit/pull/9406), [#8042](https://github.com/streamlit/streamlit/issues/8042)).
40-
- ⏱️ A new config option, `server.disconnectedSessionTTL`, lets you set a minimum time before a disconnected session is cleaned up ([#9179](https://github.com/streamlit/streamlit/pull/9179)).
41-
- 🤹 Dataframes support multi-index headers ([#9483](https://github.com/streamlit/streamlit/pull/9483), [#6319](https://github.com/streamlit/streamlit/issues/6319)).
36+
- ➡️ Markdown renders a limited set of typographical symbols (arrows and comparators).
37+
- <img src="/logo.svg" style={{ display: "inline-block", width: "1em" }} /> You can use `:streamlit:` to render the Streamlit logo in [Markdown](/develop/api-reference/text/st.markdown).
38+
- 🐍 [`st.text`](/develop/api-reference/text/st.text) wraps text and no longer uses monospace font.
39+
- 🪣 You can set `use_container_width` for [`st.image`](/develop/api-reference/media/st.image). `use_column_width` is deprecated.
40+
- 📅 [`st.date_input`](/develop/api-reference/widgets/st.date_input) infers the first day of the week from the user's locale ([#9706](https://github.com/streamlit/streamlit/pull/9706), [#5215](https://github.com/streamlit/streamlit/issues/5215)).
4241

4342
**Other Changes**
4443

45-
- 🔑 Widget keys appear as HTML classes in the DOM with an `st-key-` prefix ([#9295](https://github.com/streamlit/streamlit/pull/9295), [#5437](https://github.com/streamlit/streamlit/issues/5437), [#3888](https://github.com/streamlit/streamlit/issues/3888)).
46-
- 🔍 The `StreamlitAPIException` class has been extended into more specific exceptions for some of the most common errors ([#9318](https://github.com/streamlit/streamlit/pull/9318)).
47-
- 🗺️ `st.map` and `st.pydeck_chart` have a full-screen toggle that matches the dataframe toolbar.
48-
- ⬆️ Frontend dependencies for Vega have been upgraded ([#9443](https://github.com/streamlit/streamlit/pull/9443), [#9438](https://github.com/streamlit/streamlit/issues/9438)).
49-
- 🕵️ Streamlit is compatible with Watchdog version 5 ([#9354](https://github.com/streamlit/streamlit/pull/9354)). Thanks, [RubenVanEldik](https://github.com/RubenVanEldik)!
50-
- 🔁 Streamlit is compatible with Tenacity version 9 ([#9348](https://github.com/streamlit/streamlit/pull/9348)).
51-
- 🔢 Bug fix: Column configuration will override any text or number format from `pandas.Styler` ([#9538](https://github.com/streamlit/streamlit/pull/9538), [#7329](https://github.com/streamlit/streamlit/issues/7329), [#7977](https://github.com/streamlit/streamlit/issues/7977)).
52-
- 🦋 Bug fix: Deck GL zoom button has the correct border radius ([#9536](https://github.com/streamlit/streamlit/pull/9536)).
53-
- 🦐 Bug fix: Embedded apps have the correct padding to avoid hiding elements ([#9524](https://github.com/streamlit/streamlit/pull/9524), [#9341](https://github.com/streamlit/streamlit/issues/9341)).
54-
- 🎨 Bug fix: The `st.multiselect` placeholder text has the correct color ([#9523](https://github.com/streamlit/streamlit/pull/9523), [#9514](https://github.com/streamlit/streamlit/issues/9514)).
55-
- 🧹 Bug fix: `st.json` scrolls horizontally instead of overflowing its container ([#9521](https://github.com/streamlit/streamlit/pull/9521), [#9520](https://github.com/streamlit/streamlit/issues/9520)).
56-
- 🌬️ Bug fix: Bokeh charts (temporarily) don't have a fullscreen button to prevent horizontal scrolling ([#9528](https://github.com/streamlit/streamlit/pull/9528), [#2358](https://github.com/streamlit/streamlit/issues/2358)).
57-
- 🐡 Bug fix: Users are correctly redirected if they add a trailing slash to a page URL ([#9500](https://github.com/streamlit/streamlit/pull/9500), [#9127](https://github.com/streamlit/streamlit/issues/9127)).
58-
- 📁 Bug fix: `st.Page` warns developers against using subdirectories in `url_path`, which is not supported ([#9499](https://github.com/streamlit/streamlit/pull/9499)).
59-
- 💩 Bug fix: Streamlit correctly calculates dataframe widths to prevent Minified React error #185: Maximum update depth exceeded ([#9490](https://github.com/streamlit/streamlit/pull/9490), [#7949](https://github.com/streamlit/streamlit/issues/7949)).
60-
- ☠️ Bug fix: ScriptRunContext handles the active script hash to avoid a race condition where widgets lose state in a multipage app ([#9441](https://github.com/streamlit/streamlit/pull/9441), [#9100](https://github.com/streamlit/streamlit/issues/9100)).
61-
- 🪱 Bug fix: PDFs don't appear as plain text when hosted through static file serving in Streamlit ([#9439](https://github.com/streamlit/streamlit/pull/9439), [#9425](https://github.com/streamlit/streamlit/issues/9425)).
62-
- 👻 Bug fix: Fragment elements don't disappear when used with custom components and callbacks ([#9381](https://github.com/streamlit/streamlit/pull/9381), [#9389](https://github.com/streamlit/streamlit/pull/9389), [#9372](https://github.com/streamlit/streamlit/issues/9372)).
63-
- 👽 Bug fix: Streamlit watches the correct directory for file changes ([#9453](https://github.com/streamlit/streamlit/pull/9453), [#7467](https://github.com/streamlit/streamlit/issues/7467)).
64-
- 🦀 Bug fix: The sidebar navigation uses page count to determine when to display a "show more" button for more consistent behavior ([#9394](https://github.com/streamlit/streamlit/pull/9394)).
65-
- 🦎 Bug fix: The internal script hash is updated at the beginning of a script run instead of the end for correct page routing when a script run is interrupted ([#9408](https://github.com/streamlit/streamlit/pull/9408), [#8975](https://github.com/streamlit/streamlit/issues/8975)).
66-
- 🐌 Bug fix: Bold formatting in headers is ignored ([#9395](https://github.com/streamlit/streamlit/pull/9395), [#4248](https://github.com/streamlit/streamlit/issues/4428)).
67-
- 🕸️ Bug fix: Streamlit correctly identifies the MIME type of more files to prevent custom components from not rendering ([#9390](https://github.com/streamlit/streamlit/pull/9390), [#9365](https://github.com/streamlit/streamlit/issues/9365)). Thanks, [t0mdavid-m](https://github.com/t0mdavid-m)!
68-
- 🦗 Bug fix: The `client.showSidebarNavigation` configuration option works correctly with `st.navigation` ([#9379](https://github.com/streamlit/streamlit/pull/9379)).
69-
- 🦂 Bug fix: Streamlit uses `example.com` instead of `test.com` in a health check to avoid unnecessary warnings ([#9371](https://github.com/streamlit/streamlit/pull/9371)). Thanks, [wyattscarpenter](https://github.com/wyattscarpenter)!
70-
- 🦟 Bug fix: `st.Page` will raise an error if it tries to initialize a page with an empty path ([#9374](https://github.com/streamlit/streamlit/pull/9374), [#8892](https://github.com/streamlit/streamlit/issues/8892)).
71-
- 🦠 Bug fix: An unchanged `st.dialog` can be programmatically reopened after a user has dismissed it ([#9333](https://github.com/streamlit/streamlit/pull/9333), [#9323](https://github.com/streamlit/streamlit/issues/9323)).
72-
- 🪰 Bug fix: Streamlit will not remove underscores from declared page titles in `st.Page` ([#9375](https://github.com/streamlit/streamlit/pull/9375), [#8890](https://github.com/streamlit/streamlit/issues/8890)).
73-
- 🪳 Bug fix: `st.logo` does not flicker when switching pages ([#9361](https://github.com/streamlit/streamlit/pull/9361), [#8815](https://github.com/streamlit/streamlit/issues/8815)).
74-
- 🕷️ Bug fix: `st.data_editor` allows users to re-add a row with the same index after deleting it ([#8864](https://github.com/streamlit/streamlit/pull/8864), [#8854](https://github.com/streamlit/streamlit/issues/8854)).
75-
- 🐞 Bug fix: `st.logo` maintains its aspect ratio when resized to fit within the sidebar width ([#9368](https://github.com/streamlit/streamlit/pull/9368)).
76-
- 🐝 Bug fix: Streamlit correctly removes `st.logo` if not called during a rerun ([#9337](https://github.com/streamlit/streamlit/pull/9337), [#9336](https://github.com/streamlit/streamlit/issues/9336)).
77-
- 🐜 Bug fix: `st.logo` does not flicker when the sidebar changes its state ([#9338](https://github.com/streamlit/streamlit/pull/9338)).
78-
- 🪲 Bug fix: Streamlit renders `st.balloons` and `st.snow` in a React Portal for improved rendering and compatibility with `st.dialog` ([#9335](https://github.com/streamlit/streamlit/pull/9335), [#9236](https://github.com/streamlit/streamlit/issues/9236)).
79-
- 🐛 Bug fix: Option labels are cleanly truncated when `st.multiselect` is displayed in a narrow container ([#9334](https://github.com/streamlit/streamlit/pull/9334), [#8213](https://github.com/streamlit/streamlit/issues/8213)).
44+
- 🎶 Streamlit's CLI tool accepts array values for configuration options ([#9577](https://github.com/streamlit/streamlit/pull/9577)).
45+
- ⛓️ Static file serving supports symlinks ([#9147](https://github.com/streamlit/streamlit/pull/9147), [#9146](https://github.com/streamlit/streamlit/issues/9146)). Thanks, [link89](https://github.com/link89)!
46+
- 🚀 Streamlit provides helpful links for deployment when an app is running locally ([#9681](https://github.com/streamlit/streamlit/pull/9681)).
47+
- ↕️ The fullscreen button for charts matches with the dataframe toolbar ([#9721](https://github.com/streamlit/streamlit/pull/9721)).
48+
- 🏃 The running-man icon has a brief delay before rendering to avoid an unnecessary flicker for fast running apps ([#9732](https://github.com/streamlit/streamlit/pull/9732)).
49+
- 🖇️ The `ComponentRequestHandler` allows symlinks ([#9588](https://github.com/streamlit/streamlit/pull/9588)).
50+
- 👆 Streamlit works with `pillow` version 11 ([#9742](https://github.com/streamlit/streamlit/pull/9742)). Thanks, [hauntsaninja](https://github.com/hauntsaninja)!
51+
- 🗺️ Deck.gl was upgraded to version 9.0.33 ([#9636](https://github.com/streamlit/streamlit/pull/9636)).
52+
- 🦠 Bug fix: `st.latex` stays center-aligned when using the `help` keyword argument ([#9698](https://github.com/streamlit/streamlit/pull/9698), [#9682](https://github.com/streamlit/streamlit/issues/9682)). Thanks, [emmagarr](https://github.com/emmagarr)!
53+
- 🪰 Bug fix: Apps correctly access local storage on Android ([#9744](https://github.com/streamlit/streamlit/pull/9744), [#9740](https://github.com/streamlit/streamlit/issues/9740)).
54+
- 🕷️ Bug fix: Cached class methods can be cleared ([#9642](https://github.com/streamlit/streamlit/pull/9642), [#9633](https://github.com/streamlit/streamlit/issues/9633)).
55+
- 🐞 Bug fix: Streamlit clears fragment auto-reruns when a user changes pages. This prevents an invalid index ([#9617](https://github.com/streamlit/streamlit/pull/9617)).
56+
- 🐝 Bug fix: `st.page_link` margins are correct ([#9625](https://github.com/streamlit/streamlit/pull/9625)).
57+
- 🐜 Bug fix: Form widgets show submission instructions when in focus ([#9576](https://github.com/streamlit/streamlit/pull/9576), [#7079](https://github.com/streamlit/streamlit/issues/7079)).
58+
- 🪲 Bug fix: `st.navigation` correctly reconciles `client.showSidebarNavigation` ([#9589](https://github.com/streamlit/streamlit/pull/9589), [#9581](https://github.com/streamlit/streamlit/issues/9581)).
59+
- 🐛 Bug fix: `st.text_area` requires a minimum height of 68px which fits two lines ([#9561](https://github.com/streamlit/streamlit/pull/9561), [#9217](https://github.com/streamlit/streamlit/issues/9217)).
60+
- 💅 Bug fix: Various styling fixes ([#9529](https://github.com/streamlit/streamlit/pull/9529), [#8131](https://github.com/streamlit/streamlit/issues/8131), [#9555](https://github.com/streamlit/streamlit/pull/9555), [#9496](https://github.com/streamlit/streamlit/issues/9496), [#9554](https://github.com/streamlit/streamlit/pull/9554), [#9349](https://github.com/streamlit/streamlit/issues/9349), [#7739](https://github.com/streamlit/streamlit/issues/7739)).
8061

8162
## Older versions of Streamlit
8263

‎content/menu.md

+9-3
Original file line numberDiff line numberDiff line change
@@ -292,9 +292,6 @@ site_menu:
292292
- category: Develop / API reference / Input widgets / st.download_button
293293
url: /develop/api-reference/widgets/st.download_button
294294
isVersioned: true
295-
- category: Develop / API reference / Input widgets / st.feedback
296-
url: /develop/api-reference/widgets/st.feedback
297-
isVersioned: true
298295
- category: Develop / API reference / Input widgets / st.form_submit_button
299296
url: https://docs.streamlit.io/develop/api-reference/execution-flow/st.form_submit_button
300297
isVersioned: true
@@ -311,12 +308,21 @@ site_menu:
311308
- category: Develop / API reference / Input widgets / st.color_picker
312309
url: /develop/api-reference/widgets/st.color_picker
313310
isVersioned: true
311+
- category: Develop / API reference / Input widgets / st.feedback
312+
url: /develop/api-reference/widgets/st.feedback
313+
isVersioned: true
314314
- category: Develop / API reference / Input widgets / st.multiselect
315315
url: /develop/api-reference/widgets/st.multiselect
316316
isVersioned: true
317+
- category: Develop / API reference / Input widgets / st.pills
318+
url: /develop/api-reference/widgets/st.pills
319+
isVersioned: true
317320
- category: Develop / API reference / Input widgets / st.radio
318321
url: /develop/api-reference/widgets/st.radio
319322
isVersioned: true
323+
- category: Develop / API reference / Input widgets / st.segmented_control
324+
url: /develop/api-reference/widgets/st.segmented_control
325+
isVersioned: true
320326
- category: Develop / API reference / Input widgets / st.selectbox
321327
url: /develop/api-reference/widgets/st.selectbox
322328
isVersioned: true

‎pages/index.js

+33-33
Original file line numberDiff line numberDiff line change
@@ -192,63 +192,63 @@ export default function Home({ window, menu }) {
192192
<TileContainer>
193193
<RefCard
194194
size="third"
195-
href="/develop/api-reference/widgets/st.audio_input"
195+
href="/develop/api-reference/widgets/st.pills"
196196
>
197-
<i className="material-icons-sharp">mic</i>
198-
<h4>Audio input</h4>
197+
<i className="material-icons-sharp">more_horiz</i>
198+
<h4>Pills</h4>
199199
<p>
200-
<code>st.experimental_audio_input</code> lets users record
201-
sound with their microphone.
200+
You can create a single- or multi-select group of
201+
pill-buttons.
202202
</p>
203203
</RefCard>
204204
<RefCard
205205
size="third"
206-
href="/develop/api-reference/charts/st.pydeck_chart"
206+
href="/develop/api-reference/widgets/st.segmented_control"
207207
>
208-
<i className="material-icons-sharp">pin_drop</i>
209-
<h4>Pydeck chart selections</h4>
210-
<p>
211-
<code>st.pydeck_chart</code> can return user selections! We've
212-
also added <code>height</code> and <code>width</code>
213-
parameters.
214-
</p>
208+
<i className="material-icons-sharp">view_week</i>
209+
<h4>Segmented control</h4>
210+
<p>You can create a segmented button or button group.</p>
215211
</RefCard>
216212
<RefCard
217213
size="third"
218-
href="/develop/api-reference/widgets/st.button"
214+
href="/develop/api-reference/widgets/st.audio_input"
219215
>
220-
<i className="material-icons-sharp">sentiment_very_satisfied</i>
221-
<h4>Button icons</h4>
216+
<i className="material-icons-sharp">mic</i>
217+
<h4>Audio input</h4>
222218
<p>
223-
You can add icons to buttons with a new <code>icon</code>
224-
parameter.
219+
<code>st.audio_input</code> lets users record sound with their
220+
microphone.
225221
</p>
226222
</RefCard>
227-
<RefCard size="third" href="/develop/api-reference/media/st.logo">
223+
<RefCard
224+
size="third"
225+
href="/develop/api-reference/text/st.markdown"
226+
>
228227
<i className="material-icons-sharp">branding_watermark</i>
229-
<h4>Logo sizing</h4>
228+
<h4>Markdown improvements</h4>
230229
<p>
231-
You can customize logo size for <code>st.logo</code>.
230+
Add a Streamlit logo with <code>:streamlit:</code> or render
231+
arrows like <code>&lt;- -&gt;</code>.
232232
</p>
233233
</RefCard>
234-
<RefCard
235-
size="third"
236-
href="/develop/api-reference/navigation/st.navigation"
237-
>
238-
<i className="material-icons-sharp">unfold_less</i>
239-
<h4>Customize menu expansion</h4>
234+
<RefCard size="third" href="/develop/api-reference/text/st.text">
235+
<i className="material-icons-sharp">title</i>
236+
<h4>Plain text</h4>
240237
<p>
241-
You can set the menu as collapsible or always-expanded for
242-
<code>st.navigation</code>.
238+
<code>st.text</code> renders plain text without monospace
239+
font.
243240
</p>
244241
</RefCard>
245242
<RefCard
246243
size="third"
247-
href="/develop/api-reference/execution-flow/st.form"
244+
href="/develop/api-reference/widgets/st.date_input"
248245
>
249-
<i className="material-icons-sharp">assignment</i>
250-
<h4>Form submission</h4>
251-
<p>You can configure the enter-to-submit behavior of forms.</p>
246+
<i className="material-icons-sharp">event</i>
247+
<h4>Date input localization</h4>
248+
<p>
249+
The first day of the week in <code>st.date_input</code> is
250+
determined from the user's locale.
251+
</p>
252252
</RefCard>
253253
</TileContainer>
254254

‎public/images/api/pills.jpg

68.9 KB
Loading
62.4 KB
Loading
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
streamlit>=1.39.0
1+
streamlit>=1.40.0
22
webvtt-py
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
streamlit>=1.39.0
1+
streamlit>=1.40.0

‎python/api-examples-source/hello/requirements.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ numpy==1.23.5
88
scipy
99
altair==4.2.0
1010
pydeck==0.8.0
11-
streamlit>=1.39.0
11+
streamlit>=1.40.0

‎python/api-examples-source/mpa-hello/requirements.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ scipy
44
altair==4.2.0
55
pydeck==0.8.0
66
opencv-python-headless==4.6.0.66
7-
streamlit>=1.39.0
7+
streamlit>=1.40.0
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
streamlit-nightly
1+
streamlit>=1.40.0
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import streamlit as st
22

3-
def Page_2():
3+
4+
def page_2():
45
st.title("Page 2")
56

6-
pg = st.navigation([st.Page("Page_1.py"), st.Page(Page_2)])
7-
pg.run()
7+
8+
pg = st.navigation([st.Page("page_1.py"), st.Page(page_2)])
9+
pg.run()
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
streamlit-nightly
1+
streamlit>=1.40.0

‎python/api-examples-source/requirements.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ pydeck
1111
Faker
1212
openai
1313
vega_datasets
14-
streamlit-nightly
14+
streamlit>=1.40.0

‎python/api-examples-source/st-experimental-connection/1.22/st-experimental-connection/requirements.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
streamlit>=1.39.0
1+
streamlit>=1.40.0
22
toml
33
sqlalchemy==1.4
44
duckdb
+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
import streamlit as st
22

3-
st.text("This is text/n[and more text](that's not a Markdown link).")
3+
st.text("This is text\n[and more text](that's not a Markdown link).")
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
streamlit>=1.39.0
1+
streamlit>=1.40.0
22
vega_datasets
33
altair==4.2.0
44
plotly==5.13.0
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
streamlit>=1.39.0
1+
streamlit>=1.40.0
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
streamlit>=1.39.0
1+
streamlit>=1.40.0
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
streamlit>=1.39.0
1+
streamlit>=1.40.0
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
streamlit>=1.39.0
1+
streamlit>=1.40.0

‎python/generate.py

+9-6
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import pathlib
88
import sys
99
import types
10+
import re
1011

1112
import docstring_parser
1213
import stoutput
@@ -233,12 +234,14 @@ def parse_docstring(obj, docstring, description, is_class, is_class_method, is_p
233234
arg_obj["default"] = param.default # Store the default value
234235

235236
# Check if the argument is deprecated
236-
if docstring_obj.deprecation and "``"+param.arg_name+"``" in docstring_obj.deprecation.description:
237-
# Add the deprecated flag and the deprecation message to the argument object
238-
arg_obj["deprecated"] = {
239-
"deprecated": True,
240-
"deprecatedText": parse_rst(docstring_obj.deprecation.description),
241-
}
237+
if docstring_obj.deprecation:
238+
match = re.search("``[^ `]*``", docstring_obj.deprecation.description)
239+
if match is not None and match.group(0) == f"``{param.arg_name}``":
240+
# Add the deprecated flag and the deprecation message to the argument object
241+
arg_obj["deprecated"] = {
242+
"deprecated": True,
243+
"deprecatedText": parse_rst(docstring_obj.deprecation.description),
244+
}
242245
# Append the argument object to the list of arguments
243246
description["args"].append(arg_obj)
244247

‎python/streamlit.json

+10,582
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
streamlit>=1.39.0
1+
streamlit>=1.40.0
22
langchain-openai

0 commit comments

Comments
 (0)
Please sign in to comment.