This is a port of the original JavaScript ULID implementation to Python.
A ULID is a universally unique lexicographically sortable identifier. It is
Based on the "Random Generator" category.
Alternatively, view python-ulid alternatives based on common mentions on social networks and blogs.
Do you think we are missing an alternative of python-ulid or a related project?
This is a port of the original JavaScript ULID implementation to Python.
A ULID is a universally unique lexicographically sortable identifier. It is
In general the structure of a ULID is as follows:
01AN4Z07BY 79KA1307SR9X4MV3
|----------| |----------------|
Timestamp Randomness
48bits 80bits
For more information have a look at the original specification.
$ pip install python-ulid
Create a new ULID on from the current timestamp
>>> from ulid import ULID
>>> ulid = ULID()
Encode in different formats
>>> str(ulid)
'01BTGNYV6HRNK8K8VKZASZCFPE'
>>> ulid.hex
'015ea15f6cd1c56689a373fab3f63ece'
>>> int(ulid)
1820576928786795198723644692628913870
>>> ulid.bytes
b'\x01^\xa1_l\xd1\xc5f\x89\xa3s\xfa\xb3\xf6>\xce'
Access timestamp attribute
>>> ulid.timestamp
1505945939.153
>>> ulid.milliseconds
1505945939153
>>> ulid.datetime
datetime.datetime(2017, 9, 20, 22, 18, 59, 153000, tzinfo=datetime.timezone.utc)
Convert to UUID
>>> ulid.to_uuid()
UUID('015ea15f-6cd1-c566-89a3-73fab3f63ece')
ULID.from_datetime, ULID.from_timestamp and from_hex.ULID.new has been removed. Use one of the specifc named constructors
instead. For a new ULID created from the current timestamp use the standard constructor. # old
ulid = ULID.new()
ulid = ULID.new(time.time())
ulid = ULID.new(datetime.now())
# new
ulid = ULID()
ulid = ULID.from_timestamp(time.time())
ulid = ULID.from_datetime(datetime.now())
ULID.str and ULID.int methods have been removed in favour of the more Pythonic special
dunder-methods. Use str(ulid) and int(ulid) instead.ULID.hex that returns a hex representation of the ULID. >>> ULID().hex
'0171caa5459a8631a6894d072c8550a8'
str-instances.Do not miss the trending, packages, news and articles with our weekly report.