torf


Nametorf JSON
Version 4.2.7 PyPI version JSON
download
home_pageNone
SummaryPython 3 module for creating and parsing torrent files and magnet URIs
upload_time2024-06-13 09:45:36
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/85/24/208ef9e2fde55e0c1ea6f78f7e025dae50678a62d255c5d13551d72857de/torf-4.2.7.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.7",
    "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": "e4f30090e0ab45963b0022ae2a7648aa4fe26bfc402d4bf00c5cfcda22e5975c",
                "md5": "371ee18f74ebe0e9956fef4da25426c4",
                "sha256": "a15e31ee7f9c04104bf6253bf383f69ad9b42b8207faeb791d096212af460ccf"
            },
            "downloads": -1,
            "filename": "torf-4.2.7-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "371ee18f74ebe0e9956fef4da25426c4",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 59491,
            "upload_time": "2024-06-13T09:45:33",
            "upload_time_iso_8601": "2024-06-13T09:45:33.903113Z",
            "url": "https://files.pythonhosted.org/packages/e4/f3/0090e0ab45963b0022ae2a7648aa4fe26bfc402d4bf00c5cfcda22e5975c/torf-4.2.7-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8524208ef9e2fde55e0c1ea6f78f7e025dae50678a62d255c5d13551d72857de",
                "md5": "4955e832dcd3e997f3847fa1eea2888b",
                "sha256": "c2e1e2171ce03ffc9303ddbc50d7f73e419d9a1af22a07edb029b7c0cf7293d9"
            },
            "downloads": -1,
            "filename": "torf-4.2.7.tar.gz",
            "has_sig": false,
            "md5_digest": "4955e832dcd3e997f3847fa1eea2888b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 102961,
            "upload_time": "2024-06-13T09:45:36",
            "upload_time_iso_8601": "2024-06-13T09:45:36.097690Z",
            "url": "https://files.pythonhosted.org/packages/85/24/208ef9e2fde55e0c1ea6f78f7e025dae50678a62d255c5d13551d72857de/torf-4.2.7.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-13 09:45:36",
    "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.25754s