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 details)

Uploaded Source

Built Distributions

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

Uploaded Source

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

Uploaded Python 2 Python 3

File details

Details for the file pyben-0.3.2.tar.gz.

File metadata

  • Download URL: pyben-0.3.2.tar.gz
  • Upload date:
  • Size: 81.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.25.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.62.3 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.2

File hashes

Hashes for pyben-0.3.2.tar.gz
Algorithm Hash digest
SHA256 523eeebda9fbd30b523cac27d1eb83896f18599e7efee6a5319b682585f3ef78
MD5 023a674214f66d55e4513d2f3f4af864
BLAKE2b-256 ba415eea56d283da685a2eb4e9529f2245f16a330af22fbadfddea51f8688a1b

See more details on using hashes here.

File details

Details for the file pyben-0.3.2-py3.10.egg.

File metadata

  • Download URL: pyben-0.3.2-py3.10.egg
  • Upload date:
  • Size: 22.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.25.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.62.3 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.2

File hashes

Hashes for pyben-0.3.2-py3.10.egg
Algorithm Hash digest
SHA256 192cc709093b74038e82972d9592c6865acf23ad0f86b92fb9a787a53e0d5494
MD5 7c26ed991acb8e1f69c2e252025e5362
BLAKE2b-256 bc3fc47622637f8ecaf064d084e0e52cc2763f17d1439732c69433df37606c9f

See more details on using hashes here.

File details

Details for the file pyben-0.3.2-py2.py3-none-any.whl.

File metadata

  • Download URL: pyben-0.3.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 15.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.25.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.62.3 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.2

File hashes

Hashes for pyben-0.3.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 b3ed47ccfbaee443e268ac1a4721b8e211f282f45caa21eb0584cb3865789914
MD5 fb2e5612e16d2ec3ba879d28f08a0053
BLAKE2b-256 9688a9dee49a0ea8e9abb14c688a0a38dcde1c6670fb5ce0c8ed74ae0057f27b

See more details on using hashes here.

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