Skip to content

Releases: astrogewgaw/pabo

v0.1.3

10 Jun 14:18
Compare
Choose a tag to compare

This patch release downgrades the minimum version of numpy we are using to v1.19.0, so that we can support Python 3.6.

v0.1.2

10 Jun 13:47
Compare
Choose a tag to compare

This release has a critical fix for a bug when reading in arrays with fixed counts.

v0.1.1

10 Feb 14:04
Compare
Choose a tag to compare

As Einstein once said:

Everything should be made as simple as possible, but not simpler.


This minor release makes things simpler, by making the following changes:

  1. The Spec class was trying to be a dictionary, but that was stopping it from being a good Construct, and vice versa. So now it's just a Construct, with a dictionary inside (following the "composability instead of inheritance" principle, essentially).

  2. The C++ code and bindings now reside in a single file, thanks to a generous use of lambda functions, a feature available since C++11. This allows us to write the code right where we bind it, and reduces the number of files we need to keep track of.

  3. Now there is a single build function, and a single parse function. That is, you no longer have to use a different function for parsing bytes directly and for parsing them from a stream. Now, the parse function will just work, whether you are trying to parse data from:

    • A file, via its paths (either as a str or as a Path),
    • A file object,
    • An in-memory stream (like BytesIO),
    • A socket, or any other stream-like object,

    or even just bytes!


v0.1.0

05 Nov 20:47
db1208a
Compare
Choose a tag to compare

This is pabo's first release: v0.1.0.

The current set of features includes:

  • Building and parsing:
    • Floats,
    • Integers,
    • Numerical arrays,
    • Strings, such as those:
      • ending with \r\n,
      • ending with a null byte (\x00),
      • padded with null bytes (\x00),
      • prefixed by bytes encoding their length,
    • Sequences of binary constructs (via Seq),
    • Specifications for binary data (via Spec),
  • Integration with numpy,
  • Support for low bit-width data,
  • Support for parsing bits from a stream of bytes,
  • Adding extra features to a Construct via wrappers,

with many more in development. Testing and documentation are still a work-in-progress, but will be added soon!