All Projects → fuzeman → bencode.py

fuzeman / bencode.py

Licence: other
Simple bencode parser (for Python 2, Python 3 and PyPy)

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to bencode.py

BencodeNET
.NET library for encoding/decoding bencode and reading/writing torrent files
Stars: ✭ 133 (+375%)
Mutual labels:  bencode, bencode-parser
bencode
Bencode Input/Output Streams for Java
Stars: ✭ 49 (+75%)
Mutual labels:  bencode, bencode-parser
bencoder.pyx
A fast bencode implementation in Cython
Stars: ✭ 26 (-7.14%)
Mutual labels:  bencode
bencode
A netstring and bencode implementation for Clojure.
Stars: ✭ 44 (+57.14%)
Mutual labels:  bencode
bencode online
Bencode & bdecode in your browser
Stars: ✭ 24 (-14.29%)
Mutual labels:  bencode
bencode
PHP Bencode (BitTorrent) Encoder/Decoder
Stars: ✭ 19 (-32.14%)
Mutual labels:  bencode
php-bencode
C++ PHP extension which can boost the process of encoding and decoding of Bencode.
Stars: ✭ 16 (-42.86%)
Mutual labels:  bencode
torrentool
The tool to work with torrent files.
Stars: ✭ 96 (+242.86%)
Mutual labels:  bencode
bento
🍱 A fast, correct, pure-Elixir library for reading and writing Bencoded metainfo (.torrent) files.
Stars: ✭ 71 (+153.57%)
Mutual labels:  bencode

bencode.py

https://img.shields.io/pypi/v/bencode.py.svg?style=flat-square https://img.shields.io/travis/fuzeman/bencode.py.svg?style=flat-square https://img.shields.io/coveralls/fuzeman/bencode.py/master.svg?style=flat-square

Simple bencode parser (for Python 2, Python 3 and PyPy), forked from the bencode package by Thomas Rampelberg.

Usage

Encode:

>>> import bencodepy

>>> bencodepy.encode({'title': 'Example'})
b'd5:title7:Examplee'

>>> bencodepy.encode(12)
b'i12e'

Decode:

>>> import bencodepy

>>> bencodepy.decode('d5:title7:Examplee')
{b'title': b'Example'}

>>> bencodepy.decode('i12e')
12

Decode to UTF-8:

>>> import bencodepy

>>> bc = bencodepy.Bencode(
    encoding='utf-8'
)

>>> bc.decode('d5:title7:Examplee')
{'title': 'Example'}

bencode

(legacy, backwards-compatible package)

This package will continue to be provided for backwards-compatibility, but upgrading to bencodepy is recommended for more reliable decoding results.

Under-the-hood this just provides proxies to a Bencode instance created with:

Bencode(
    encoding='utf-8',
    encoding_fallback='value',
    dict_ordered=True,
    dict_ordered_sort=True
)

Encode:

>>> import bencode

>>> bencode.encode({'title': 'Example'})
'd5:title7:Examplee'

>>> bencode.encode(12)
'i12e'

Decode:

>>> import bencode

>>> bencode.decode('d5:title7:Examplee')
OrderedDict([(u'title', u'Example')])

>>> bencode.decode('i12e')
12

API

bencodepy.Bencode(encoding=None, encoding_fallback=None, dict_ordered=False, dict_ordered_sort=False)

Create instance

  • encoding
    Encoding to decode strings with (or None for binary)
  • encoding_fallback
    Fallback to binary when decoding fails on the specified string types.
    • key - dictionary keys
    • value - values
    • all - always fallback to binary
    • None - always raise decoding errors
  • dict_ordered
    Use OrderedDict
  • dict_ordered_sort
    Ensure OrderedDict is sorted

Methods:

  • decode(value)
    Decode bencode string value.
  • encode(value)
    Encode value into a bencode string.
  • read(fd)
    Decode bencode from file or path fd.
  • write(data, fd)
    Encode data to file or path fd.

bencodepy.BencodeDecoder(encoding=None, encoding_fallback=None, dict_ordered=False, dict_ordered_sort=False)

Create decoder

  • encoding
    Encoding to decode strings with (or None for binary)
  • encoding_fallback
    Fallback to binary when decoding fails on the specified string types.
    • key - dictionary keys
    • value - values
    • all - always fallback to binary
    • None - always raise decoding errors
  • dict_ordered
    Use OrderedDict
  • dict_ordered_sort
    Ensure OrderedDict is sorted

Methods:

  • decode(value)
    Decode bencode string value.

bencodepy.BencodeEncoder()

Create encoder

Methods:

  • encode(value)
    Encode value into a bencode string.

bencodepy.bencode(value)

bencodepy.encode(value)

Encode value into a bencode string with the default encoder.

bencodepy.bdecode(value)

bencodepy.decode(value)

Decode bencode string value with the default decoder.

bencodepy.bread(fd)

Decode bencode from file or path fd with the default decoder.

bencodepy.bwrite(data, fd)

Encode data to file or path fd with the default encoder.

bencode

bencode.bencode(value)

bencode.encode(value)

Encode value into the bencode format.

bencode.bdecode(value)

bencode.decode(value)

Decode bencode formatted string value.

bencode.bread(fd)

Read bencode formatted string from file or path fd.

bencode.bwrite(data, fd)

Write data as a bencode formatted string to file or path fd.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].