Search code examples
pythonuuid

Is python uuid1 sequential as timestamps?


Python docs states that uuid1 uses current time to form the uuid value. But I could not find a reference that ensures UUID1 is sequential.

>>> import uuid
>>> u1 = uuid.uuid1()
>>> u2 = uuid.uuid1()
>>> u1 < u2
True
>>> 

Solution

  • But not always:

    >>> def test(n):
    ...     old = uuid.uuid1()
    ...     print old
    ...     for x in range(n):
    ...             new = uuid.uuid1()
    ...             if old >= new:
    ...                     print "OOops"
    ...                     break
    ...             old = new
    ...     print new
    >>> test(1000000)
    fd4ae687-3619-11e1-8801-c82a1450e52f
    OOops
    00000035-361a-11e1-bc9f-c82a1450e52f