久しぶりに Python 関連のパッケージを作ろうとしたところ、
パッケージのダウンロード URL が以前とは変わっていて、
ハッシュを含む形式なっていた。
これだとバージョンを上げる度にダウンロード URL を確認し変更する必要があって面倒臭い。
うまくやる方法はないものかとぐぐったら以下のページが見つかった。
pypa / pypi / 課題 / #438 - Backwards-compatible un-hashed package paths — Bitbucket
https://bitbucket.org/pypa/pypi/issues/438/backwards-compatible-un-hashed-package
以前は
/packages/{python version}/{name[0]}/{name}/{filename}
という形式で、これが以下のように変わっている。
/packages/{hash[:2]}/{hash[2:4]}/{hash[4:]}/{filename}
この hash 部分は以下のようになっているらしい。
blake2b(file_content, digest_size=32).hexdigest().lower()
当然のように、パッケージをメンテナンスしている人達からは annoying だと不評なようで、
従来の形式でパッケージを取得できる pypi.io が用意され、
https://pypi.io/packages/{python version}/{name[0]}/{name}/{filename}
という URL でダウンロードできるようになっている。