* fix type hinting for memoryviews, see #241
* add [bit-endianness](endianness.rst) documentation
* improve testing, including debug mode test for `digit_to_int()`
- from version 3.7.0
* add `util.gen_primes()`, generate bitarrays in which active indices are
prime numbers
* improve `.buffer_info()` to return named tuple
* add optional `mode` argument to `util.sum_indices()` to sum square of
active indices
* improve internal `_sysinfo()` to include `Py_DEBUG`
* add [Dubner's conjecture](../examples/dubner.rst) (in memory of Harvey
Dubner)
* add [dynamically growing sieve](../examples/dyn_sieve.py)
- from version 3.6.1
* add development files for statistical tests in `devel/random/`
* optimize `util.sum_indices()`
* fix RecursionError in `util.random_k()`, see #239
* add `devel/test_sum_indices.py`
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-bitarray?expand=0&rev=78
* minor updates to documentation
* C-level:
- simplify and speedup `extend_unicode01()`
- customize `resize_lite()` - avoid unused code
- use `PyTypeObject` for bitarray type object in `_util.c` to
be consistent with `_bitarray.c`
- add and improve comments to implementation of sparse bitarray
compression
- simplify `sc_count()`
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-bitarray?expand=0&rev=70
* extend documentation of
[compression of sparse bitarrays](sparse_compression.rst)
* `util.sc_decode()` and `util.vl_decode()` now raise `StopIteration`
instead of `ValueError` when unexpected end of stream is encountered
* add debug mode tests for `read_n()`, `write_n()` and `count_from_word()`
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-bitarray?expand=0&rev=66
* remove `.endian()` method in favor of data descriptor `.endian`
* allow bitarray initializer `bytes` or `bytearray` to set buffer directly
* allow calling `.extend()` with `bytes` object (although the only
valid bytes are 0x00 and 0x01)
* add `util.byteswap()`
* add `util.correspond_all()`
* fix `.reverse()` for imported buffer
* drop Python 3.5 support
* add tests
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-bitarray?expand=0&rev=62
- update to 3.3.1:
* remove License classifier in favor of a SPDX license
expression, #231
* reorganize and cleanup many tests
* add optional group and sep arguments' to .to01(), #230 - as
well as util.ba2hex() and util.ba2base()
* ignore whitespace in util.base2ba() and util.hex2ba()
* check for embedded nul characters when extending (and
initializing) bitarray from string
* improve testing
* add double precision floating point number example
OBS-URL: https://build.opensuse.org/request/show/1272311
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-bitarray?expand=0&rev=30
* remove License classifier in favor of a SPDX license
expression, #231
* reorganize and cleanup many tests
* add optional group and sep arguments' to .to01(), #230 - as
well as util.ba2hex() and util.ba2base()
* ignore whitespace in util.base2ba() and util.hex2ba()
* check for embedded nul characters when extending (and
initializing) bitarray from string
* improve testing
* add double precision floating point number example
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-bitarray?expand=0&rev=58
* add `util.xor_indices()`, #229
* add Hamming code example
- Update to 3.1.1
* updated `pythoncapi_compat.h` for pypy3.11 support, see #227
* use `__builtin_parityll()` when available in `util.parity()`
* add `parity_64()` to header
* simplify some tests
* add LFSR example
- Update to 3.1.0
* allow mask assignment to bitarrays, see #225
* add missing masked operations to pyi-file
* refactor `resize()` and avoid overallocation when downsizing buffer
* update `build_wheels.yml`
* fix some typos
* minor simplifications
* rename `growth/` example to `resize/` and add tests for `resize()`
* update gene example
* add comments
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-bitarray?expand=0&rev=56
- update to 3.0.0:
* see Bitarray 3 transition
* remove Python 2.7 support
* .decode() now returns iterator (equivalent to past
.iterdecode())
* .search() now returns iterator (equivalent to past
.itersearch())
* remove .iterdecode() and .itersearch()
* remove util.rindex(), use .index(..., right=1) instead,
deprecated since 2.9
* remove util.make_endian(), use bitarray(..., endian=...)
instead, deprecated since 2.9
* remove hackish support for bitarray() handling unpickling,
see detailed explaination in #207 - closes#206
* add official Python 3.13 support
* update cibuildwheel to 2.21.3
* minor simplifications
* fix some typos
OBS-URL: https://build.opensuse.org/request/show/1218794
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-bitarray?expand=0&rev=28
* see Bitarray 3 transition
* remove Python 2.7 support
* .decode() now returns iterator (equivalent to past
.iterdecode())
* .search() now returns iterator (equivalent to past
.itersearch())
* remove .iterdecode() and .itersearch()
* remove util.rindex(), use .index(..., right=1) instead,
deprecated since 2.9
* remove util.make_endian(), use bitarray(..., endian=...)
instead, deprecated since 2.9
* remove hackish support for bitarray() handling unpickling,
see detailed explaination in #207 - closes#206
* add official Python 3.13 support
* update cibuildwheel to 2.21.3
* minor simplifications
* fix some typos
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-bitarray?expand=0&rev=54
- update to 2.9.1:
* avoid buffer being unnecessarily initialized with 0s in
several functions of the ``bitarray.util`` module
* fix ``.count()`` type hint in pyi-file
* improve testing
* deprecate support for Python 2 - Python 2.7 support will be
removed in bitarray version 3.0
* ``bitarray(n)`` for integer initializer ``n`` will always
return a bitarray of length ``n`` with all items initialized
to ``0``
* allow sub-bitarray in ``.count()``, `#212
* add ``util.ones()`` ``.find()`` and ``.index()``:
add keyword argument ``right`` for rightmost index
* ``.itersearch()``: add start and stop argument, and keyword
* argument ``right``
* deprecate ``util.rindex()`` (will be removed in 3.0 release),
* use ``.index(..., right=True)`` instead
* deprecate ``util.make_endian()`` (will be removed in 3.0
release),
* use ``bitarray(..., endian=...)`` instead
OBS-URL: https://build.opensuse.org/request/show/1135240
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-bitarray?expand=0&rev=25
* avoid buffer being unnecessarily initialized with 0s in
several functions of the ``bitarray.util`` module
* fix ``.count()`` type hint in pyi-file
* improve testing
* deprecate support for Python 2 - Python 2.7 support will be
removed in bitarray version 3.0
* ``bitarray(n)`` for integer initializer ``n`` will always
return a bitarray of length ``n`` with all items initialized
to ``0``
* allow sub-bitarray in ``.count()``, `#212
* add ``util.ones()`` ``.find()`` and ``.index()``:
add keyword argument ``right`` for rightmost index
* ``.itersearch()``: add start and stop argument, and keyword
* argument ``right``
* deprecate ``util.rindex()`` (will be removed in 3.0 release),
* use ``.index(..., right=True)`` instead
* deprecate ``util.make_endian()`` (will be removed in 3.0
release),
* use ``bitarray(..., endian=...)`` instead
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-bitarray?expand=0&rev=48
* speedup unaligned copies by always using word shifts (in
combination with builtin byte swap 64 when available) when
bit-endianness and machine byte-order are opposite
* add ``HAVE_BUILTIN_BSWAP64`` to header
* avoid misaligned pointers when casting to ``(uint64_t *)``
* add tests
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-bitarray?expand=0&rev=46
- update to 2.8.2:
* improve error messages for masked assignment
* simplify test collection
* added ``pytest.ini`` to allow running pytest with no
additional arguments
* ``util.sc_encode()``: avoid writing empty blocks at end of
compressed stream, ie. skip encoding when total population
count is reached
* optimize `richcompare()`
* `.bytereverse()` no longer sets unused pad bits to zero
* fix `sys.getsizeof(bitarray)` by adding `.__sizeof__()`, see issue #100
- Update to 1.5.2:
OBS-URL: https://build.opensuse.org/request/show/1115784
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-bitarray?expand=0&rev=21
* improve error messages for masked assignment
* simplify test collection
* added ``pytest.ini`` to allow running pytest with no
additional arguments
* ``util.sc_encode()``: avoid writing empty blocks at end of
compressed stream, ie. skip encoding when total population
count is reached
* optimize `richcompare()`
* `.bytereverse()` no longer sets unused pad bits to zero
* fix `sys.getsizeof(bitarray)` by adding `.__sizeof__()`, see issue #100
- Update to 1.5.2:
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-bitarray?expand=0&rev=40
- update to 2.7.3:
* allow running ``python setup.py test``
* add official Python 3.12 support
* simplify count functionality in util module
* retire ``bitcount_lookup[256]`` table
* improve ``util.count_n()`` error messages
* avoid ``util`` module tests from being run more than once in
each call to ``bitarray.test()`` when called multiple times in
the same Python process
* improve testing
OBS-URL: https://build.opensuse.org/request/show/1069754
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-bitarray?expand=0&rev=17
* fix popcount64 name conflict on NetBSD
* even though PyPy is not actively supported, allow running
tests for PyPy 3.7 and 3.8
* allow running ``python setup.py test``
* add official Python 3.12 support
* simplify count functionality in util module
* retire ``bitcount_lookup[256]`` table
* improve ``util.count_n()`` error messages
* avoid ``util`` module tests from being run more than once in
each call to ``bitarray.test()`` when called multiple times in
the same Python process
* improve testing
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-bitarray?expand=0&rev=31
- Update to 2.6.0:
* add data descriptions: `.nbytes`, `.padbits`, `.readonly`
* allow optional `endian` argument to be `None` when creating bitarrays
* fix type annotation for `canonical_decode()`, #178
* frozenbitarray's padbits are now guaranteed to be zero
* add tests
- Update to 2.5.1:
* optimize `.reverse()`, see #177
* allow negative (byte) indices in `.bytereverse()`
- Update to 2.5.0:
* add calculating of canonical Huffman codes `util.canonical_huffman()`
and decoding thereof `util.canonical_decode()`, see #173
* allow creating "Huffman codes" from frequency maps with a single symbol
in `util.huffman_code()` and `util.canonical_huffman()`, see #172
* allow bytes-like argument in `.frombytes()` and `.pack()` - previously,
the arguments were limited to the `bytes` object, see #174
* allow bytes-like arguments in `util.deserialize()`
* add official [pyodide](https://pyodide.org/) support
* add [DEFLATE decompression](../examples/puff/) example
* optimize `.bytereverse()`
* optimize `delslice()` for cases like `del a[1:17:2]` when `a` is large
* fix `examples/huffman/compress.py` to handle files with 0 or 1 characters,
see also #172
* add `skipIF` decorator for skipping tests
* add tests
- Update to 2.4.1:
* improve `resize()`, see #167
* optimize `copy_n()` by avoiding loops, #171
* `.bytereverse()` no longer sets unused pad bits to zero
OBS-URL: https://build.opensuse.org/request/show/1005512
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-bitarray?expand=0&rev=21
- Update to 2.3.0
* add optional `buffer` argument to `bitarray()` to import the buffer of
another object, #141, #146, see also: [buffer protocol](buffer.rst)
* update `.buffer_info()` to include: a read-only flag, an imported buffer
flag, and the number of buffer exports
* add optional start and stop arguments to `util.rindex()`
* add [memory-mapped file](../examples/mmapped-file.py) example
* ignore underscore (`_`) in string input, e.g. `bitarray('1100_0111')`
* add missing type hinting for new `.bytereverse()` arguments
* fix `.extend()` type annotations, #145
* avoid `.reverse()` using temporary memory
* make `.unpack()`, `util.serialize()`, `util.vl_encode()`
and `.__reduce__()` more memory efficient
* add and improve tests
- from version 2.2.5
* speedup `find_bit()` and `find_last()` using uint64 checking, this means
a speedup for `.find()`, `.index()`, `.search()` and `util.rindex()`
* add optional start and stop arguments to `.bytereverse()`
* add example to illustrate how
[unaligned copying](../examples/copy_n.py) works internally
* add documentation
* add tests
- from version 2.2.4
* use shift operations to speedup all unaligned copy operations, #142
* expose functionality to Python level only in debug mode for testing
* add and improve tests
- from version 2.2.3
* speedup `repeat()`, #136
* speedup shift operations, #139
* optimize slice assignment with negative step, e.g.: `a[::-1] = 1`
OBS-URL: https://build.opensuse.org/request/show/913102
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-bitarray?expand=0&rev=18
- Update to 2.1.1
* add type hinting (see PEP 484, 561) using stub (`.pyi`) files
- Update to 2.1.0
* add `.find()` method, see #122
* `.find()`, `.index()`, `.search()` and `.itersearch()` now all
except both (sub-) bitarray as well as bool items to be
searched for
* improve encode/decode error messages
* add [lexicographical permutations example](../examples/lexico.py)
- Update to 2.0.1
* update documentation
* improve some error messages
- Update to 2.0.0
* require more specific objects, int (0 or 1) or bool
* items are always returned as int 0 or 1
* remove `.length()` method (deprecated since 1.5.1 - use `len()`)
* in `.unpack()` the `one` argument now defaults to 0x01 (was 0xff)
* `.tolist()` now always returns a list of integers (0 or 1)
* fix frozenbitarray hash function, see #121
* fix frozenbitarray being mutable by `<<=` and `>>=`
* support sequence protocol in `.extend()` (and bitarray creation)
* improve OverflowError messages from `util.int2ba()`
* add [hexadecimal example](../examples/hexadecimal.py)
OBS-URL: https://build.opensuse.org/request/show/899584
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-bitarray?expand=0&rev=15
- Update to 1.9.2
* update pythoncapi_compat: Fix support with PyPy 3.7
- Update to 1.9.0
* add shift operations (``<<``, ``>>``, ``<<=``, ``>>=``)
* add ``bitarray.util.ba2base()`` and ``bitarray.util.base2ba()``,
- Update to 1.8.2
* fix crash caused by unsupported types in binary operations,
* speedup initializing or extending a bitarray from another
with different bit endianness.
* add formatting options to ``bitarray.util.pprint()``
* add and improve tests (all 291 tests run in less than half
a second on a modern machine)
- Update to 1.8.1
* moved implementation of and ``hex2ba()`` and ``ba2hex()``
to C-level
* add ``bitarray.util.parity()``
- Update to 1.8.0
* add ``bitarray.util.serialize()`` and
``bitarray.util.deserialize()``
* allow whitespace (ignore space and ``\n\r\t\v``) in input
strings; e.g. ``bitarray('01 11')`` or ``a += '10 00'``
* add ``bitarray.util.pprint()``
* When initializing a bitarray from another with different
bit endianness, e.g. ``a = bitarray('110', 'little')``
and ``b = bitarray(a, 'big')``, the buffer used to be
simply copied, with consequence that ``a == b`` would
result in ``False``. This is fixed now, that is
``a == b`` will always evaluate to ``True``.
* add test for loading existing pickle file (created using
bitarray 1.5.0)
OBS-URL: https://build.opensuse.org/request/show/884188
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-bitarray?expand=0&rev=13
- Update to 1.6.1
* use PyType_Ready for all types: bitarray, bitarrayiterator,
decodeiterator, decodetree, searchiterator.
- Update to 1.6.0
* add `decodetree` object, for speeding up consecutive calls
to `.decode()` and `.iterdecode()`, in particular when dealing
with large prefix codes.
* add optional parameter to `.tolist()` which changes the items
in the returned list to integers (0 or 1), as opposed to
Booleans.
* remove deprecated `bitdiff()`, which has been deprecated since
version 1.2.0, use `bitarray.util.count_xor()` instead
* drop Python 2.6 support.
* update license file.
OBS-URL: https://build.opensuse.org/request/show/846430
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-bitarray?expand=0&rev=11
- Update to 1.5.2:
* add PyType_Ready usage, issue #66
* speedup search() for bitarrays with length 1 in sparse bitarrays,
see issue #67
* add tests
* support signed integers in `util.ba2int()` and `util.int2ba()`,
see issue #85
* deprecate `.length()` in favor of `len()`
* Use `Py_ssize_t` for bitarray index. This means that on 32bit
systems, the maximun number of elements in a bitarray is 2 GBits.
We used to have a special 64bit index type for all architectures, but
this prevented us from using Python's sequence, mapping and number
methods, and made those method lookups slow.
* speedup slice operations when step size = 1 (if alignment allows
copying whole bytes)
* Require equal endianness for operations: `&`, `|`, `^`, `&=`, `|=`, `^=`.
This should have always been the case but was overlooked in the past.
* raise TypeError when tring to create bitarray from boolean
* This will be last release to still support Python 2.6 (which was retired
in 2013). We do NOT plan to stop support for Python 2.7 anytime soon.
OBS-URL: https://build.opensuse.org/request/show/830624
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-bitarray?expand=0&rev=4
* add PyType_Ready usage, issue #66
* speedup search() for bitarrays with length 1 in sparse bitarrays,
see issue #67
* add tests
* support signed integers in `util.ba2int()` and `util.int2ba()`,
see issue #85
* deprecate `.length()` in favor of `len()`
* Use `Py_ssize_t` for bitarray index. This means that on 32bit
systems, the maximun number of elements in a bitarray is 2 GBits.
We used to have a special 64bit index type for all architectures, but
this prevented us from using Python's sequence, mapping and number
methods, and made those method lookups slow.
* speedup slice operations when step size = 1 (if alignment allows
copying whole bytes)
* Require equal endianness for operations: `&`, `|`, `^`, `&=`, `|=`, `^=`.
This should have always been the case but was overlooked in the past.
* raise TypeError when tring to create bitarray from boolean
* This will be last release to still support Python 2.6 (which was retired
in 2013). We do NOT plan to stop support for Python 2.7 anytime soon.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-bitarray?expand=0&rev=7
- Update to 1.4.2:
* C-level:
- simplify pack/unpack code
- fix memory leak in `~` operation (bitarray_cpinvert)
* add official Python 3.9 support
* improve many docstrings
* add DeprecationWarning for `bitdiff()`
* add DeprecationWarning when trying to extend bitarrays
from bytes on Python 3 (`bitarrays(b'011')` and `.extend(b'110')`)
* C-level:
- rewrote `.fromfile()` and `.tofile()` implementation,
such that now the same code is used for Python 2 and 3.
The new implementation is more memoery efficient on
Python 3.
- use memcmp() in richcompare to shortcut EQ/NE, when
comparing two very large bitarrays for equality the
speedup can easily be 100x
- simplify how unpacking is handled
* add more tests
* add `.clear()` method (Python 3.3 added this method to lists)
* avoid overallocation when bitarray objects are initially created
* raise BufferError when resizing bitarrays which is exporting buffers
* add example to study the resize() function
* improve some error messages
* raise `NotImplementedError` with (useful message) when trying to call
the `.fromstring()` or `.tostring()` methods, which have been removed
in the last release
OBS-URL: https://build.opensuse.org/request/show/824394
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-bitarray?expand=0&rev=3
* C-level:
- simplify pack/unpack code
- fix memory leak in `~` operation (bitarray_cpinvert)
* add official Python 3.9 support
* improve many docstrings
* add DeprecationWarning for `bitdiff()`
* add DeprecationWarning when trying to extend bitarrays
from bytes on Python 3 (`bitarrays(b'011')` and `.extend(b'110')`)
* C-level:
- rewrote `.fromfile()` and `.tofile()` implementation,
such that now the same code is used for Python 2 and 3.
The new implementation is more memoery efficient on
Python 3.
- use memcmp() in richcompare to shortcut EQ/NE, when
comparing two very large bitarrays for equality the
speedup can easily be 100x
- simplify how unpacking is handled
* add more tests
* add `.clear()` method (Python 3.3 added this method to lists)
* avoid overallocation when bitarray objects are initially created
* raise BufferError when resizing bitarrays which is exporting buffers
* add example to study the resize() function
* improve some error messages
* raise `NotImplementedError` with (useful message) when trying to call
the `.fromstring()` or `.tostring()` methods, which have been removed
in the last release
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-bitarray?expand=0&rev=5
- Update to version 1.3.0
* add `bitarray.util.make_endian()`
* `util.ba2hex()` and `util.hex2ba()` now also support
little-endian
* add `bitarray.get_default_endian()`
* made first argument of initializer a positional-only parameter
* remove `.fromstring()` and `.tostring()` methods, these have
been deprecated 8 years ago, since version 0.4.0
* add `__all__` in `bitarray/__init__.py`
* drop Python 3.3 and 3.4 support
- Update to version 1.2.2
* `util.ba2hex` now always return a string object (instead of
bytes object for Python 3), see issue #94
* `util.hex2ba` allows a unicode object as input on Python 2
* Determine 64-bitness of interpreter in a cross-platform
fashion #91, in order to better support PyPy
OBS-URL: https://build.opensuse.org/request/show/819060
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-bitarray?expand=0&rev=3
# tests don't run from within the source directory
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.