Skip to content

Latest commit

 

History

History
154 lines (111 loc) · 4.38 KB

CHANGELOG.rst

File metadata and controls

154 lines (111 loc) · 4.38 KB

Changelog

Versions follow Semantic Versioning

2.3.0 - 2023-09-21

Added

Changed

  • The type annotations have been adapted, so that the classmethod constructors properly reflect the type for :class:`.ULID` subclasses. Thanks to @johnpaulett

2.2.0 - 2023-09-21

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 - 2023-09-21

Added

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

  • Make :class:`.ULID`-instances hashable. Thanks to bendykst.

  • Added support for Python 3.11.

Changed

  • Dropped support for Python 3.7 and 3.8.

1.1.0 - 2022-03-10

Added

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

Changed

  • Dropped support for Python 2. Only Python 3.6+ is supported.

  • The named constructor :meth:`.ULID.new` has been removed. Use one of the specifc named constructors instead. For a new :class:`.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())
  • The :meth:`.ULID.str` and :meth:`.ULID.int` methods have been removed in favour of the more Pythonic special dunder-methods. Use str(ulid) and int(ulid) instead.

  • Added the property :meth:`.ULID.hex` that returns a hex representation of the :class:`.ULID`.

    >>> 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%.