Release Notes
bpack v1.2.0 (26/11/2024)
Drop support to Python 3.7 and 3.8. Now bpack requires Python >= 3.9.
Add support to Python 3.13.
The internal
bpack.utils.create_fn()
function has been removed and replaced by the newbpack.utils.add_function_to_class()
internal function. Since the change is on utility functions that are considered internal and not part of the public package API, this is not considered a backward incompatible change.New ‘full’ installation option added to pyproject.toml.
No longer use deprecated syntax in sphinx configuration.
Improved documentation and fixed typos.
flake8 configuration moved to a dedicated file.
New functions: -
bpack.typing.type_params_to_str()
-bpack.descriptors.flat_fields_iterator()
New
bpack.tools.codegen
module. It includes tool to generate flat binary record descriptors starting from nested ones (requires Python >= 3.10).
bpack v1.1.0 (15/04/2023)
Added support for signed integers to
bpack.np.unpackbits()
. Both standard signed integers and integers encoded with sign and module are now supported.Use uppercase enums in s1isp.py example.
Improved docstrings in
bpack.np
.Fixed several typos.
bpack v1.0.0 (05/02/2023)
Fix compatibility with Python v3.11.
Move setup configuration from setup.cfg to pyproject.toml.
bpack v0.8.2 (20/03/2022)
Fallback to standard bitstruct if the bitstruct.c extension does not support the format string
bpack v0.8.1 (30/11/2021)
Drop
setup.py
, no longer needed.Improve compatibility with typing-extensions v4.0 (closes gh-1).
Use the compiled extension of bitstruct when available (and compatible with the specified format string).
Use cbitsturct when available (preferred over the compiled extension of bitstruct).
bpack v0.8.0 (03/06/2021)
bpack v0.7.1 (08/03/2021)
Improved User Guide
bpack.np.unpackbits()
has been generalized and optimized.New example for packet decoding.
Improved support for nested records.
bpack v0.7.0 (21/01/2021)
New packbit/unpackbit functions (provisional API).
Fixed a bug in decoding of nested records.
Added example program for Sentinel-1 space packets decoding
bpack v0.6.0 (15/01/2021)
New numpy based backend.
New
bpack.enums.EByteOrder.get_native()
method.Now data types in descriptor definition can also be specified by means of special type annotation type (
bpack.typing.T
) that accepts numpy-like format strings.Now it is no longer necessary to use the
dataclasses.dataclass()
decorator to define a descriptor. That way to define descriptors is depercated. All parameters previously specified viadataclasses.dataclass()
(like e.g. frozen) shall now be passed directly to thebpack.descriptors.descriptor()
decorator. With this change the use ofdataclasses
becomes an implementation detail.The
size
parameter of thebpack.descriptors.field()
factory function is now optional.General improvements and code refactoring.
Improved CI testing.
Added automatic spell checking of documentation in CI.
Backward incompatible changes:
bpack.enums.EBaseUnits
,bpack.enums.EByteOrder
andbpack.enums.EBitOrder
enums moved to the newbpack.enums
module (the recommended way to access enums is directly frombpack
, e.g.bpack.EByteOrder
)bpack.enums.EByteOrder.BIG
andbpack.enums.EByteOrder.LITTLE
enumerates have been renamed intobpack.enums.EByteOrder.BE
andbpack.enums.EByteOrder.LE
respectivelyclasses decorated with the
bpack.descriptors.descriptor()
decorator no longer have the__len__
method automatically added; the recommended way to compute the size of a descriptors (class or instance) is to use thebpack.descriptros.calcsize()
functionthe default behavior of the
bpack.decorators.calcsize()
has been changed to return the size of the input descriptor in the same base units of the descriptor itself; previously the default behavior was to return the size in bytes
bpack v0.5.0 (31/12/2020)
Initial release.
The package implements all core functionalities but
the API is still not stable
the documentation is incomplete
some advanced feature is still missing