- 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