Skip to content

Releases: mdomke/python-ulid

3.0.0

11 Oct 15:34
3.0.0
1f1a9e1
Compare
Choose a tag to compare

Changed

  • Raise TypeError instead of ValueError if constructor is called with value of wrong type.
  • Update ruff linter rules and switch to hatch fmt.

Added

Fixed

2.7.0

11 Oct 15:29
2.7.0
0804c91
Compare
Choose a tag to compare

Changed

  • Ensure that the validation of ULID's timestamp component aligns more closely with the ULID specification. #27 @somnam

2.6.0

25 May 22:54
2.6.0
e25f438
Compare
Choose a tag to compare

Changed

  • Use stricter validation when a ULID value from user input. When using ULID.from_str() we will check if the characters match the base32 alphabet. In general, it is ensured that the timestamp part of the ULID is not out of range.

2.5.0

25 May 22:49
2.5.0
76d5740
Compare
Choose a tag to compare

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

02 Apr 15:53
2.4.0
2a249fc
Compare
Choose a tag to compare

Added

Internal

2.3.0

21 Mar 13:08
2.3.0
76f9741
Compare
Choose a tag to compare

Added

  • ULID objects can now be converted to bytes with bytes(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 #9
  • Use time.time_ns() when generating ULIDs for improved performance #16 #12

2.2.0

21 Sep 20:26
2.2.0
13c1bc0
Compare
Choose a tag to compare

Added

  • Added a new flag --uuid4 to the CLI show command, that converts the provided ULID
    into an RFC 4122 compliant UUID.
  • The ulid build command allows the use of the special value - for all options to read its
    inputs from stdin. E.g.
  $ date --iso-8601 | python -m ulid build --from-datetime -
  01HAT9PVR02T3S13XB48S7GEHE

2.1.0

21 Sep 19:34
2.1.0
cfc4184
Compare
Choose a tag to compare

Added

  • The new method ULID.to_uuid4 can be used to create an RFC 4122 compliant UUID from
    an existing ULID #5.

Changed

  • The validate_types-decorator that is used for all ULID.from_*-methods to check type
    correctness at runtime has now better support for type hints.
    Thanks to @johnpaulett

2.0.0

20 Sep 18:05
2.0.0
b80a97f
Compare
Choose a tag to compare

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 see ulid --help.

  • Make ULID-instances hashable @bendykst #4 #3

  • Added support for Python 3.11.

Changed

  • Dropped support for Python 3.7 and 3.8.