a1354970e2- update to 3.5.2: * optimize util.random_p() by also using bitwise AND in final step * fix DeprecationWarning regarding u type code * add verification tests for internals of util.random_p() * optimize util.random_p() for n < 100 * add Random Bitarrays documentation * add statistical tests for random functions
devel
Dirk Mueller2025-07-22 09:53:24 +00:00
d9199dfe94Accepting request 1290225 from devel:languages:pythonAna Guerrero2025-07-06 15:07:44 +00:00
955952485e- Update to 3.4.3 * 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()Markéta Machová2025-07-03 12:30:22 +00:00
e10f4a5cb4Accepting request 1283506 from devel:languages:pythonAna Guerrero2025-06-06 20:43:30 +00:00
9a64816d18- Update to 3.4.2 * 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()Markéta Machová2025-05-30 08:23:00 +00:00
ee0767129eAccepting request 1278335 from devel:languages:pythonAna Guerrero2025-05-20 07:38:14 +00:00
99805b79f9- Update to version 3.4.1 * add pyproject.toml, see #233 * implement bits2bytes() in C. * optimize delslice() when step is larger than about 5. * consistently name *_span() and *_range() in C for invert, set and count. * organize and add tests.Matej Cepl2025-05-19 07:49:03 +00:00
9d11ad39e6Accepting request 1277385 from devel:languages:pythonAna Guerrero2025-05-14 15:02:00 +00:00
80822caf47- Update to 3.4.0 * 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 testsMarkéta Machová2025-05-14 10:17:20 +00:00
4ce36c7473Accepting request 1274384 from devel:languages:pythonAna Guerrero2025-05-05 20:28:37 +00:00
137bc87d17- Update to 3.3.2 * fix off-by-one-error in check for length of count argument in util.canonical_decode() * simplify util.int2ba() * add tests * add [masked indexing example](../examples/masked.py) * add [tricks example](../examples/tricks.py)Markéta Machová2025-05-05 09:12:31 +00:00
9a634f45efAccepting request 1272311 from devel:languages:pythonAna Guerrero2025-04-24 15:26:00 +00:00
3d35867c0e- 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 exampleDirk Mueller2025-04-24 06:53:08 +00:00
50f2894b1bAccepting request 1255999 from devel:languages:pythonAna Guerrero2025-03-25 21:13:05 +00:00
83983118f1- Update to 3.2.0 * 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 commentsMarkéta Machová2025-03-25 15:04:06 +00:00
7c1666c044Accepting request 1218794 from devel:languages:pythonAna Guerrero2024-10-28 14:23:05 +00:00
47b4d4db80- 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 typosDirk Mueller2024-10-28 11:36:24 +00:00
f402fddac8Accepting request 1217238 from devel:languages:pythonAna Guerrero2024-10-23 19:11:02 +00:00
afbafa38d1Accepting request 1137632 from devel:languages:pythonAna Guerrero2024-01-09 19:49:35 +00:00
16ca85d60a- update to 2.9.2: * optimize initialization from strings by not constantly resizing buffer * optimize util.hex2ba() and util.base2ba() by avoiding unnecessary copies * optimize util.base2ba() and util.ba2base() for n=16 (hexadecimal)Dirk Mueller2024-01-08 20:42:48 +00:00
f91cad9310Accepting request 1135240 from devel:languages:pythonAna Guerrero2023-12-28 22:01:04 +00:00
06e752e37d- 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=...)` insteadDirk Mueller2023-12-27 09:31:03 +00:00
98a78b2bf3Accepting request 1133923 from devel:languages:pythonAna Guerrero2023-12-19 22:15:52 +00:00
cc0ffcd814- update to 2.8.5: * 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 testsDirk Mueller2023-12-11 22:14:33 +00:00
bf67d8c9ecAccepting request 1131186 from devel:languages:pythonAna Guerrero2023-12-06 22:47:57 +00:00
e775533eaa- update to 2.8.4: * simplify `copy_n() (remove special cases) * add word shift example C program * and simplify `shift_r8()` * improve documentation and testingDirk Mueller2023-12-05 17:42:37 +00:00
160662bd7cAccepting request 1125860 from devel:languages:pythonAna Guerrero2023-11-14 20:43:32 +00:00
8065822b6e- update to 2.8.3: * ensure readonly attribute is set correctly when creating new objects * optimize sparse bitarray compression for raw block type * improve hash functions in Bloom filter exampleDirk Mueller2023-11-14 12:07:11 +00:00
a578ced37bAccepting request 1115784 from devel:languages:pythonAna Guerrero2023-10-05 18:04:57 +00:00
6b6ced3745- 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:Dirk Mueller2023-10-05 09:34:21 +00:00
a977a5170d- update to 2.8.1: * use reconstructor function for pickling * simplify implementation of `.reverse() * allow integer sequence indexing <indexing.rst>__ by list of indices, * add masked indexing <indexing.rst>__ by bitarray masks, * improve .bytereverse()` docstring, see issueDirk Mueller2023-08-09 07:50:09 +00:00
f9df6892e4- update to 2.7.5: * fix for pypy3.9-v7.3.11 * register `bitarray as abc.MutableSequence` * improve documentation regarding type when indexing single * bitarray itemsDirk Mueller2023-06-11 11:52:35 +00:00
accc2f61a0- update to 2.7.3: * 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 testingDirk Mueller2023-03-06 21:24:53 +00:00
4c63298d18- update to 2.7.2: * speedup all count functionality by using `__builtin_popcountll when available * add popcount64() to bitarray.h - we assume now that uint64_t` is always available * improve testingDirk Mueller2023-02-15 14:00:02 +00:00
0e56603e24- update to 2.4.0: * enable building wheels for multiple platforms and Python versions using pypa/cibuildwheel, see #165 and #170 (thanks Brian Thorne, @hardbyte) * use setuptools instead of distutils in setup.py, #168 * add missing type hinting for .count() step argumentDirk Mueller2022-03-27 14:19:08 +00:00
a39b62c372Accepting request 913269 from devel:languages:python
Richard Brown
2021-08-20 14:57:54 +00:00
07050c5702Accepting request 913102 from home:glaubitz:branches:devel:languages:pythonMarkéta Machová2021-08-20 07:27:59 +00:00
afc8f6e520- Update to 1.5.3: * add optional index parameter to .index() to invert single bit * fix sys.getsizeof(bitarray) by adding .__sizeof__(), see issue #100Steve Kowalik2020-09-30 04:37:27 +00:00
584e1bd76e- 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.Steve Kowalik2020-08-31 05:04:02 +00:00
5541a4696c- 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 releaseSteve Kowalik2020-08-05 01:01:05 +00:00