Metadata-Version: 2.1
Name: benparse
Version: 1.0.0
Summary: Bencode parser
Home-page: https://gitlab.com/adralioh/benparse
Author: Adralioh
License: UNKNOWN
Project-URL: Documentation, https://adralioh.gitlab.io/benparse
Description: # benparse
        benparse is a bencode parser for Python 3. It is capable of reading and creating [bencoded files](https://en.wikipedia.org/wiki/Bencode) such as torrents
        
        ## Features
        * Syntax is similar to built-in modules such as `json` and `pickle`
        * Has an optional strict mode that will raise an error when it encounters non-fatal errors such as out-of-order dict keys or integers with leading zeros. This ensures that "round-tripping" bencoded data (loading bencoded data and then dumping it back to bencode) will never caused unexpected changes
        * Able to change the character encoding used to encode/decode strings
        * Fully typed
        
        ## Usage
        Complete usage documentation and examples are available [here](https://adralioh.gitlab.io/benparse)
        
        ```python
        # Load a bencoded file
        with open('linux_distro.torrent', 'rb') as file:
            torrent_dict = benparse.load(file)
        
        # Make changes
        torrent_dict[b'announce'] = b'http://mirror.example.org:6969/announce'
        
        # Save a Python object as a bencoded file
        with open('linux_distro.torrent', 'wb') as file:
            benparse.dump(torrent_dict, file)
        ```
        
        ## Requirements
        - [Python 3.6+](https://www.python.org/)
        - [Typing Extensions](https://pypi.org/project/typing-extensions/) (only for Python versions less than 3.8)
        
        ## Installation
        Install via pip:
        ```shell
        pip3 install benparse
        ```
        
        Install from source:
        ```shell
        git clone https://gitlab.com/adralioh/benparse.git
        cd benparse
        python3 setup.py install
        ```
        
        ## Tests
        The following command is used to run unit tests
        ```shell
        python3 -m unittest discover tests
        ```
        
        ## Building documentation
        Sphinx is used to build documentation
        
        Build requirements:
        - [Sphinx](https://www.sphinx-doc.org/)
        
        How to build:
        ```shell
        cd docs
        make html
        ```
        
Keywords: bittorrent bencode
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Communications :: File Sharing
Classifier: Typing :: Typed
Requires-Python: >=3.6
Description-Content-Type: text/markdown
