Metadata-Version: 2.1
Name: bitstring
Version: 3.1.9
Summary: Simple construction, analysis and modification of binary data.
Home-page: https://github.com/scott-griffiths/bitstring
Download-URL: https://pypi.python.org/pypi/bitstring/
Author: Scott Griffiths
Author-email: dr.scottgriffiths@gmail.com
License: The MIT License: http://www.opensource.org/licenses/mit-license.php
Platform: all
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Topic :: Software Development :: Libraries :: Python Modules
License-File: LICENSE



.. image:: /doc/bitstring_logo_small.png

**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>

