ログを落としたり、固有のIDを発行する際にUUIDやULIDが使われることが多いが、Pythonで変換作業を行う際に、あまりにもライブラリが多かったので投稿。
雑にulidと検索するだけでも2023/06現在、30件ヒットし、似たようなものが占めていた。
https://pypi.org/search/?q=ulid
有志で作成いただくのは本当に感謝でしかないが、自身が使いやすいと思ったものを整理した。
個人的な見解
スターの数、最終更新日を鑑みて、python-ulidが現時点では有力。
https://github.com/mdomke/python-ulid
ただし、最終更新日が2023/06現在において、2022/03/11なので今後メンテされるかは不安。
メンテという観点だと、ulid_transformが直近まで更新されていた。
https://github.com/bdraco/ulid-transform
あまり更新することもないが、Pythonのバージョンは凡そ1年でアップデートされるので今後は気になるところ。
使ってみる
インストール
$ pip install python-ulid
ULIDの作成
from ulid import ULID
ulid_sample = ULID()
#ULID(01H33W0BDCGKHTT5N4MY28SPYG)
ULIDからUUIDへ変換
ulid_sample.to_uuid()
#UUID('0188c7c0-2dac-84e3-ad16-a4a7848cdbd0')
UUIDの作成
from uuid import uuid4
uuid_sample = uuid4()
#UUID('b920c5b9-d35b-4ae7-90eb-66ae2e2d5fee')
UUIDからULIDへ変換
ULID.from_uuid(uuid_sample)
#ULID(5S432VKMTV9BKS1TV6NRQ2TQZE)
コメント