💲

tariff: Make Importing Great Again

に公開

妙なライブラリを見つけてしまったので、ご紹介。


関税の波、Python パッケージにも迫る

全世界からのあらゆる輸入品に対して関税をかけてやるだの、ただし物価が怖いからスマホは除いてやるだの、某氏については最近やりたい放題の限りを尽くしている。この波が迫らぬ分野はないってことで、遂に Python にもこの波が来ちゃった。エーッ

https://pypi.org/project/tariff/

ここで登場するのが 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つとなるだろう。

  1. 関税率の設定。これはおよそ政治的理由に基づくことになるので、関係各所との調整が必須となる。
  2. パッケージの輸入元の調査。SBOM 的なものを作ってまとめる必要が多分あるが、製造元国家も込みでまとめてくれるツールなんてあるんだろうか。

とはいえ、別に上2つが解決したとしても、生まれるのは解決策ではなく新たな問題である……

Discussion