[Install] Update and fix python optional requirements

* Added required dependency setuptools to install_requires
* Remove optional dependency ipaddress from install_requires
* Created extras_require in setup.py. The optional dependencies should
not be included in install_requires so that users can either install
forked dependencies or remove problematic ones. Updated documentation to
detail how to install these optional dependencies.
* Fixed README badge

Refs:
 * https://dev.deluge-torrent.org/ticket/3470
 * https://dev.deluge-torrent.org/ticket/3282
 * https://dev.deluge-torrent.org/ticket/3353
This commit is contained in:
Calum Lind 2019-06-21 10:56:10 +01:00
parent a3332079db
commit 8fb25f71f3
7 changed files with 31 additions and 17 deletions

View File

@ -1,4 +1,4 @@
name: Deluge CI name: CI
on: on:
push: push:

View File

@ -1,4 +1,4 @@
name: Deluge Documentation name: Docs
# Controls when the action will run. # Controls when the action will run.
on: on:

View File

@ -1,4 +1,4 @@
name: Deluge Linting name: Linting
on: on:
push: push:

View File

@ -1,6 +1,6 @@
# Deluge BitTorrent Client # Deluge BitTorrent Client
[![build-status]][travis-deluge] [![docs-status]][rtd-deluge] [![build-status]][github-ci] [![docs-status]][rtd-deluge]
Deluge is a BitTorrent client that utilizes a daemon/client model. Deluge is a BitTorrent client that utilizes a daemon/client model.
It has various user interfaces available such as the GTK-UI, Web-UI and It has various user interfaces available such as the GTK-UI, Web-UI and
@ -13,10 +13,17 @@ From [PyPi](https://pypi.org/project/deluge):
pip install deluge pip install deluge
with all optional dependencies:
pip install deluge[all]
From source code: From source code:
python setup.py build pip install .
python setup.py install
with all optional dependencies:
pip install .[all]
See [DEPENDS](DEPENDS.md) and [Installing/Source] for dependency details. See [DEPENDS](DEPENDS.md) and [Installing/Source] for dependency details.
@ -56,8 +63,8 @@ See the [Thinclient guide] to connect to the daemon from another computer.
[user guide]: https://dev.deluge-torrent.org/wiki/UserGuide [user guide]: https://dev.deluge-torrent.org/wiki/UserGuide
[thinclient guide]: https://dev.deluge-torrent.org/wiki/UserGuide/ThinClient [thinclient guide]: https://dev.deluge-torrent.org/wiki/UserGuide/ThinClient
[installing/source]: https://dev.deluge-torrent.org/wiki/Installing/Source [installing/source]: https://dev.deluge-torrent.org/wiki/Installing/Source
[build-status]: https://travis-ci.org/deluge-torrent/deluge.svg "Travis Status" [build-status]: https://github.com/deluge-torrent/deluge/actions/workflows/ci.yml/badge.svg?branch=develop "CI"
[travis-deluge]: https://travis-ci.org/deluge-torrent/deluge [github-ci]: https://github.com/deluge-torrent/deluge/actions/workflows/ci.yml
[docs-status]: https://readthedocs.org/projects/deluge/badge/?version=develop [docs-status]: https://readthedocs.org/projects/deluge/badge/?version=latest
[rtd-deluge]: https://deluge.readthedocs.io/en/develop/?badge=develop "Documentation Status" [rtd-deluge]: https://deluge.readthedocs.io/en/latest/?badge=latest "Documentation Status"
[lt]: https://libtorrent.org [lt]: https://libtorrent.org

View File

@ -22,6 +22,10 @@ Install with pip:
pip install deluge pip install deluge
Install with all optional dependecies:
pip install deluge[all]
## <i class="fa fa-windows"></i> Windows ## <i class="fa fa-windows"></i> Windows
Unfortunately due to move to GTK3 and Python 3 there is no installer package currently Unfortunately due to move to GTK3 and Python 3 there is no installer package currently

View File

@ -10,4 +10,4 @@ setproctitle
pywin32; sys_platform == 'win32' pywin32; sys_platform == 'win32'
certifi; sys_platform == 'win32' certifi; sys_platform == 'win32'
zope.interface>=4.4.2 zope.interface>=4.4.2
distro; 'win' not in sys_platform distro; 'linux' in sys_platform or 'bsd' in sys_platform

View File

@ -543,17 +543,20 @@ install_requires = [
'rencode', 'rencode',
'pyopenssl', 'pyopenssl',
'pyxdg', 'pyxdg',
'pillow',
'mako', 'mako',
'chardet',
'six', 'six',
'setproctitle', 'setuptools',
"pywin32; sys_platform == 'win32'", "pywin32; sys_platform == 'win32'",
"py2-ipaddress; sys_platform == 'win32' and python_version == '2'",
"certifi; sys_platform == 'win32'", "certifi; sys_platform == 'win32'",
'zope.interface', 'zope.interface',
] ]
tests_require = ['pytest', 'pytest-twisted'] extras_require = {
'all': [
'setproctitle',
'pillow',
'chardet',
]
}
# Main setup # Main setup
setup( setup(
@ -597,7 +600,7 @@ setup(
cmdclass=cmdclass, cmdclass=cmdclass,
setup_requires=setup_requires, setup_requires=setup_requires,
install_requires=install_requires, install_requires=install_requires,
tests_require=tests_require, extras_require=extras_require,
data_files=_data_files, data_files=_data_files,
package_data=_package_data, package_data=_package_data,
exclude_package_data=_exclude_package_data, exclude_package_data=_exclude_package_data,