Python で venv & direnv を設定するスクリプト
Python で venv を使う際、環境を Activate するには direnv を使うのが便利です。 ただ、環境を作成する度に「venv で仮想環境設定 → direnv の初期設定」をするのが面倒なので簡単な初期化用スクリプトを作成しました。
Python で venv を使う際、環境を Activate するには direnv を使うのが便利です。 ただ、環境を作成する度に「venv で仮想環境設定 → direnv の初期設定」をするのが面倒なので簡単な初期化用スクリプトを作成しました。
Python で GUI アプリケーションを作成する場合、以下のようなライブラリから何れかを選択するケースが多いと思います。
上記以外にも Flet を使うことも可能です。 Flet を利用する場合、GUI アプリケーションとして動作させることが可能ですが、Web アプリケーションとして動作させることも可能です。 今回は Flet 公式サイトに掲載されているサンプルアプリケーションを動作させるところまで試してみます。
2to3 を使うと Python2 ベースのコードを Python3 へ変換することが出来ます。 とは言え、2to3 も万能なわけではありませんので、2to3 が修正してくれなかった部分は手動で修正していく必要があります。 2to3 は pip
でインストールすることが出来ます。
1 |
|
DockerHub にイメージをアップロードするには GitHub と連携させるのが簡単です。 ですが、Changes to Docker Hub Autobuilds で下記のように書かれている通り、2021 年 6 月 18 日から DockerHub の無料アカウントでは GitHub 連携が出来なくなっています。
As many of you are aware, it has been a difficult period for companies offering free cloud compute [1]. Unfortunately, Docker’s Autobuild service has been targeted by the same bad actors, so today we are disappointed to announce that we will be discontinuing Autobuilds on the free tier starting from June 18, 2021.
GitBucket 4.40.0 がリリースされていました。 4.40.0 - 22 Oct 2023 付の ChangeLog によると変更箇所は下記だそうです。
4.40.0 - 22 Oct 2023
- Configurable default branch name
- Support custom fields of issues and pull requests in search condition
- Create pull request from default branch of forked repositories
- News feed shows activities of all visible repositories
- Drop Java 8 support
- Improve git push performance
GitBucket のコンテナイメージは gitbucket/gitbucket で提供されているようです。 ですが、実際に起動してみるとバージョン 4.38.4 (2 Nov 2022) とやや古いように見えました。 その為、今回は最新のバージョン 4.40.0 をコンテナイメージ化してみます。 尚、作成したコンテナは DockerHub 内の下記 URL で公開しています。
tqdm を使うと Python のコードで CLI 上からプログレスバーを表示することが出来ます。 今回は tqdm の使い方をメモしておきます。
Python で引数の処理を行うライブラリは幾つか存在します。 代表的なものには下記があると思います。
ライブラリ | 最新バージョン | 最終リリース日 |
---|---|---|
argparse | - | - |
Click | 8.1.7 | 2023/08/18 |
docopt-ng | 0.9.0 | 2023/05/31 |
Python Fire | 0.5.0 | 2022/12/13 |
今回は docopt-ng の基本的な使い方をメモしておきます。
hyperfine を使うとコマンドのベンチマークを実行出来ます。 類似のツールに bench や poop があります。 poop は高機能なようですが、私の環境では動作させることが出来ませんでした。 今回は hyperfine を起動する手順まで、メモしておきます。 今回は Ubuntu 24.04 環境でテストしました。
以前に CiscoConfParse でインターフェイス情報を抽出する というメモを書きました。 CiscoConfParse は「Cisco 機器のコンフィグを構造的に扱うことが出来る」便利なライブラリです。 但し、ネット上にある古いサンプルの書き方では実行時に INFO
が表示されることがあります。 今回はそれを抑制する方法をメモしておきます。
Python のデコレータ (decorator) は 公式ドキュメントの用語集 で以下のように定義されています。
Note
(デコレータ) 別の関数を返す関数で、通常、 @wrapper 構文で関数変換として適用されます。デコレータの一般的な利用例は、 classmethod() と staticmethod() です。
デコレータの文法はシンタックスシュガーです。次の2つの関数定義は意味的に同じものです:
def f(arg):
...
f = staticmethod(f)
@staticmethod
def f(arg):
...
同じ概念がクラスにも存在しますが、あまり使われません。デコレータについて詳しくは、 関数定義 および クラス定義 のドキュメントを参照してください。
つまり、デコレータの実態は「関数を受け取り、関数を返す関数」と言えます。 もう少し分かりやすく噛み砕くと「関数の処理内容を変更せず、関数に機能を追加出来る仕組み」とも言えます。