Streamlit-tagsって便利なんか?
ライブラリを見てたらStreamlit-tagsなるものを見つけました。
もともとStreamlitにはMultiselectがあるじゃないですか。何が違うんじゃ?と思ったわけですよ。
雰囲気はかなり似てますよね。気になったので確認しました。
◾️準備
1. ライブラリインストール
pip install streamlit-tags
2. サンプルプログラム
import streamlit_tags
keywords = streamlit_tags.st_tags(
label='# Enter Keywords:',
text='Press enter to add more',
value=['Zero', 'One', 'Two'],
suggestions=['five', 'six', 'seven', 'eight', 'nine', 'three', 'eleven', 'ten', 'four'],
maxtags = 4,
key='1')
◾️実行
1. エラー発生
ModuleNotFoundError: No module named 'st_tags'
エラー発生しました。一旦ライブラリの公式ページを確認してみます
どうもstreamlitのバージョンが関係していそうです。
確かに少し古いのでアップデートして再チャレンジします。
2. Streamlitのアップデート
pip install -U streamlit
最新の状態に更新したところエラーがなくなりました。
3. 実行
streamlit run sample01.py
お馴染みの起動コマンドです。sample01.pyは自身のファイルに合わせてください。
◾️結果
1. 表示内容
初期表示として、「value」が適用され、suggestionsの値は入力補助されるみたいです。
例えば、「f」と入力すると「four」とうっすら浮かんできます。この状態で右キーを押すと、入力が補完されます。
2. Multiselectとの違い
今回の検証元となったところですが、一番の違いは
入力値は自由というところでしょうか。
Multiselectは、オブジェクト生成時に、設定している値から選択する仕様です。Streamlit-tagsは、入力を補助してくれるだけで、任意の値を入力することができます。
◾️結論
似ているオブジェクトでしたが、それなりの意味があって用意されていました。
入力値を制限する必要がある場合はMultiselectを使い、ある程度入力補助は欲しいが制限はないようなアプリならStreamlit-tagsを使うといった棲み分けができそうです!