Metadata-Version: 2.1
Name: bpack
Version: 1.1.0
Summary: Binary data structures (un-)packing library
Author-email: Antonio Valentino <antonio.valentino@tiscali.it>
License: Apache-2.0
Project-URL: homepage, https://github.com/avalentino/bpack
Project-URL: documentation, https://bpack.readthedocs.io
Project-URL: repository, https://github.com/avalentino/bpack.git
Project-URL: changelog, https://github.com/avalentino/bpack/blob/main/docs/release_notes.rst
Keywords: binary,struct,descriptor,declarative,bit,unpack,pack
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Utilities
Requires-Python: >=3.7
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: typing-extensions ; python_version < "3.9"
Provides-Extra: ba
Requires-Dist: bitarray >=1.5.1 ; extra == 'ba'
Provides-Extra: bs
Requires-Dist: bitstruct ; extra == 'bs'
Provides-Extra: docs
Requires-Dist: sphinx ; extra == 'docs'
Requires-Dist: sphinx-rtd-theme ; extra == 'docs'
Provides-Extra: np
Requires-Dist: numpy ; extra == 'np'
Provides-Extra: test
Requires-Dist: bitarray >=1.5.1 ; extra == 'test'
Requires-Dist: bitstruct ; extra == 'test'
Requires-Dist: numpy ; extra == 'test'
Requires-Dist: pytest ; extra == 'test'

Binary data structures (un-)Packing library
===========================================

:Copyright: 2020-2023, Antonio Valentino <antonio.valentino@tiscali.it>

.. badges

|PyPI Status| |GHA Status| |Documentation Status|

.. |PyPI Status| image:: https://img.shields.io/pypi/v/bpack.svg
    :target: https://pypi.org/project/bpack
    :alt: PyPI Status
.. |GHA Status| image:: https://github.com/avalentino/bpack/workflows/Build/badge.svg
    :target: https://github.com/avalentino/bpack/actions
    :alt: GitHub Actions Status
.. |Documentation Status| image:: https://readthedocs.org/projects/bpack/badge/?version=latest
    :target: https://bpack.readthedocs.io/en/latest/?badge=latest
    :alt: Documentation Status

.. description

The *bpack* Python package provides tools to describe and encode/decode
binary data.

Binary data are assumed to be organized in *records*, each composed by a
sequence of fields. Fields are characterized by a known size, offset
(w.r.t. the beginning of the record) and datatype.

The package provides classes and functions that can be used to:

* describe binary data structures in a declarative way (structures can
  be specified up to the bit level)
* automatically generate encoders/decoders for a specified data descriptor

Encoders/decoders (*backends*) rely on well known Python packages like:

* |struct| (form the standard library)
* bitstruct_ (optional)
* numpy_ (optional)
* bitarray_ (optional) - partial implementation


.. _struct: https://docs.python.org/3/library/struct.html
.. _bitstruct: https://github.com/eerimoq/bitstruct
.. _numpy: https://numpy.org
.. _bitarray: https://github.com/ilanschnell/bitarray

.. local-definitions

.. |struct| replace:: struct_
