Python で「プリフィックス / ネットマスク / ワイルドカード」を相互変換する
George Shuklin さんが Wildcard masks operations in Python という記事で「Python でワイルドカードを操作する方法」をまとめてくださっています。 ワイルドカードが関連しないケースも含め、「プリフィックス長」「ネットマスク」「ワイルドカード」を相互変換する Python サンプルコードをメモしておきます。
George Shuklin さんが Wildcard masks operations in Python という記事で「Python でワイルドカードを操作する方法」をまとめてくださっています。 ワイルドカードが関連しないケースも含め、「プリフィックス長」「ネットマスク」「ワイルドカード」を相互変換する Python サンプルコードをメモしておきます。
Python で CLI ツールを作成する際、引数の処理には argparse が便利です。 argparse
の基本的な使い方を幾つかメモしておきます。
Python スクリプトを実行する為、以下のように /opt/sample
ディレクトリ配下に .venv
という venv 環境をしたとします。
1 2 |
|
この環境に対して venv 環境を意識した Python スクリプトを実行するには (システム全体の Python では無く) 以下のように venv 環境内の Python を指定します。 下記の例では /opt/sample/.venv/bin/python3
のように venv 環境内の Python を指定しています。
1 |
|
Python で作成したスクリプトを Windows 環境に配布したい場合、pyinstaller で .exe 化してしまう、という方法があります。 pyinstaller 実行時のオプション次第でもあるのですが、「ランタイムや関連ライブラリを全て .exe に同梱してしまい、配布先環境に Python 本体やライブラリが無くても動作させる」ということも可能です。
予め、pyinstaller をインストールしておきます。
1 |
|
後は必要に応じて、以下いずれかの実行コマンド (等) を実行するだけです。
関連ファイルを含める? | アイコンを指定する? | 実行コマンド |
---|---|---|
X | X | pyinstaller sample.py |
○ | X | pyinstaller sample.py --onefile |
○ | ○ | pyinstaller sample.py --onefile --ico=favicon.ico |
これで dist
ディレクトリ配下に .exe ファイルが生成されます。
Python-Markdown を使うと Python のソースコー上で手軽に文字列を Markdown として扱うことが出来ます。
2022/07/14 にリリースされた Streamlit の Version 1.11.0 から、簡単にマルチページアプリケーションを作れる機能がサポートされました。 詳しくは Multipage apps や公式ブログの Introducing multipage apps! に書かれています。 マルチページにするだけであればコーディングする必要は無く、以下のようにファイルを配置します。 但し、各ページは「1 ページ = 1 ファイル」とし、必ず pages
ディレクトリ配下に保存する 必要があります。
Streamlit の st.snow は、公式ドキュメントで下記のように記載されています。
Draw celebratory snowfall.
以下のサンプルコードを用意します。
フロントエンドは Nginx を使って Proxy し、バックエンドで Streamlit を動作させる場合、例えば Nginx 側は /etc/nginx/conf.d/default.conf
を以下のように設定することが出来ます。 location /app
内で proxy_pass http://127.0.0.1:8501;
を指定することにより、http://ADDRESS/app/
へのリクエストは Nginx で Proxy され、ローカルホストの 8501/TCP で動作している Streamlit アプリケーションへ転送されます。
現状の Streamlit に用意されている各エレメントは標準機能だけでは「フォントのカスタマイズ」などがあまり出来ず、「Markdown で CSS を挿入する」といった工夫が必要です。 Change font size and font color で議論されていますが、「ピンポイントで特定箇所のフォントだけをカスタマイズして表示したい」という場合は Markdown で該当箇所のみ、スタイルを適用します。
2022/12/14 にリリースされた Streamlit の Version 1.16.0 から st.markdown や st.header でフォントの色指定が可能になったそうです。
Colored text, using the syntax :color[text to be colored], where color needs to be replaced with any of the following supported colors: blue, green, orange, red, violet.
指定可能な色は現状、以下の 5 種類のみのようです。