Skip to main content

A pure-Python memory-efficient packed representation for bit arrays

Project description

This class presents a pure-Python memory efficient packed representation for bit arrays.

Changes introduced in version 1.3: (1) One more constructor mode included: When initializing a new bit vector with an integer value, you can now also specify a size for the bit vector. The constructor zero-pads the bit vector from the left with zeros. (2) The BitVector class now supports ‘if x in y’ syntax to test if the bit pattern ‘x’ is contained in the bit pattern ‘y’. (3) Improved syntax to conform to well-established Python idioms. (4) What used to be a comment before the beginning of each method definition is now a docstring.

Changes introduced in version 1.2: (1) one more constructor mode: a bit vector can now be constructed directly from a bitstring; (2) rich comparison operators overloaded; (3) minimal length bit vectors constructed from int values; (4) methods provided for extending a bit vector from the left and from the right; (5) a unittest based testing framework incorporated in the package; (6) additional debugging in code and in package setup.

Changes introduced in version 1.1.1: (1) peek feature incorporated in block reads from disk files; (2) it is now possible to construct zero-sized bit vectors.

The class supports the following operators/methods:

__getitem__

__setitem__

__len__

__getslice__

__str__

__iter__

__contains__

__int__

__add__

__eq__, __ne__, __lt__, __le__, __gt__, __ge__

‘|’ for bitwise or

‘&’ for bitwise and

‘^’ for bitwise xor

‘~’ for bitwise inversion

‘<<’ for circular shift to the left

‘>>’ for circular shift to the right

‘+’ for concatenation

intValue(), __int__ for returning the integer value

divide_into_two

permute

unpermute

pad_from_left

pad_from_right

read_bits_from_file

write_to_file

read_bits_from_fileobject

write_bits_to_fileobject

Project details


Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page