# uuid - pydoc - phpman

> **TLDR:** Generate and decode Universally Unique Identifiers (UUID).
>
- Generate a UUIDv1 (based on time and system's hardware address, if present):
  `uuid`
- Generate a UUIDv4 (based on random data):
  `uuid -v {{4}}`
- Generate multiple UUIDv4 identifiers at once:
  `uuid -v {{4}} -n {{number_of_uuids}}`
- Generate a UUIDv4 and specify the output format:
  `uuid -v {{4}} -F {{BIN|STR|SIV}}`
- Generate a UUIDv4 and write the output to a file:
  `uuid -v {{4}} -o {{path/to/file}}`
- Generate a UUIDv5 (based on the supplied object name) with a specified namespace prefix:
  `uuid -v {{5}} ns:{{DNS|URL|OID|X500}} {{object_name}}`
- Decode a given UUID:
  `uuid -d {{uuid}}`

*Source: tldr-pages*

---

Help on module uuid:

## NAME
    uuid - UUID objects (universally unique identifiers) according to RFC 4122.

## MODULE REFERENCE
    <https://docs.python.org/3.10/library/uuid.html>

    The following documentation is automatically generated from the Python
    source files.  It may be incomplete, incorrect or include features that
    are considered implementation detail and may vary between Python
    implementations.  When in doubt, consult the module reference at the
    location listed above.

## DESCRIPTION
    This module provides immutable UUID objects (class UUID) and the functions
### uuid1
    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()    # doctest: +SKIP
        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()    # doctest: +SKIP
        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')

## CLASSES
    builtins.object
        UUID
    enum.Enum(builtins.object)
        SafeUUID

### class SafeUUID
     |  SafeUUID(value, names=None, *, module=None, qualname=None, type=None, start=1)
     |
     |  An enumeration.
     |
     |  Method resolution order:
     |      SafeUUID
     |      enum.Enum
     |      builtins.object
     |
     |  Data and other attributes defined here:
     |
     |  safe = <SafeUUID.safe: 0>
     |
     |  unknown = <SafeUUID.unknown: None>
     |
     |  unsafe = <SafeUUID.unsafe: -1>
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors inherited from enum.Enum:
     |
     |  name
     |      The name of the Enum member.
     |
     |  value
     |      The value of the Enum member.
     |
     |  ----------------------------------------------------------------------
     |  Readonly properties inherited from enum.EnumMeta:
     |
     |  __members__
     |      Returns a mapping of member name->value.
     |
     |      This mapping lists all enum members, including aliases. Note that this
     |      is a read-only view of the internal mapping.

### class UUID
     |  UUID(hex=None, bytes=None, bytes_le=None, fields=None, int=None, version=None, *, is_safe=<SafeUUID.unknown: None>)
     |
     |  Instances of the UUID class represent UUIDs as specified in RFC 4122.
     |  UUID objects are immutable, hashable, and usable as dictionary keys.
     |  Converting a UUID to a string with str() yields something in the form
     |  '12345678-1234-1234-1234-123456789abc'.  The UUID constructor accepts
     |  five possible forms: a similar string of hexadecimal digits, or a tuple
     |  of six integer fields (with 32-bit, 16-bit, 16-bit, 8-bit, 8-bit, and
     |  48-bit values respectively) as an argument named 'fields', or a string
     |  of 16 bytes (with all the integer fields in big-endian order) as an
     |  argument named 'bytes', or a string of 16 bytes (with the first three
     |  fields in little-endian order) as an argument named 'bytes_le', or a
     |  single 128-bit integer as an argument named 'int'.
     |
     |  UUIDs have these read-only attributes:
     |
     |      bytes       the UUID as a 16-byte string (containing the six
     |                  integer fields in big-endian byte order)
     |
     |      bytes_le    the UUID as a 16-byte string (with time_low, time_mid,
     |                  and time_hi_version in little-endian byte order)
     |
     |      fields      a tuple of the six integer fields of the UUID,
     |                  which are also available as six individual attributes
     |                  and two derived attributes:
     |
     |          time_low                the first 32 bits of the UUID
     |          time_mid                the next 16 bits of the UUID
     |          time_hi_version         the next 16 bits of the UUID
     |          clock_seq_hi_variant    the next 8 bits of the UUID
     |          clock_seq_low           the next 8 bits of the UUID
     |          node                    the last 48 bits of the UUID
     |
     |          time                    the 60-bit timestamp
     |          clock_seq               the 14-bit sequence number
     |
     |      hex         the UUID as a 32-character hexadecimal string
     |
     |      int         the UUID as a 128-bit integer
     |
     |      urn         the UUID as a URN as specified in RFC 4122
     |
     |      variant     the UUID variant (one of the constants RESERVED_NCS,
     |                  RFC_4122, RESERVED_MICROSOFT, or RESERVED_FUTURE)
     |
     |      version     the UUID version number (1 through 5, meaningful only
     |                  when the variant is RFC_4122)
     |
     |      is_safe     An enum indicating whether the UUID has been generated in
     |                  a way that is safe for multiprocessing applications, via
     |                  [uuid_generate_time_safe(3)](https://www.chedong.com/phpMan.php/man/uuidgeneratetimesafe/3/markdown).
     |
     |  Methods defined here:
     |
     |  __eq__(self, other)
     |      Return self==value.
     |
     |  __ge__(self, other)
     |      Return self>=value.
     |
     |  __getstate__(self)
     |
     |  __gt__(self, other)
     |      Return self>value.
     |
     |  __hash__(self)
     |      Return hash(self).
     |
     |  __init__(self, hex=None, bytes=None, bytes_le=None, fields=None, int=None, version=None, *, is_safe=<SafeUUID.unknown: None>)
     |      Create a UUID from either a string of 32 hexadecimal digits,
     |      a string of 16 bytes as the 'bytes' argument, a string of 16 bytes
     |      in little-endian order as the 'bytes_le' argument, a tuple of six
     |      integers (32-bit time_low, 16-bit time_mid, 16-bit time_hi_version,
     |      8-bit clock_seq_hi_variant, 8-bit clock_seq_low, 48-bit node) as
     |      the 'fields' argument, or a single 128-bit integer as the 'int'
     |      argument.  When a string of hex digits is given, curly braces,
     |      hyphens, and a URN prefix are all optional.  For example, these
     |      expressions all yield the same 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)
     |
     |      Exactly one of 'hex', 'bytes', 'bytes_le', 'fields', or 'int' must
     |      be given.  The 'version' argument is optional; if given, the resulting
     |      UUID will have its variant and version set according to RFC 4122,
     |      overriding the given 'hex', 'bytes', 'bytes_le', 'fields', or 'int'.
     |
     |      is_safe is an enum exposed as an attribute on the instance.  It
     |      indicates whether the UUID has been generated in a way that is safe
     |      for multiprocessing applications, via [uuid_generate_time_safe(3)](https://www.chedong.com/phpMan.php/man/uuidgeneratetimesafe/3/markdown).
     |
     |  __int__(self)
     |
     |  __le__(self, other)
     |      Return self<=value.
     |
     |  __lt__(self, other)
     |      Return self<value.
     |
     |  __repr__(self)
     |      Return repr(self).
     |
     |  __setattr__(self, name, value)
     |      Implement setattr(self, name, value).
     |
     |  __setstate__(self, state)
     |
     |  __str__(self)
     |      Return str(self).
     |
     |  ----------------------------------------------------------------------
     |  Readonly properties defined here:
     |
     |  bytes
     |
     |  bytes_le
     |
     |  clock_seq
     |
     |  clock_seq_hi_variant
     |
     |  clock_seq_low
     |
     |  fields
     |
     |  hex
     |
     |  node
     |
     |  time
     |
     |  time_hi_version
     |
     |  time_low
     |
     |  time_mid
     |
     |  urn
     |
     |  variant
     |
     |  version
     |
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |
     |  __weakref__
     |      list of weak references to the object (if defined)
     |
     |  int
     |
     |  is_safe

## FUNCTIONS
### 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
        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.

### uuid3
        Generate a UUID from the MD5 hash of a namespace UUID and a name.

### uuid4
        Generate a random UUID.

### uuid5
        Generate a UUID from the SHA-1 hash of a namespace UUID and a name.

## DATA
    NAMESPACE_DNS = UUID('6ba7b810-9dad-11d1-80b4-00c04fd430c8')
    NAMESPACE_OID = UUID('6ba7b812-9dad-11d1-80b4-00c04fd430c8')
    NAMESPACE_URL = UUID('6ba7b811-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'

## AUTHOR
    Ka-Ping Yee <<ping@zesty.ca>>

## FILE
    /usr/lib/python3.10/uuid.py


