Spec-Zone.ru › Python 2.7

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

Новое в версии 2.5.

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

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

class uuid.UUID([hex[, bytes[, bytes_le[, fields[, int[, version]]]]]])

Создайте 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='\x12\x34\x56\x78'*4)
UUID(bytes_le='\x78\x56\x34\x12\x34\x12\x78\x56' +
              '\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.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.

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[, clock_seq]])

Генерация 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 — это DN X.500 в формате 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.

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
'\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/2.7/library/uuid.html

Spec-Zone.ru

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