
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).
participants (1)
-
Dan Gass