• plum-py 0.5.0 released

    From Dan Gass@dan.gass@gmail.com to comp.lang.python.announce on Mon May 10 23:10:06 2021
    From Newsgroup: comp.lang.python.announce

    I am pleased to announce the availability of beta release 0.5.0 of
    the "plum-py" package. While this release contains many breaking changes,
    the API should now remain relatively stable until the anticipated 1.0.0
    release expected later this year.

    This pure Python package provides classes and utility functions to
    transform byte sequences into Python objects and back. While similar
    in purpose to Python's standard library ``struct`` module, this
    package provides a larger set of format specifiers and is extensible,
    allowing you to easily create complex ones of your own.

    Docs: https://plum-py.readthedocs.io/en/latest/index.html
    PyPi: https://pypi.org/project/plum-py/
    Repo: https://gitlab.com/dangass/plum

    License: MIT

    With Regards,
    Dan Gass
    (dan.gass at gmail)

    Change List
    =========

    - This beta release contains many breaking changes! This release note
    entry attempts to summarize most breaking changes. Please read the
    extensively rewritten documentation to assess in detail what has
    changed.

    - Python 3.6 support dropped.

    - Changed most plum constructs (e.g. `Int`, `Float`, etc.) from being
    a data store type (with transform properties) into a simple
    transform type (e.g. `IntX`, `FloatX`, etc.). Instead of subclassing
    to obtain a custom transform, now instantiate the transform.

    - `ByteArray` data store eliminated and replaced with `BytesX`
    transform.

    - Added `ItemsX` transform for specifying dict, list, tuple formats.

    - Structure & BitFields changes
    - Bitfield members `cls` argument name changed to `typ`.
    - Member `cls` argument name changed to `fmt`.
    - Type annotations no longer used for the member format transform
    (previously if `cls` was unspecified, the annotation was used).
    - Pack operations no longer accept dictionaries.
    - Reduced number of member definition classes (same abilities exist,
    but features were added to standard `Member` to accomodate them).
    - `pack()` now only usable as a class method. `ipack()` introduced
    for usage on instances.

    - Pack operations now return `bytes` instead of `bytearray`.

    - Unpack operations no longer support File I/O as input buffer.

    - `pack()` and `unpack()` functions/methods offer more flexibility for
    specifying data transform format.

    - `pack_into()` eliminated.

    - `unpack_from()` eliminated (use `Buffer` construct instead).
    --- Synchronet 3.18c-Linux NewsLink 1.113