Skip to main content

Python 3 bencoding implementation

Project description

Python 3 bencoding library

Build Status

Python 3 bytearray bencoding library.

Encode all data into byte. Useful for networking.

Example

>>> from bencode import bencode, bdecode


>>> foo = bencode({"foo": [0, -1, 2, "3", {"4": 5}], "bar": {"baz": 1}})
>>> print(foo)
b'd3:bard3:bazi1ee3:fooli0ei-1ei2e1:3d1:4i5eeee'

>>> bar = bdecode(foo)
>>> print(bar)
{b'bar': {b'baz': 1}, b'foo': [0, -1, 2, b'3', {b'4': 5}]}

decoder for bdecode

Optional argument in bdecode function, provide decode bytes to another types. It can be helpful for decode dict key into strings.

decoder is a callback function with arguments: field_type, value

  • field_type str, possible values: "key", "value";
  • value bytes.
>>> def custom_decoder(field_type, value):
...     if field_type == "key":
...         return str(value, "ascii")
...     elif field_type == "value":
...         return str(value, "utf-8")
...     else:
...         raise Exception("'field_type' can pass only 'key' and 'value' values")
...     

>>> bar = bdecode(foo, decoder=custom_decoder)
>>> print(bar)
{'bar': {'baz': 1}, 'foo': [0, -1, 2, '3', {'4': 5}]}

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

py3-bencode-0.0.3.tar.gz (2.7 kB view details)

Uploaded Source

Built Distribution

py3_bencode-0.0.3-py3-none-any.whl (15.3 kB view details)

Uploaded Python 3

File details

Details for the file py3-bencode-0.0.3.tar.gz.

File metadata

  • Download URL: py3-bencode-0.0.3.tar.gz
  • Upload date:
  • Size: 2.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.1

File hashes

Hashes for py3-bencode-0.0.3.tar.gz
Algorithm Hash digest
SHA256 154c08a9014c563df1495d41992c587e594de9a45ef745a9554035830541ea9b
MD5 442cff4be09ff88bc310ce966553090c
BLAKE2b-256 cbd9ffa41e93662879e1f1592df5244337dda783f4d871bbf6e531d611d65f7a

See more details on using hashes here.

File details

Details for the file py3_bencode-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: py3_bencode-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 15.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.1

File hashes

Hashes for py3_bencode-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ac451a07a712ebbeb5bf9b56f0dfbb9196dff86cdba1d519c478e8794d6f0ef2
MD5 dd23d6914098c7e99814fbb53467abd0
BLAKE2b-256 e7dda1fa118566f27359cf4b38fbe0bcb865427379047e254a1bafc751e75b1b

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