Skip to main content

Small library for encoding/decoding bencode data. Pyben Enables fast and easy encoding and decoding of bencoded data.

Project description

Pyben v0.3.2

Small library for encoding/decoding bencode data. Supports Unicode pathnames as of PyBen 3.0. Pyben Enables fast and easy encoding and decoding of bencoded data.

PyBen


GitHub repo size GitHub contributors PyPI - Downloads Codacy Badge Codacy Badge codecov

Prerequisites

Python v3.6+

Installing PyBen

To install PyBen, follow these steps:

Using pip:

pip install pyben

Using git:

git clone https://github.com/alexpdev/pyben.git

Using PyBen

The API is intentionally designed to mimic Python's json and pickle modules.

>>> import os
>>> import pyben
>>> file_path = "path/to/encoded.file"
>>> data = {"item1": ["item2", 3, [4], {5: "item6"}]}
>>> encoded = pyben.dumps(data)
>>> encoded
... b'd5:item1l5:item2i3eli4eedi5e5:item6eee'
>>> decoded = pyben.loads(encoded)
>>> decoded
... {'item1': ['item2', 3, [4], {5: 'item6'}]}
>>> decoded == data
... True

One key difference is that the 'load' and 'dump' methods accept as arguments, string paths or path-like objects as well as an open BytesIO object.

For Example this:

>>> with open(file_path, "wb") as fd:
>>>    pyben.dump(decoded, fd)
>>> os.path.exists(file_path)
... True
>>> with open(file_path, "rb") as fd:
>>>    decoded_file = pyben.load(fd)
>>> decoded_file == decoded == data
... True

is the same as doing following.

>>> pyben.dump(data, file_path)
>>> os.path.exists(file_path)
... True
>>> decoded_file = pyben.load(file_path)
>>> decoded_file == decoded == data
... True

The full API includes many other functions and classes as well. See docs for more full API.

License

This project uses the following license: Apache 2.0

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

pyben-0.3.2.tar.gz (81.1 kB view hashes)

Uploaded Source

Built Distributions

pyben-0.3.2-py3.10.egg (22.2 kB view hashes)

Uploaded Source

pyben-0.3.2-py2.py3-none-any.whl (15.7 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page