Module uuid
[hide private]
[frames] | no frames]

Module uuid

UUID objects (universally unique identifiers) according to RFC 4122.

This module provides immutable UUID objects (class UUID) and the functions
uuid1(), uuid3(), uuid4(), uuid5() for generating version 1, 3, 4, and 5
UUIDs as specified in RFC 4122.

If all you want is a unique ID, you should probably call uuid1() or uuid4().
Note that uuid1() may compromise privacy since it creates a UUID containing
the computer's network address.  uuid4() creates a random UUID.

Typical usage:

    >>> 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')


Author: Ka-Ping Yee <ping@zesty.ca>

Classes [hide private]
UUID
Instances of the UUID class represent UUIDs as specified in RFC 4122.
Functions [hide private]
 
_find_mac(command, args, hw_identifiers, get_index)
 
_ifconfig_getnode()
Get the hardware address on Unix by running ifconfig.
 
_ipconfig_getnode()
Get the hardware address on Windows by running ipconfig.exe.
 
_netbios_getnode()
Get the hardware address on Windows using NetBIOS calls.
 
_unixdll_getnode()
Get the hardware address on Unix using ctypes.
 
_windll_getnode()
Get the hardware address on Windows using ctypes.
 
_random_getnode()
Get a random node ID, with eighth bit set as suggested by RFC 4122.
 
getnode()
Get the hardware address as a 48-bit positive integer.
 
uuid1(node=None, clock_seq=None)
Generate a UUID from a host ID, sequence number, and the current time.
 
uuid3(namespace, name)
Generate a UUID from the MD5 hash of a namespace UUID and a name.
 
uuid4()
Generate a random UUID.
 
uuid5(namespace, name)
Generate a UUID from the SHA-1 hash of a namespace UUID and a name.
Variables [hide private]
  _uuid_generate_time = None
  _uuid_generate_random = getattr(lib, 'UuidCreateSequential', g...
  _buffer = ctypes.create_string_buffer(16)
  lib = None
  _UuidCreate = None
  _node = None
  _last_timestamp = None
  NAMESPACE_DNS = UUID('6ba7b810-9dad-11d1-80b4-00c04fd430c8')
  NAMESPACE_URL = UUID('6ba7b811-9dad-11d1-80b4-00c04fd430c8')
  NAMESPACE_OID = UUID('6ba7b812-9dad-11d1-80b4-00c04fd430c8')
  NAMESPACE_X500 = UUID('6ba7b814-9dad-11d1-80b4-00c04fd430c8')
  RESERVED_FUTURE = 'reserved for future definition'
  RESERVED_MICROSOFT = 'reserved for Microsoft compatibility'
  RESERVED_NCS = 'reserved for NCS compatibility'
  RFC_4122 = 'specified in RFC 4122'
  libname = 'c'

Imports: ctypes


Function Details [hide private]

_netbios_getnode()

 

Get the hardware address on Windows using NetBIOS calls. See http://support.microsoft.com/kb/118623 for details.

getnode()

 

Get the hardware address as a 48-bit positive integer.

The first time this runs, it may launch a separate program, which could be quite slow. If all attempts to obtain the hardware address fail, we choose a random 48-bit number with its eighth bit set to 1 as recommended in RFC 4122.

uuid1(node=None, clock_seq=None)

 

Generate a UUID from a host ID, sequence number, and the current time. If 'node' is not given, getnode() is used to obtain the hardware address. If 'clock_seq' is given, it is used as the sequence number; otherwise a random 14-bit sequence number is chosen.


Variables Details [hide private]

_uuid_generate_random

Value:
getattr(lib, 'UuidCreateSequential', getattr(lib, 'UuidCreate', None))