Python 3.7+uuidпонятие
uuid.SafeUUID
класс UUID
Перечисление из трёх значений (safe, unsafe, unknown) в атрибуте is_safe: гарантировала ли система уникальность UUID при параллельных процессах.
Синтаксис
uuid.SafeUUID.safe | uuid.SafeUUID.unsafe | uuid.SafeUUID.unknown
Заполняет его только uuid1(), когда системная библиотека умеет выдавать UUID без гонок между процессами: у uuid4(), uuid6(), uuid7() и прочих is_safe всегда SafeUUID.unknown, и это не тревожный знак. Значение зависит от ОС и библиотек, так что unsafe на одной машине и safe на другой — норма. У unknown значение None, поэтому if u.is_safe.value: не отличит unknown от safe с его нулём — сравнивают с членом перечисления.
Примеры
import uuid
print(list(uuid.SafeUUID)) # → [<SafeUUID.safe: 0>, <SafeUUID.unsafe: -1>, <SafeUUID.unknown: None>]
print(uuid.uuid4().is_safe) # → SafeUUID.unknown
print(uuid.uuid1().is_safe) # → ? SafeUUID.unsafe — зависит от ОС
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности