Skip to main content

Bencode parser

Project description

benparse

benparse is a bencode parser for Python 3. It is capable of reading and creating bencoded files such as torrents

Features

  • Syntax is similar to built-in modules such as json and pickle
  • Has an optional strict mode that will raise an error when it encounters non-fatal errors such as out-of-order dict keys or integers with leading zeros. This ensures that "round-tripping" bencoded data (loading bencoded data and then dumping it back to bencode) will never caused unexpected changes
  • Able to change the character encoding used to encode/decode strings
  • Fully typed

Usage

Complete usage documentation and examples are available here

# Load a bencoded file
with open('linux_distro.torrent', 'rb') as file:
    torrent_dict = benparse.load(file)

# Make changes
torrent_dict[b'announce'] = b'http://mirror.example.org:6969/announce'

# Save a Python object as a bencoded file
with open('linux_distro.torrent', 'wb') as file:
    benparse.dump(torrent_dict, file)

Requirements

Installation

Install from PyPI:

pip3 install benparse

Install from source:

git clone https://gitlab.com/adralioh/benparse.git
pip3 install ./benparse

Tests

Tests are run using the built-in unittest module, and Coverage.py is used to measure code coverage

Run tests without measuring coverage:

python3 -m unittest discover tests

Run tests and measure coverage:

coverage run -m unittest discover tests

View the results:

coverage report

Generate a detailed report, outputted to ./htmlcov:

coverage html

Building documentation

Sphinx is used to build documentation

Build requirements:

How to build:

cd docs
make html

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

benparse-1.0.2.tar.gz (11.2 kB view hashes)

Uploaded source

Built Distribution

benparse-1.0.2-py3-none-any.whl (26.4 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page