2to3 で Python2 コードを Python3 コードへ変換する
2to3 を使うと Python2 ベースのコードを Python3 へ変換することが出来ます。 とは言え、2to3 も万能なわけではありませんので、2to3 が修正してくれなかった部分は手動で修正していく必要があります。 2to3 は pip
でインストールすることが出来ます。
1 |
|
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):
...
同じ概念がクラスにも存在しますが、あまり使われません。デコレータについて詳しくは、 関数定義 および クラス定義 のドキュメントを参照してください。
つまり、デコレータの実態は「関数を受け取り、関数を返す関数」と言えます。 もう少し分かりやすく噛み砕くと「関数の処理内容を変更せず、関数に機能を追加出来る仕組み」とも言えます。
Python 3.7 からクラスで保持させるデータを簡単に定義出来る dataclasses がサポートされました。 今回は「dataclass を使った場合」「使わない場合」の書き方を比較してみます。
Python で urllib3 を利用する場合、以下の条件を満たしていると ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+
エラーが表示されます。
この問題を解決するには以下、いずれかを実行します。