Simple construction, analysis and modification of binary data.
Reason this release was yanked:
Some significant regressions found.
Project description
bitstring is a pure Python module designed to help make the creation and analysis of binary data as simple and natural as possible.
Bitstrings can be constructed from integers (big and little endian), hex, octal, binary, strings or files. They can be sliced, joined, reversed, inserted into, overwritten, etc. with simple functions or slice notation. They can also be read from, searched and replaced, and navigated in, similar to a file or stream.
bitstring is open source software, and has been released under the MIT licence.
This module works in both Python 2.7 and Python 3.6+.
Installation
Probably all you need to do is:
pip install bitstring
Documentation
The manual for the bitstring module is available here <https://bitstring.readthedocs.org>. It contains a walk-through of all the features and a complete reference section.
It is also available as a PDF at <https://readthedocs.org/projects/bitstring/downloads/pdf/latest/>.
Simple Examples
Creation:
>>> a = BitArray(bin='00101') >>> b = Bits(a_file_object) >>> c = BitArray('0xff, 0b101, 0o65, uint:6=22') >>> d = pack('intle:16, hex=a, 0b1', 100, a='0x34f') >>> e = pack('<16h', *range(16))
Different interpretations, slicing and concatenation:
>>> a = BitArray('0x1af') >>> a.hex, a.bin, a.uint ('1af', '000110101111', 431) >>> a[10:3:-1].bin '1110101' >>> '0b100' + 3*a BitArray('0x835e35e35, 0b111')
Reading data sequentially:
>>> b = BitStream('0x160120f') >>> b.read(12).hex '160' >>> b.pos = 0 >>> b.read('uint:12') 352 >>> b.readlist('uint:12, bin:3') [288, '111']
Searching, inserting and deleting:
>>> c = BitArray('0b00010010010010001111') # c.hex == '0x1248f' >>> c.find('0x48') (8,) >>> c.replace('0b001', '0xabc') >>> c.insert('0b0000', pos=3) >>> del c[12:16]
Unit Tests
The 500+ unit tests should all pass for Python 2.7 and later. To run them, from the test directory run:
python -m unittest discover
The bitstring module has been released as open source under the MIT License. Copyright (c) 2006 Scott Griffiths
For more information see the project’s homepage on GitHub: <https://github.com/scott-griffiths/bitstring>
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for bitstring-3.1.8-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b736320a2cfc6f009cd364dbd4346f67391637dabfa2bfa6e8299a80c298619 |
|
MD5 | 915d037494c567be884a341b8d974878 |
|
BLAKE2b-256 | 138f8fe4131f9a5feb2228789ca2130c776b3685fbb63bcefb2dec2d36aae6a9 |
Hashes for bitstring-3.1.8-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3ae43c75c1839e1734b37eceba69353eb60dad1d4d7b3a07641b43fd44f02d65 |
|
MD5 | f694dd9dd422f25b3c895984e6f40251 |
|
BLAKE2b-256 | 1314a5bfb4fad1e58d6ca2609b2e2aed943da03ecd0f91228dd563df2c006971 |