はじめに
2022-10-27にVersion1.14.0がリリースされました。
前回のVersion1.13.0から1ヶ月ちょっとのペースです。
あいかわらず早いペースで精力的に更新が行われています。
早速「ハイライト」「注目すべき変更点」の変更点を見て見ましょう。
2022/11/11にVersion1.14.1がリリースされました。1.14.0のバグフィックスです。
何がかわったの?
ハイライト
- st.buttonとst.form_submit_buttonに通常のボタンに加えて強調ボタンを指定するキーワード「type」パラメータが追加されました。
注目すべき変更点
- st.multiselectに一度に選択可能なオプション数を制限するキーワード「max_selections」パラメータが追加されました。
- st.form_submit_buttonに「disabled」パラメータが追加されました。st.buttonなどのインプットウィジットには既に実装されている機能です。
その他の変更
- t.dataframe と st.table がカテゴリ区間を入力として受け付けるようになりました
- Plotlyチャートのパフォーマンスを改善しました
- バグ修正: st.download_buttonがファイル名に非ラテン語1文字をサポートするようになりました
- バグフィックス。st.imageがローカルGIFを静的なPNGとしてではなく、GIFとしてレンダリングできるようにしました
- マルチページアプリのサイドバーのデザインを調整しました
- 組み込みのチャートの軸構成を改善しました
- メモとシングルトンの改良:show_spinnerでテキスト値をサポート、datetime.timedeltaオブジェクトをttlパラメータ値として使用、PILイメージとEnumクラスを適切にハッシュ、未評価のデータフレームを返す際のエラーメッセージを改善
- st.map 2 と st.pydeck_chart で作成されたマップのズームボタンは、アプリのテーマに基づいてライトまたはダークスタイルを使用します
- 現在のセッションの受信WebSocketリクエストのWebSocketヘッダーを、新しい「内部」(すなわち、非推奨のまま変更される可能性がある)APIから取得できるようになりました
- Streamlitを初めてインストールし使用するときに表示されるテキストを改善しました
ハイライト
強調ボタン
st.buttonとst.form_submit_buttonに通常のボタンに加えて強調ボタンを指定するキーワード「type」パラメータが追加されました。
赤の背景で白抜き文字のボタンを追加することが出来ます。
プログラムコード
import streamlit as st
st.button('通常のボタン1(指定なし)')
st.button('通常のボタン2(type="secondary")', type="secondary")
st.button('強調のボタン(type="primary")', type="primary")
注目すべき変更点
multiselectの選択数を制限する
selectbox(プルダウン)のマルチセレクトで選択できる個数を制限できるようになりました。キーワード「max_selections」パラメータで指定します。
プログラムコード
import streamlit as st
sel_list = ['red', 'green', 'white', 'blue', 'pink', 'brown', 'lightblue', 'orange']
st.multiselect('個数制限なし',sel_list)
st.multiselect('個数制限2個',sel_list, max_selections=2)
実行画面
form_submit_buttonの無効化
st.form_submit_buttonに「disabled」パラメータが追加されました。st.buttonなどのインプットウィジットには既に実装されている機能です。
プログラムコード
import streamlit as st
with st.form("form1"):
slider_val = st.slider("スライダーの値")
checkbox_val = st.checkbox("チェックボックス")
# Every form must have a submit button.
submitted = st.form_submit_button("フォームサブミット(有効)")
if submitted:
st.write("スライダーの値", slider_val, "チェックボックス", checkbox_val)
with st.form("form2"):
slider_val = st.slider("スライダーの値")
checkbox_val = st.checkbox("チェックボックス")
# Every form must have a submit button.
submitted = st.form_submit_button("フォームサブミット(無効)", disabled=True)
if submitted:
st.write("スライダーの値", slider_val, "チェックボックス", checkbox_val)
実行画面
おわりに
今回も地味な改定ではありますが、ボタンのハイライトやマルチセレクトボックスの個数制限などは使いどころが結構あるのではないかと思います。
コメント