I am pleased to announce the availability of beta release 0.7.0 of the "plum-py" package.
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 Install: pip install plum-py
With Regards, Dan Gass (dan.gass at gmail)
Change List =========
- Backwards Incompatible - Change ``BitFields`` and ``Structure`` default behavior to automatically place bitfields from most significant to least significant position when lsb not specified. Add ``fieldorder`` metaclass keyword argument to support old behavior (e.g. specify ``fieldorder="least_to_most"``). - Change ``bitfield()`` and ``bitfield_member()`` to always default to ``int`` for ``typ`` (previously it defaulted to the type annotation if present, otherwise to ``int``; this change is in preparation for supporting Python 3.10)
- Backwards Compatible - Add ``SizedX`` transform properties (e.g. ``fmt``, ``size_fmt``, etc.) - Fix ``BitFields`` to allow `nbytes` to allow any size (previously it had to be a power of two).