bencode.py


Namebencode.py JSON
Version 4.0.0 PyPI version JSON
download
home_pagehttps://github.com/fuzeman/bencode.py
SummarySimple bencode parser (for Python 2, Python 3 and PyPy)
upload_time2020-06-12 04:34:05
maintainer
docs_urlNone
authorDean Gardiner
requires_python
licenseBitTorrent Open Source License
keywords bittorrent bencode bdecode
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI
coveralls test coverage
            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"
}
        
Elapsed time: 0.21149s