UUID

情報

UUID は "Universally Unique Identifier" です。

これは、パスポート番号のような識別子のための標準形式ですが、各国の人だけでなく、あらゆるものの識別子です。

これらは次のように見えます

d48edaa6-871a-4082-a196-4daab372d4a1

作成方法により、生成される UUID は十分に長く、ランダムであるため、生成されたすべての UUID が一意であると想定できます。それが別のアプリケーション、データベース、またはシステムによって生成されたとしてもです。

そのため、システムが UUID を使用してデータを識別する場合、他のシステムが UUID を使用してデータを識別した場合に、データが衝突しないという少しの自信を持ってそれらのシステムのデータと混在できます。

ほとんどのデータベースがそうであるように、識別子として int のみを使用した場合、これは真実ではありません。

CLI パラメータ を UUID として宣言できます

from uuid import UUID

import typer


def main(user_id: UUID):
    print(f"USER_ID is {user_id}")
    print(f"UUID version is: {user_id.version}")


if __name__ == "__main__":
    typer.run(main)

Python コードは、すべての属性とメソッドを持つ標準の Python UUID オブジェクトを受け取ります。また、関数パラメータをその型で注釈付けするため、型チェック、エディターでのオートコンプリートなどを利用できます。

チェックします

// Pass a valid UUID v4
$ python main.py d48edaa6-871a-4082-a196-4daab372d4a1

USER_ID is d48edaa6-871a-4082-a196-4daab372d4a1
UUID version is: 4

// An invalid value
$ python main.py 7479706572-72756c6573

Usage: main.py [OPTIONS] USER_ID
Try "main.py --help" for help.

Error: Invalid value for 'USER_ID': 7479706572-72756c6573 is not a valid UUID.