3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Streamlitで"""ブロックコメント"""を表示させない方法

Posted at

TL;DR;

_ = """
変数化すれば?
"""

困っていること

Streamlitでテストコードとかをブロックコメント化すると、実行時にブラウザへコメント部分が表示されてしまう問題がある。

この原因は、Streamlitの標準機能として備わっているMagicというスマートで強力な特徴である。
いちいち行ごとにst.write(...)みたいな呪文をコピペする必要がなくなるので、ちゃんと使えば有用だが、ズボラな個人開発者はたまに困ることがよくあるのだ。

下記コード例のようにコメントアウトすると、実行結果のようにMarkdown化して表示される。

コード例

import streamlit as st

# 行コメントは表示されない
st.write("hoge")

"""
ToDo 下記の計算は間違いなので直す  
※とりあえずコメントアウトしとく

# 計算処理
fuga = '1 + 2 = 4'
st.write(fuga)
"""

実行結果

タイトルなし.png

解決方法

Streamlit公式フォーラムに解決方法がいくつか書いてある。
本稿はそれらを日本語の箇条書きにまとめた備忘録である。

変数化

本稿の要約に書いた方法がスマートだと思う。
下記の例は """ の前に _ = を付けて無名変数っぽくするだけで目的を達成している。
もちろん同様のコメントアウトが複数ある場合はその数だけ対応が必要だが、ブロックコメントのMarkdown表示機能を失わずに併用することができる。

コード例

import streamlit as st

# 行コメントは表示されない
st.write("hoge")

# 変数化すれば表示されない
_ = """
ToDo 下記の計算は間違いなので直す  
(以下略)
"""

magicEnabled

ブロックコメントは一律でブラウザ上に表示したくないなら、設定ファイルで機能を無効化することができる。

実行時のカレントディレクトリに .streamlit フォルダを作成し、その中に config.toml を作れば設定ファイルとして実行前に読み取ってくれる。
本家のHow Magic worksのとおり、 config.toml を作ってその中に下記を記述すれば機能を無効化できる。

[runner]
magicEnabled = false

この方法だと部分的にMagicを有効化できないので注意すること。

IDE機能

最近のイケてる(死語)IDEやテキストエディタはショートカットキーで複数行を行コメント化できる。
リンク先のフォーラムでは、「VS Codeなら CTRL + /が使える」とアドバイスしてくれてる。

そんな機能がないテキストエディタなら、正規表現置換、マクロ機能、矩形選択でご自由にどうぞ。
え?メモ帳にそんな機能ないって?
今すぐPython IDLEを立ち上げてAlt+3を押すんだ!(ちなみにAlt+4でコメント解除)

参考資料(再掲)

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?