torf


Nametorf JSON
Version 4.2.6 PyPI version JSON
download
home_pageNone
SummaryPython 3 module for creating and parsing torrent files and magnet URIs
upload_time2024-03-25 10:50:38
maintainerNone
docs_urlNone
authorNone
requires_python>=3.7
licenseGPL-3.0-or-later
keywords bittorrent torrent magnet
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            torf
====

torf provides a ``Torrent`` and a ``Magnet`` class.

`torf-cli <https://github.com/rndusr/torf-cli>`_ and `torf-gui
<https://github.com/SavageCore/torf-gui>`_ provide user interfaces for torf.

This project started as a fork of `dottorrent
<https://github.com/kz26/dottorrent>`_ but turned into a rewrite.

Features
--------

- Create a ``Torrent`` instance from a path to the torrent's content or by
  reading an existing ``.torrent`` file
- High-level access to standard metainfo fields via properties
- Low-level access to arbitrary metainfo fields via ``metainfo`` property
- Optional metainfo validation with helpful error messages
- Generate a `BTIH magnet URI
  <https://en.wikipedia.org/wiki/Magnet_URI_scheme>`_ from a ``.torrent`` file
  (the reverse is also possible but the resulting torrent is incomplete due to
  the lack of information in magnet URIs)
- Use multiple CPU cores to compute piece hashes
- Randomize the info hash to help with cross-seeding
- Conveniently re-use piece hashes from an existing torrent file

Example
-------

.. code:: python

    from torf import Torrent
    t = Torrent(path='path/to/content',
                trackers=['https://tracker1.example.org:1234/announce',
                          'https://tracker2.example.org:5678/announce'],
                comment='This is a comment')
    t.private = True
    t.generate()
    t.write('my.torrent')

Documentation
-------------

Everything should be explained in the docstrings. Read it with ``pydoc3
torf.Torrent`` or ``pydoc3 torf.Magnet``.

Documentation is also available at `torf.readthedocs.io
<https://torf.readthedocs.io/>`_ or `torf.readthedocs.io/en/latest
<https://torf.readthedocs.io/en/latest>`_ for the development version.

Installation
------------

torf is available on `PyPI <https://pypi.org/project/torf>`_.

The latest development version is in the master branch on `GitHub
<https://github.com/rndusr/torf>`_.

Contributing
------------

I consider this project feature complete, but feel free to request new features
or improvements. Bug reports are always welcome, of course.

License
-------

`GPLv3+ <https://www.gnu.org/licenses/gpl-3.0.en.html>`_

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "torf",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "bittorrent, torrent, magnet",
    "author": null,
    "author_email": "Random User <rndusr@posteo.de>",
    "download_url": "https://files.pythonhosted.org/packages/ec/42/9b8d5be389f7c11c2ab428f692098f9f2cf4ddd6515f6782809f719e051b/torf-4.2.6.tar.gz",
    "platform": null,
    "description": "torf\n====\n\ntorf provides a ``Torrent`` and a ``Magnet`` class.\n\n`torf-cli <https://github.com/rndusr/torf-cli>`_ and `torf-gui\n<https://github.com/SavageCore/torf-gui>`_ provide user interfaces for torf.\n\nThis project started as a fork of `dottorrent\n<https://github.com/kz26/dottorrent>`_ but turned into a rewrite.\n\nFeatures\n--------\n\n- Create a ``Torrent`` instance from a path to the torrent's content or by\n  reading an existing ``.torrent`` file\n- High-level access to standard metainfo fields via properties\n- Low-level access to arbitrary metainfo fields via ``metainfo`` property\n- Optional metainfo validation with helpful error messages\n- Generate a `BTIH magnet URI\n  <https://en.wikipedia.org/wiki/Magnet_URI_scheme>`_ from a ``.torrent`` file\n  (the reverse is also possible but the resulting torrent is incomplete due to\n  the lack of information in magnet URIs)\n- Use multiple CPU cores to compute piece hashes\n- Randomize the info hash to help with cross-seeding\n- Conveniently re-use piece hashes from an existing torrent file\n\nExample\n-------\n\n.. code:: python\n\n    from torf import Torrent\n    t = Torrent(path='path/to/content',\n                trackers=['https://tracker1.example.org:1234/announce',\n                          'https://tracker2.example.org:5678/announce'],\n                comment='This is a comment')\n    t.private = True\n    t.generate()\n    t.write('my.torrent')\n\nDocumentation\n-------------\n\nEverything should be explained in the docstrings. Read it with ``pydoc3\ntorf.Torrent`` or ``pydoc3 torf.Magnet``.\n\nDocumentation is also available at `torf.readthedocs.io\n<https://torf.readthedocs.io/>`_ or `torf.readthedocs.io/en/latest\n<https://torf.readthedocs.io/en/latest>`_ for the development version.\n\nInstallation\n------------\n\ntorf is available on `PyPI <https://pypi.org/project/torf>`_.\n\nThe latest development version is in the master branch on `GitHub\n<https://github.com/rndusr/torf>`_.\n\nContributing\n------------\n\nI consider this project feature complete, but feel free to request new features\nor improvements. Bug reports are always welcome, of course.\n\nLicense\n-------\n\n`GPLv3+ <https://www.gnu.org/licenses/gpl-3.0.en.html>`_\n",
    "bugtrack_url": null,
    "license": "GPL-3.0-or-later",
    "summary": "Python 3 module for creating and parsing torrent files and magnet URIs",
    "version": "4.2.6",
    "project_urls": {
        "Bug Tracker": "https://github.com/rndusr/torf/issues",
        "Changelog": "https://raw.githubusercontent.com/rndusr/torf/master/CHANGELOG",
        "Documentation": "https://torf.readthedocs.io/",
        "Repository": "https://github.com/rndusr/torf"
    },
    "split_keywords": [
        "bittorrent",
        " torrent",
        " magnet"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7614fc576b9774a4ad846d2498c27c1054c28ae8a5a07003589c243f30b9802a",
                "md5": "355580c4a66e75af370060f611c9b6a6",
                "sha256": "c3a17b74869703b2e464ca269295f14791061c56b737308c7b5f79a195a9f959"
            },
            "downloads": -1,
            "filename": "torf-4.2.6-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "355580c4a66e75af370060f611c9b6a6",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 123317,
            "upload_time": "2024-03-25T10:50:34",
            "upload_time_iso_8601": "2024-03-25T10:50:34.932355Z",
            "url": "https://files.pythonhosted.org/packages/76/14/fc576b9774a4ad846d2498c27c1054c28ae8a5a07003589c243f30b9802a/torf-4.2.6-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ec429b8d5be389f7c11c2ab428f692098f9f2cf4ddd6515f6782809f719e051b",
                "md5": "9c5acecc7b54bc75dc367ecfa08d900f",
                "sha256": "7563a77cf88489c76f70a2fe16f207d554b53c984d41a210f9db3016270d32d4"
            },
            "downloads": -1,
            "filename": "torf-4.2.6.tar.gz",
            "has_sig": false,
            "md5_digest": "9c5acecc7b54bc75dc367ecfa08d900f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 115130,
            "upload_time": "2024-03-25T10:50:38",
            "upload_time_iso_8601": "2024-03-25T10:50:38.647883Z",
            "url": "https://files.pythonhosted.org/packages/ec/42/9b8d5be389f7c11c2ab428f692098f9f2cf4ddd6515f6782809f719e051b/torf-4.2.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-25 10:50:38",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "rndusr",
    "github_project": "torf",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": false,
    "tox": true,
    "lcname": "torf"
}
        
Elapsed time: 0.24810s