Changelog¶
Versions follow Semantic Versioning
2.5.0 - 2024-04-26¶
Changed¶
Generate a more accurate JSON schema with Pydantic’s
BaseModel.model_json_schema()
. This includes a specification for string and byte representations.
2.4.0 - 2024-04-02¶
Added¶
ULID
objects are now properly serialized when used as Pydantic types @Avihais12344.
2.3.0 - 2024-03-21¶
Added¶
ULID
objects can now be converted to bytes withbytes(ulid)
.The Pydantic v2 protocol is now supported, so that the
ULID
class can be directly used as type annotations in Pydantic models
Changed¶
The type annotations have been adapted, so that the classmethod constructors properly reflect the type for
ULID
subclasses. Thanks to @johnpaulett
2.2.0 - 2023-09-21¶
Added¶
Added a new flag
--uuid4
to the CLIshow
command, that converts the providedULID
into an RFC 4122 compliantUUID
.The ulid build command allows the use of the special value
-
for all options to read its inputs fromstdin
. E.g.$ date --iso-8601 | python -m ulid build --from-datetime - 01HAT9PVR02T3S13XB48S7GEHE
2.1.0 - 2023-09-21¶
Added¶
The new method
ULID.to_uuid4()
can be used to create an RFC 4122 compliantUUID
from an existingULID
.
Changed¶
The
validate_types
-decorator that is used for allULID.from_*
-methods to check type correctness at runtime has now better support for type hints. Thanks to @johnpaulett
2.0.0 - 2023-09-20¶
Added¶
New command line interface to easily generate and inspect ULIDs from the terminal
$ ulid build 01HASJFZZ862S826DA2NJK4WMT $ ulid show 01HASJFZZ862S826DA2NJK4WMT ULID: 01HASJFZZ862S826DA2NJK4WMT Hex: 018ab327ffe830b28119aa156532729a Int: 2049398682679492051963931130707735194 Timestamp: 1695222857.704 Datetime: 2023-09-20 15:14:17.704000+00:00
The CLI can also be invoked as a module
python -m ulid
. For more information seeulid --help
.Added support for Python 3.11.
Changed¶
Dropped support for Python 3.7 and 3.8.
1.1.0 - 2022-03-10¶
Added¶
Added support for Python 3.10.
Added
__version__
variable to package.
1.0.3 - 2021-07-14¶
Added¶
Enable tool based type checking as described in PEP-0561 by adding the
py.typed
marker.
Changed¶
Use GitHub actions instead of Travis.
1.0.0 - 2020-04-30¶
Added¶
Added type annotations
Added the named constructors
ULID.from_datetime()
,ULID.from_timestamp()
andULID.from_hex()
.
Changed¶
Dropped support for Python 2. Only Python 3.6+ is supported.
The named constructor
ULID.new()
has been removed. Use one of the specifc named constructors instead. For a newULID
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())
The
ULID.str()
andULID.int()
methods have been removed in favour of the more Pythonic special dunder-methods. Use str(ulid) and int(ulid) instead.Added the property
ULID.hex()
that returns a hex representation of theULID
.>>> ULID().hex '0171caa5459a8631a6894d072c8550a8'
Equality checks and ordering now also work with
str
-instances.The package now has no external dependencies.
The test-coverage has been raised to 100%.