Socket
Socket
Sign inDemoInstall

PyBencoder3

Package Overview
Dependencies
0
Maintainers
1
Alerts
File Explorer

Install Socket

Detect and block malicious and high-risk dependencies

Install

    PyBencoder3

Module to work with bencoded strings.


Maintainers
1

Readme

PyBencoder - your bencoded strings module

What is a Bencoded String?

Bencode (pronounced like B encode) is the encoding used by the peer-to-peer file sharing system BitTorrent for storing and transmitting loosely structured data.

For more info on bencoding check out http://en.wikipedia.org/wiki/Bencode/.

It provides:

  • decoding of the different bencoded elements
  • encoding of the allowed types (byte strings, integers, lists, and dictionaries).

Requirements

Requires Python 3 or later

Installation

python setup.py install

To run test suite:

python setup.py test

Usage

Import the module

from pybencoder.bencoder import PyBencoder

Encoding

Encoding is very easy to do. Just pass as an argument your data to encode method. It will automagically call the right encoder for you.

ben = PyBencoder()

ben.encode(123) # encode an integer 'i123e' ben.encode('123') # encode a string '3:123' ben.encode([1, 2, 3]) # encode a list 'li1ei2ei3ee' ben.encode([1, 2, [ 4, 5]]) # encode a slightly more complex list 'li1ei2eli4ei5eee' ben.encode({ 'one': 1, 'two': 2, 'three': 3 }) # encode a dictionary 'd5:threei3e3:twoi2e3:onei1ee'

Decoding

Decoding is also easy to deal with. Just pass the bencoded string to decode method. Two mentions:

  • the first char of your bencoded string must be actually bencoded data, no garbage is allowed
  • at the end of the bencoded string it might be garbage data; after the extraction, you can also retrieve it

ben = PyBencoder()

ben.decode('i123e') # decode an integer 123 ben.decode('i123esomeothergarbagedata') # decode an integer with garbage data at the end ben.get_left() # gets what's left -> 'someothergarbagedata'

ben.decode('3:123somegarbage') # decode a 3 chars string

ben.decode('li1ei2eli4ei5eee') # decode a list [1, 2, [4, 5]]

Keywords

FAQs


Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc