Spec-Zone.ru › Python 3.6

uuid — Объекты UUID в соответствии с RFC 4122

Исходный код: Lib/uuid.py

Этот модуль предоставляет неизменяемые UUID объекты (класс UUID) и функции uuid1(), uuid3(), uuid4(), uuid5() для генерации UUID версии 1, 3, 4 и 5 в соответствии со спецификацией RFC 4122.

Если вам нужен только уникальный идентификатор, вам, вероятно, следует вызвать uuid1() или uuid4(). Обратите внимание, что uuid1() может представлять угрозу конфиденциальности, так как создаёт UUID, содержащий сетевой адрес компьютера. uuid4() создаёт случайный UUID.

class uuid.UUID(hex=None, bytes=None, bytes_le=None, fields=None, int=None, version=None)

Создаёт UUID из строки из 32 шестнадцатеричных цифр, строки из 16 байтов в формате big-endian (как аргумент bytes), строки из 16 байтов в формате little-endian (как аргумент bytes_le), кортежа из шести целых чисел (32-битное time_low, 16-битное time_mid, 16-битное time_hi_version, 8-битное clock_seq_hi_variant, 8-битное clock_seq_low, 48-битное node) (как аргумент fields) или одиночного 128-битного целого числа (как аргумент int). Если передаётся строка шестнадцатеричных цифр, фигурные скобки, дефисы и префикс URN являются необязательными. Например, эти выражения все возвращают один и тот же UUID:

UUID('{12345678-1234-5678-1234-567812345678}')
UUID('12345678123456781234567812345678')
UUID('urn:uuid:12345678-1234-5678-1234-567812345678')
UUID(bytes=b'\x12\x34\x56\x78'*4)
UUID(bytes_le=b'\x78\x56\x34\x12\x34\x12\x78\x56' +
              b'\x12\x34\x56\x78\x12\x34\x56\x78')
UUID(fields=(0x12345678, 0x1234, 0x5678, 0x12, 0x34, 0x567812345678))
UUID(int=0x12345678123456781234567812345678)

Должен быть указан ровно один из аргументов: hex, bytes, bytes_le, fields или int. Аргумент version является необязательным; если он указан, полученный UUID будет иметь вариант и номер версии, установленные в соответствии с RFC 4122, перезаписывая биты в заданных hex, bytes, bytes_le, fields или int.

Сравнение объектов UUID выполняется путём сравнения их атрибутов UUID.int. Сравнение с объектом, не являющимся UUID, вызывает TypeError.

str(uuid) возвращает строку в формате 12345678-1234-5678-1234-567812345678, где 32 шестнадцатеричные цифры представляют UUID.

UUID экземпляры имеют эти только для чтения атрибуты:

UUID.bytes

UUID как строка из 16 байтов (содержащая шесть целочисленных полей в порядке байтов big-endian).

UUID.bytes_le

UUID как строка из 16 байтов (с time_low, time_mid и time_hi_version в порядке байтов little-endian).

UUID.fields

Кортеж из шести целочисленных полей UUID, которые также доступны как шесть отдельных атрибутов и два производных атрибута:

Поле

Значение

time_low

первые 32 бита UUID

time_mid

следующие 16 битов UUID

time_hi_version

следующие 16 битов UUID

clock_seq_hi_variant

следующие 8 битов UUID

clock_seq_low

следующие 8 битов UUID

node

последние 48 битов UUID

time

временная метка в 60 бит

clock_seq

номера последовательности в 14 бит

UUID.hex

UUID как строка из 32 шестнадцатеричных символов.

UUID.int

UUID как 128-битное целое число.

UUID.urn

UUID как URN, как указано в RFC 4122.

END_OF_DOCUMENT_MARKER
UUID.variant

Вариант UUID, определяющий внутреннюю структуру UUID. Он будет одним из констант RESERVED_NCS, RFC_4122, RESERVED_MICROSOFT или RESERVED_FUTURE.

UUID.version

