Skip to content
Scott Griffiths edited this page Oct 16, 2024 · 9 revisions

Roadmap

All dates and features are very subject to change!

Minimal Viable Product

Version 0.1 - Now done 🎉 in September 2024

  • New immutable Bits class.
  • Dtype class.
  • Array class. Mutable, but with proxy to underlying Bits.
  • Field, Format classes.
  • float, int, uint, hex, oct, bin, bytes, bool dtypes.
  • Remove unneeded exception types.
  • pack and unpack methods for Bits.
  • Endianness modifiers for dtypes.

Next target

Version 0.2 - Later in 2024?

  • Improve documentation and testing.
  • Expression class and usage.
  • Repeat class.
  • Find class.

Later additions

  • Exotic float types.
  • Bit reading class / methods.
  • Bit reverse modifier for dtypes?
  • LSB0 mode.
  • User defined types?

Possible new features:

  • Allow a new dtype to be specified in Array.unpack. Keep the Array's current dtype as the default.
  • Array.zeros(dtype, n) method, to match Bits.zeros. Don't think we really need Array.ones.
  • Array.pack(dtype, list) method. This is essentially just the __init__ method, but nice symmetry with Bits.
  • FieldType.parse should take a **kwargs. Not very useful until expressions are available.
  • Enum class that allows bit values to be named in a Field.
  • split_at method for Bits. Returns tuple of two Bits split at a given bit position. Should not involve any copying.

Not planned

  • Exponential Golomb types.
  • Explicit file support.
Clone this wiki locally