
前回記事では、オプション引数をとるデコレータを楽に定義できるデコレータである kwops_decorator を作成しました。
今回は実演がてら、Python のリトライ処理記述ライブラリ Tenacity を題材に、よく使うリトライ表現を抽象化してみます。 Tenacity は基本的に、実行対象の関数にデコレータを付けることで、その関数はリトライされるべきであることを表現するのですが、関数内でリトライ回数をカウントするためには外のスコープに変数や、クラスにインスタンス変数を置いて自分で数える必要があり、カウントのリセットなども考慮すると微妙に面倒です。そこの改善を主目的に、kwops_decorator を活用し Tenacity のデコレータをラップします。 …

Windows を長年使い続けてきて今更知ったことなのですが、Windows ではファイルに読み取り専用 (Read-only) 属性が付いていると削除時に影響を及ぼします。エクスプローラーでは、ファイルに読み取り専用フラグが付いていても確認なしに削除できますが、本来は読み取り専用属性を解除してからでないと消せません1。 …


前回の記事では補助変数を利用することで、論理包含のある一見すると非線形な制約を線形制約へ変形し、PuLP で整数制約問題を解くことができました。
現実の問題を扱う際には、「ある特定の状況が望ましくないので、この条件を満たす場合にのみペナルティを足そう」というモデリングを行いたくなることが容易に想像できます。
そこで、論理積の線形表現を PuLP で実現する抽象を導出してみました。論理和もついでにやっておきました。 …

会社で Fork という Git GUI クライアントが流行っており、ずっと使ってきた Sourcetree に進歩が見られないので思い切って乗り換えることにしました。
ここのところの Sourcetree は割とモサモサしていたり、画面構成も v2 のころのほうが個人的に使いやすいと思っていたりで不満がありました。 CLI だけで Git を使っていくこともできますが、樹形図表示や行単位のステージ操作などには GUI が欲しくなります。
Sourcetree に比べると知名度が全然の Fork ですが、非常に出来の良いソフトウェアでした。 …