Subject: CVS commit: pkgsrc/devel/py-bitstring
From: Adam Ciarcinski
Date: 2024-05-08 14:00:21
Message id: 20240508120021.59577FA2C@cvs.NetBSD.org

Log Message:
py-bitstring: updated to 4.2.1

April 2024: version 4.2.1
-------------------------
Fixing a few regressions introduced in 4.2.0.

* Module crashes on import with 32-bit Python.
* Lists of integers not converted to bytes when using the bytes constructor.
* Empty comma separated tokens not handled correctly.
* Crash on import when docstrings not present due to optimize flag.

April 2024: version 4.2.0
-------------------------

This release contains a fairly large refactor of how different types are \ 
managed. This
shouldn't affect the end user, and the main noticeable change should be the new Dtype
class, which is optional to use.

Support for 8-bit and smaller floats has been reworked and expanded. These are still
a 'beta' feature.

Backwardly incompatible changes:

* Dropped support for Python 3.7. Minimum version is now 3.8.
* For tokens that use a non-numeric length, a ':' is now compulsory rather than
  recommended. For example use 'uint:foo' instead of 'uintfoo'.
* The previous e4m3float and e5m2float formats have become the slightly modified
  p4binary8 and p3binary8 formats.
* Some parameters are now enforced as positional only, such as `auto` in \ 
constructors.

Other changes:

* The Array class is no longer 'beta'.

* A new Dtype class can be optionally used to specify types.

* The bitstring.options object is now the preferred method for changing module \ 
options.
  The `bitstring.lsb0` and `bitstring.bytealigned` variables are now deprecated, use
  `bitstring.options.lsb0` and `bitstring.options.bytealigned` instead.

* New fromstring method as another way to create bitstrings from formatted strings.
  Instead of relying on the `auto` parameter you can now optionally use `fromstring`.
  >>> s1 = BitArray('u24=1000')  # This is still fine
  >>> s2 = BitArray.fromstring('u24=1000')  # This may be clearer and \ 
more efficient.

* More types can now be pretty printed. For example integer and float formats \ 
can be used.
  >>> s.pp('u15, bin')

* Pretty printing is now prettier - optional terminal colours added.

* A range of 8-bit, 6-bit and even 4-bit float formats added (beta):
  p3binary8: IEEE 8-bit floating point with 3 bit precision.
  p4binary8: IEEE 8-bit floating point with 4 bit precision.
  e5m2mxfp: OCP 8-bit floating point with 3 bit precision.
  e4m3mxfp: OCP 8-bit floating point with 4 bit precision.
  e2m3mxfp: OCP 6-bit floating point with 4 bit precision.
  e3m2mxfp: OCP 6-bit floating point with 3 bit precision.
  e2m1mxfp: OCP 4-bit floating point with 2 bit precision.
  e8m0mxfp: OCP 8-bit unsigned floating point designed to scale the other formats.
  mxint: OCP 8-bit floating point that is a scaled integer representation.

* Performance improvements.

Files:
RevisionActionfile
1.7modifypkgsrc/devel/py-bitstring/Makefile
1.5modifypkgsrc/devel/py-bitstring/PLIST
1.8modifypkgsrc/devel/py-bitstring/distinfo