Skip to main content

Simple bencode library for python

Project description

pybencode

Simple bencode library for python

license

Requirements

  • python 3.6, 3.7, 3.8, 3.9

Installation

pip install cpyberry-pybencode

Usage

import pybencode


pybencode.encode(256)  # return b"i256e"

pybencode.encode(b"neko")  # return b"4:neko"

pybencode.encode([1, 2, 3])  # return b"li1ei2ei3ee"

pybencode.encode({1: b"kuro", 2: b"sakura"})
# return b"di1e4:kuroi2e6:sakurae"

Nested lists and dicts can also be encoded.

pybencode.encode([b"cat", 1024, [b"meow", b"woof"]])
# return b"l3:cati1024el4:meow4:woofee"

pybencode.encode({1: {b"yuki": b"ghost"}})
# return b"di1ed4:yuki5:ghostee"

Decode can do the opposite of the above.

Similarly, you can decode nested list and dict.

pybencode.decode(b"5:night")  # return "night"
pybencode.decode(b"i128e")  # return 128

python.decode(b"di1ed4:yuki5:ghostee")
# return {1: {b"yuki": b"ghost"}}

python.decode(b"l3:cati1024el4:meow4:woofee")
# return [b"cat", 1024, [b"meow", b"woof"]]

If you want to encode the string to bencode format, you need to encode it with any character code first.

For example

string = "coppelia"
pybencode.encode(string.encode("latin-1"))

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

cpyberry-pybencode-2.0.1.tar.gz (8.5 kB view hashes)

Uploaded Source

Built Distribution

cpyberry_pybencode-2.0.1-py3-none-any.whl (8.4 kB view hashes)

Uploaded 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