bencode.py
==========
.. image:: https://img.shields.io/pypi/v/bencode.py.svg?style=flat-square
:target: https://pypi.python.org/pypi/bencode.py
.. image:: https://img.shields.io/travis/fuzeman/bencode.py.svg?style=flat-square
:target: https://travis-ci.org/fuzeman/bencode.py
.. image:: https://img.shields.io/coveralls/fuzeman/bencode.py/master.svg?style=flat-square
:target: https://coveralls.io/github/fuzeman/bencode.py
Simple bencode parser (for Python 2, Python 3 and PyPy), forked from the bencode__ package by Thomas Rampelberg.
__ https://pypi.python.org/pypi/bencode
Usage
-----
**Encode:**
.. code-block:: python
>>> import bencodepy
>>> bencodepy.encode({'title': 'Example'})
b'd5:title7:Examplee'
>>> bencodepy.encode(12)
b'i12e'
**Decode:**
.. code-block:: python
>>> import bencodepy
>>> bencodepy.decode('d5:title7:Examplee')
{b'title': b'Example'}
>>> bencodepy.decode('i12e')
12
**Decode to UTF-8:**
.. code-block:: python
>>> import bencodepy
>>> bc = bencodepy.Bencode(
encoding='utf-8'
)
>>> bc.decode('d5:title7:Examplee')
{'title': 'Example'}
:code:`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:
.. code-block:: python
Bencode(
encoding='utf-8',
encoding_fallback='value',
dict_ordered=True,
dict_ordered_sort=True
)
**Encode:**
.. code-block:: python
>>> import bencode
>>> bencode.encode({'title': 'Example'})
'd5:title7:Examplee'
>>> bencode.encode(12)
'i12e'
**Decode:**
.. code-block:: python
>>> 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.
:code:`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``.
Raw data
{
"_id": null,
"home_page": "https://github.com/fuzeman/bencode.py",
"name": "bencode.py",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "bittorrent,bencode,bdecode",
"author": "Dean Gardiner",
"author_email": "me@dgardiner.net",
"download_url": "https://files.pythonhosted.org/packages/e8/6f/1fc1f714edc73a9a42af816da2bda82bbcadf1d7f6e6cae854e7087f579b/bencode.py-4.0.0.tar.gz",
"platform": "",
"description": "bencode.py\r\n==========\r\n\r\n.. image:: https://img.shields.io/pypi/v/bencode.py.svg?style=flat-square\r\n :target: https://pypi.python.org/pypi/bencode.py\r\n\r\n.. image:: https://img.shields.io/travis/fuzeman/bencode.py.svg?style=flat-square\r\n :target: https://travis-ci.org/fuzeman/bencode.py\r\n\r\n.. image:: https://img.shields.io/coveralls/fuzeman/bencode.py/master.svg?style=flat-square\r\n :target: https://coveralls.io/github/fuzeman/bencode.py\r\n\r\nSimple bencode parser (for Python 2, Python 3 and PyPy), forked from the bencode__ package by Thomas Rampelberg.\r\n\r\n__ https://pypi.python.org/pypi/bencode\r\n\r\n\r\nUsage\r\n-----\r\n\r\n**Encode:**\r\n\r\n.. code-block:: python\r\n\r\n >>> import bencodepy\r\n\r\n >>> bencodepy.encode({'title': 'Example'})\r\n b'd5:title7:Examplee'\r\n\r\n >>> bencodepy.encode(12)\r\n b'i12e'\r\n\r\n**Decode:**\r\n\r\n.. code-block:: python\r\n\r\n >>> import bencodepy\r\n\r\n >>> bencodepy.decode('d5:title7:Examplee')\r\n {b'title': b'Example'}\r\n\r\n >>> bencodepy.decode('i12e')\r\n 12\r\n\r\n**Decode to UTF-8:**\r\n\r\n.. code-block:: python\r\n\r\n >>> import bencodepy\r\n\r\n >>> bc = bencodepy.Bencode(\r\n encoding='utf-8'\r\n )\r\n\r\n >>> bc.decode('d5:title7:Examplee')\r\n {'title': 'Example'}\r\n\r\n:code:`bencode`\r\n************************************************\r\n*(legacy, backwards-compatible package)*\r\n\r\nThis package will continue to be provided for backwards-compatibility, but upgrading to ``bencodepy`` is recommended for more reliable decoding results.\r\n\r\nUnder-the-hood this just provides proxies to a ``Bencode`` instance created with:\r\n\r\n.. code-block:: python\r\n\r\n Bencode(\r\n encoding='utf-8',\r\n encoding_fallback='value',\r\n dict_ordered=True,\r\n dict_ordered_sort=True\r\n )\r\n\r\n**Encode:**\r\n\r\n.. code-block:: python\r\n\r\n >>> import bencode\r\n\r\n >>> bencode.encode({'title': 'Example'})\r\n 'd5:title7:Examplee'\r\n\r\n >>> bencode.encode(12)\r\n 'i12e'\r\n\r\n**Decode:**\r\n\r\n.. code-block:: python\r\n\r\n >>> import bencode\r\n\r\n >>> bencode.decode('d5:title7:Examplee')\r\n OrderedDict([(u'title', u'Example')])\r\n\r\n >>> bencode.decode('i12e')\r\n 12\r\n\r\n\r\nAPI\r\n---\r\n\r\n``bencodepy.Bencode(encoding=None, encoding_fallback=None, dict_ordered=False, dict_ordered_sort=False)``\r\n\r\n Create instance\r\n\r\n - encoding\r\n Encoding to decode strings with (or ``None`` for binary)\r\n - encoding_fallback\r\n Fallback to binary when decoding fails on the specified string types.\r\n\r\n - ``key`` - dictionary keys\r\n - ``value`` - values\r\n - ``all`` - always fallback to binary\r\n - ``None`` - always raise decoding errors\r\n - dict_ordered\r\n Use ``OrderedDict``\r\n - dict_ordered_sort\r\n Ensure ``OrderedDict`` is sorted\r\n\r\n Methods:\r\n\r\n - ``decode(value)``\r\n Decode bencode string ``value``.\r\n\r\n - ``encode(value)``\r\n Encode ``value`` into a bencode string.\r\n\r\n - ``read(fd)``\r\n Decode bencode from file or path ``fd``.\r\n\r\n - ``write(data, fd)``\r\n Encode ``data`` to file or path ``fd``.\r\n\r\n``bencodepy.BencodeDecoder(encoding=None, encoding_fallback=None, dict_ordered=False, dict_ordered_sort=False)``\r\n\r\n Create decoder\r\n\r\n - encoding\r\n Encoding to decode strings with (or ``None`` for binary)\r\n - encoding_fallback\r\n Fallback to binary when decoding fails on the specified string types.\r\n\r\n - ``key`` - dictionary keys\r\n - ``value`` - values\r\n - ``all`` - always fallback to binary\r\n - ``None`` - always raise decoding errors\r\n - dict_ordered\r\n Use ``OrderedDict``\r\n - dict_ordered_sort\r\n Ensure ``OrderedDict`` is sorted\r\n\r\n Methods:\r\n\r\n - ``decode(value)``\r\n Decode bencode string ``value``.\r\n\r\n``bencodepy.BencodeEncoder()``\r\n\r\n Create encoder\r\n\r\n Methods:\r\n\r\n - ``encode(value)``\r\n Encode ``value`` into a bencode string.\r\n\r\n``bencodepy.bencode(value)``\r\n\r\n``bencodepy.encode(value)``\r\n\r\n Encode ``value`` into a bencode string with the default encoder.\r\n\r\n``bencodepy.bdecode(value)``\r\n\r\n``bencodepy.decode(value)``\r\n\r\n Decode bencode string ``value`` with the default decoder.\r\n\r\n``bencodepy.bread(fd)``\r\n\r\n Decode bencode from file or path ``fd`` with the default decoder.\r\n\r\n``bencodepy.bwrite(data, fd)``\r\n\r\n Encode ``data`` to file or path ``fd`` with the default encoder.\r\n\r\n:code:`bencode`\r\n************************************************\r\n\r\n``bencode.bencode(value)``\r\n\r\n``bencode.encode(value)``\r\n\r\n Encode ``value`` into the bencode format.\r\n\r\n``bencode.bdecode(value)``\r\n\r\n``bencode.decode(value)``\r\n\r\n Decode bencode formatted string ``value``.\r\n\r\n``bencode.bread(fd)``\r\n\r\n Read bencode formatted string from file or path ``fd``.\r\n\r\n``bencode.bwrite(data, fd)``\r\n\r\n Write ``data`` as a bencode formatted string to file or path ``fd``.\r\n\r\n\r\n\r\n",
"bugtrack_url": null,
"license": "BitTorrent Open Source License",
"summary": "Simple bencode parser (for Python 2, Python 3 and PyPy)",
"version": "4.0.0",
"project_urls": {
"Homepage": "https://github.com/fuzeman/bencode.py"
},
"split_keywords": [
"bittorrent",
"bencode",
"bdecode"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "159feabbc8c8a16db698d9c4bd24953763df2594b054237b89afe1ec56d3965e",
"md5": "71b5854787daff26398a8a7e488273d1",
"sha256": "99c06a55764e85ffe81622fdf9ee78bd737bad3ea61d119784a54bb28860d962"
},
"downloads": -1,
"filename": "bencode.py-4.0.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "71b5854787daff26398a8a7e488273d1",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 18975,
"upload_time": "2020-06-12T04:34:03",
"upload_time_iso_8601": "2020-06-12T04:34:03.759446Z",
"url": "https://files.pythonhosted.org/packages/15/9f/eabbc8c8a16db698d9c4bd24953763df2594b054237b89afe1ec56d3965e/bencode.py-4.0.0-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e86f1fc1f714edc73a9a42af816da2bda82bbcadf1d7f6e6cae854e7087f579b",
"md5": "d3aaeedb8c63d90bf94f09335b89fdaf",
"sha256": "2a24ccda1725a51a650893d0b63260138359eaa299bb6e7a09961350a2a6e05c"
},
"downloads": -1,
"filename": "bencode.py-4.0.0.tar.gz",
"has_sig": false,
"md5_digest": "d3aaeedb8c63d90bf94f09335b89fdaf",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 19842,
"upload_time": "2020-06-12T04:34:05",
"upload_time_iso_8601": "2020-06-12T04:34:05.734514Z",
"url": "https://files.pythonhosted.org/packages/e8/6f/1fc1f714edc73a9a42af816da2bda82bbcadf1d7f6e6cae854e7087f579b/bencode.py-4.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2020-06-12 04:34:05",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "fuzeman",
"github_project": "bencode.py",
"travis_ci": true,
"coveralls": true,
"github_actions": false,
"tox": true,
"lcname": "bencode.py"
}