Slim down dependencies

* Make jinja2 an optional dependency and csrgen an optional plugin
* Make otptoken_yubikey an optional plugin

Signed-off-by: Christian Heimes <cheimes@redhat.com>
Reviewed-By: Martin Basti <mbasti@redhat.com>
This commit is contained in:
Christian Heimes 2017-03-29 11:20:21 +02:00 committed by Martin Basti
parent 8983ce53e3
commit bd5a5012d2
4 changed files with 19 additions and 9 deletions

View File

@ -6,8 +6,6 @@ import base64
import six import six
from ipaclient import csrgen
from ipaclient import csrgen_ffi
from ipalib import api from ipalib import api
from ipalib import errors from ipalib import errors
from ipalib import output from ipalib import output
@ -18,6 +16,14 @@ from ipalib.plugable import Registry
from ipalib.text import _ from ipalib.text import _
from ipapython import dogtag from ipapython import dogtag
try:
import jinja2 # pylint: disable=unused-import
except ImportError:
raise errors.SkipPluginModule(reason=_("jinja2 is not installed."))
else:
from ipaclient import csrgen
from ipaclient import csrgen_ffi
if six.PY3: if six.PY3:
unicode = str unicode = str

View File

@ -20,15 +20,20 @@
import os import os
import six import six
import usb.core
import yubico
from ipalib import _, api, IntEnum from ipalib import _, api, IntEnum
from ipalib.errors import NotFound from ipalib.errors import NotFound, SkipPluginModule
from ipalib.frontend import Command, Method, Object from ipalib.frontend import Command, Method, Object
from ipalib.plugable import Registry from ipalib.plugable import Registry
from ipalib.util import classproperty from ipalib.util import classproperty
try:
import usb.core
import yubico
except ImportError:
# python-yubico depends on pyusb
raise SkipPluginModule(reason=_("python-yubico is not installed."))
if six.PY3: if six.PY3:
unicode = str unicode = str

View File

@ -50,11 +50,9 @@ if __name__ == '__main__':
], ],
}, },
install_requires=[ install_requires=[
"cffi",
"cryptography", "cryptography",
"ipalib", "ipalib",
"ipapython", "ipapython",
"jinja2",
"qrcode", "qrcode",
"six", "six",
], ],
@ -66,6 +64,7 @@ if __name__ == '__main__':
extras_require={ extras_require={
"install": ["ipaplatform"], "install": ["ipaplatform"],
"otptoken_yubikey": ["python-yubico", "pyusb"], "otptoken_yubikey": ["python-yubico", "pyusb"],
"csrgen": ["cffi", "jinja2"],
}, },
zip_safe=False, zip_safe=False,
) )

View File

@ -13,7 +13,7 @@ changedir={envdir}
setenv= setenv=
HOME={envtmpdir} HOME={envtmpdir}
deps= deps=
ipaclient ipaclient[csrgen]
ipatests ipatests
commands= commands=
{envbindir}/ipa --help {envbindir}/ipa --help
@ -22,7 +22,7 @@ commands=
[testenv:pylint2] [testenv:pylint2]
basepython=python2.7 basepython=python2.7
deps= deps=
ipaclient[otptoken_yubikey] ipaclient[csrgen,otptoken_yubikey]
pylint pylint
commands= commands=
{envpython} -m pylint \ {envpython} -m pylint \