jam.types.base.sequences.bytes.bit_array module

class jam.types.base.sequences.bytes.bit_array.BitArray(value: int | bool | bytes | str | bytearray | memoryview | Sequence)[source]

Bases: Array

Fixed-length bit sequence implementation that supports codec operations.

A BitSequence represents a fixed-length sequence of bits, where each bit is represented as a Boolean value. The sequence is encoded as a compact bit array.

__init__(value: int | bool | bytes | str | bytearray | memoryview | Sequence)[source]

Initialize bit sequence.

Parameters:

value – Initial values. Must match the fixed length. All elements must be Boolean instances.

Raises:
  • TypeError – If elements are not Boolean instances

  • ValueError – If initial values don’t match fixed length

classmethod from_json(data: Any) BitArray[source]

Deserialize from JSON.

jam.types.base.sequences.bytes.bit_array.decodable_bit_array(length: int, bitorder: Literal['msb', 'lsb'] | None = 'msb') Callable[[Type[BitArray]], Type[BitArray]][source]

Extend existing decodable_array to be array of Bits

class jam.types.base.sequences.bytes.bit_array.Byte(value: int | bool | bytes | str | bytearray | memoryview | Sequence)[source]

Bases: BitArray

A single byte value that supports codec operations. Array uses BitSequenceCodec.

A Byte represents an 8-bit array that is encoded as a single byte.

static decode_from(buffer: bytes | bytearray | memoryview, offset: int = 0) Tuple[BitArray, int]

Decode from buffer. Must be implemented by subclasses or added via decorator.

Parameters:
  • buffer – Buffer to decode from

  • offset – Starting position in buffer

Returns:

  • The decoded value

  • Number of bytes read

Return type:

Tuple containing