Номер версии UUID (от 1 до 5, значимый только когда вариант RFC_4122).

Модуль uuid определяет следующие функции:

uuid.getnode()

Получить адрес оборудования как 48-битное положительное целое число. При первом запуске это может запустить отдельную программу, что может быть довольно медленно. Если все попытки получить адрес оборудования завершатся неудачей, мы выбираем случайное 48-битное число с установленным восьмым битом в 1, как рекомендуется в RFC 4122. «Адрес оборудования» означает MAC-адрес сетевого интерфейса, и на машине с несколькими сетевыми интерфейсами может быть возвращён MAC-адрес любого из них.

uuid.uuid1(node=None, clock_seq=None)

Сгенерировать UUID из идентификатора узла, номера последовательности и текущего времени. Если node не задан, используется getnode() для получения адреса оборудования. Если clock_seq задан, он используется как номер последовательности; в противном случае выбирается случайный 14-битный номер последовательности.

uuid.uuid3(namespace, name)

Сгенерировать UUID на основе хэша MD5 идентификатора пространства имён (который является UUID) и имени (которое является строкой).

uuid.uuid4()

Сгенерировать случайный UUID.

uuid.uuid5(namespace, name)

Сгенерировать UUID на основе хэша SHA-1 идентификатора пространства имён (который является UUID) и имени (которое является строкой).

Модуль uuid определяет следующие идентификаторы пространств имён для использования с uuid3() или uuid5().

uuid.NAMESPACE_DNS

Когда указано это пространство имён, строка name является полным доменным именем.

uuid.NAMESPACE_URL

Когда указано это пространство имён, строка name является URL.

uuid.NAMESPACE_OID

Когда указано это пространство имён, строка name является ISO OID.

uuid.NAMESPACE_X500

Когда указано это пространство имён, строка name — это X.500 DN в формате DER или текстовом формате вывода.

Модуль uuid определяет следующие константы для возможных значений атрибута variant:

uuid.RESERVED_NCS

Зарезервировано для совместимости с NCS.

uuid.RFC_4122

Определяет структуру UUID, указанную в RFC 4122.

uuid.RESERVED_MICROSOFT

Зарезервировано для совместимости с Microsoft.

uuid.RESERVED_FUTURE

Зарезервировано для будущего определения.

См. также

RFC 4122 - Пространство имён URN для универсальных идентификаторов (UUID)

Этот документ определяет пространство имён Uniform Resource Name для UUID, внутренний формат UUID и методы генерации UUID.

21.20.1. Пример

Вот несколько примеров типичного использования модуля uuid:

>>> import uuid

>>> # make a UUID based on the host ID and current time
>>> uuid.uuid1()
UUID('a8098c1a-f86e-11da-bd1a-00112444be1e')

>>> # make a UUID using an MD5 hash of a namespace UUID and a name
>>> uuid.uuid3(uuid.NAMESPACE_DNS, 'python.org')
UUID('6fa459ea-ee8a-3ca4-894e-db77e160355e')

>>> # make a random UUID
>>> uuid.uuid4()
UUID('16fd2706-8baf-433b-82eb-8c7fada847da')

>>> # make a UUID using a SHA-1 hash of a namespace UUID and a name
>>> uuid.uuid5(uuid.NAMESPACE_DNS, 'python.org')
UUID('886313e1-3b8a-5372-9b90-0c9aee199e5d')

>>> # make a UUID from a string of hex digits (braces and hyphens ignored)
>>> x = uuid.UUID('{00010203-0405-0607-0809-0a0b0c0d0e0f}')

>>> # convert a UUID to a string of hex digits in standard form
>>> str(x)
'00010203-0405-0607-0809-0a0b0c0d0e0f'

>>> # get the raw 16 bytes of the UUID
>>> x.bytes
b'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f'

>>> # make a UUID from a 16-byte string
>>> uuid.UUID(bytes=x.bytes)
UUID('00010203-0405-0607-0809-0a0b0c0d0e0f')

© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.6/library/uuid.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API