💲
tariff: Make Importing Great Again
妙なライブラリを見つけてしまったので、ご紹介。
関税の波、Python パッケージにも迫る
全世界からのあらゆる輸入品に対して関税をかけてやるだの、ただし物価が怖いからスマホは除いてやるだの、某氏については最近やりたい放題の限りを尽くしている。この波が迫らぬ分野はないってことで、遂に Python にもこの波が来ちゃった。エーッ
ここで登場するのが tariff
パッケージ。これは特定のパッケージを「輸入」(import) する際、所定の割合で関税をかけてくれる税関みたいなやつである。実際はというと、tariff
は指定した割合でパッケージのインポートを遅くする。
tariff
のインストール
今回はテスト用に httpx を使うことにしたが、これの開発元である Encode はイギリスの会社なので、httpx には関税がかかることになる。
ちなみに Astral はニューヨークの会社らしいので、uv を使う分には関税を気にする必要はなさそう。
uv add tariff httpx
輸入品に関税をかけてみる
関税版、無税版の2つを用意して比較する。
関税版
???「httpx
の関税は100%とする」
with_tariff.py
import tariff
tariff.set({
"httpx": 100,
})
import httpx
無税版
without_tariff.py
import httpx
実行結果
TotalMilliseconds
だけ抜粋。確かに倍近く遅くなっていることが確認できる。
PS E:\miga> Measure-Command { uv run .\with_tariff.py }
TotalMilliseconds : 211.2667
PS E:\miga> Measure-Command { uv run .\no_tariff.py }
TotalMilliseconds : 131.7144
ちなみに tariff
を通すと、どのぐらいインポートを遅くしたか定量的に数字を出したうえで、某氏からのありがたいメッセージも頂ける。
PS E:\miga> uv run .\with_tariff.py
JUST IMPOSED a 100% TARIFF on httpx! Original import took 78594 us, now takes 157189 us. HUGE success!
PS E:\miga> uv run .\with_tariff.py
JUST IMPOSED a 100% TARIFF on httpx! Original import took 76885 us, now takes 153770 us. Believe me, this is the BEST tariff!
PS E:\miga> uv run .\with_tariff.py
JUST IMPOSED a 100% TARIFF on httpx! Original import took 75637 us, now takes 151275 us. This is how we get FAIR TRADE in Python!
PS E:\miga> uv run .\with_tariff.py
JUST IMPOSED a 100% TARIFF on httpx! Original import took 76807 us, now takes 153614 us. Making Programming Great Again!
終わりに
実際に tariff
を運用するうえで面倒くさい点は以下2つとなるだろう。
- 関税率の設定。これはおよそ政治的理由に基づくことになるので、関係各所との調整が必須となる。
- パッケージの輸入元の調査。SBOM 的なものを作ってまとめる必要が多分あるが、製造元国家も込みでまとめてくれるツールなんてあるんだろうか。
とはいえ、別に上2つが解決したとしても、生まれるのは解決策ではなく新たな問題である……
Discussion