URL: https://github.com/freeipa/freeipa/pull/671 Author: tiran Title: #671: Slim down dependencies Action: synchronized
To pull the PR as Git branch: git remote add ghfreeipa https://github.com/freeipa/freeipa git fetch ghfreeipa pull/671/head:pr671 git checkout pr671
From de75aafdb0de58e57d452b1bc6b69d60d56dfd50 Mon Sep 17 00:00:00 2001 From: Christian Heimes <chei...@redhat.com> Date: Wed, 29 Mar 2017 11:20:21 +0200 Subject: [PATCH] Slim down dependencies * Make jinja2 an optional dependency and csrgen an optional plugin * Make otptoken_yubikey an optional plugin Signed-off-by: Christian Heimes <chei...@redhat.com> --- ipaclient/plugins/csrgen.py | 10 ++++++++-- ipaclient/plugins/otptoken_yubikey.py | 11 ++++++++--- ipaclient/setup.py | 3 +-- tox.ini | 4 ++-- 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/ipaclient/plugins/csrgen.py b/ipaclient/plugins/csrgen.py index 568a79f..d18a90c 100644 --- a/ipaclient/plugins/csrgen.py +++ b/ipaclient/plugins/csrgen.py @@ -6,8 +6,6 @@ import six -from ipaclient import csrgen -from ipaclient import csrgen_ffi from ipalib import api from ipalib import errors from ipalib import output @@ -18,6 +16,14 @@ from ipalib.text import _ 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: unicode = str diff --git a/ipaclient/plugins/otptoken_yubikey.py b/ipaclient/plugins/otptoken_yubikey.py index 759b722..9993ec8 100644 --- a/ipaclient/plugins/otptoken_yubikey.py +++ b/ipaclient/plugins/otptoken_yubikey.py @@ -20,15 +20,20 @@ import os import six -import usb.core -import yubico 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.plugable import Registry 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: unicode = str diff --git a/ipaclient/setup.py b/ipaclient/setup.py index 0140fd5..ac947e7 100644 --- a/ipaclient/setup.py +++ b/ipaclient/setup.py @@ -50,11 +50,9 @@ ], }, install_requires=[ - "cffi", "cryptography", "ipalib", "ipapython", - "jinja2", "qrcode", "six", ], @@ -66,6 +64,7 @@ extras_require={ "install": ["ipaplatform"], "otptoken_yubikey": ["python-yubico", "pyusb"], + "csrgen": ["cffi", "jinja2"], }, zip_safe=False, ) diff --git a/tox.ini b/tox.ini index ccface9..931b125 100644 --- a/tox.ini +++ b/tox.ini @@ -13,7 +13,7 @@ changedir={envdir} setenv= HOME={envtmpdir} deps= - ipaclient + ipaclient[csrgen] ipatests commands= {envbindir}/ipa --help @@ -22,7 +22,7 @@ commands= [testenv:pylint2] basepython=python2.7 deps= - ipaclient[otptoken_yubikey] + ipaclient[csrgen,otptoken_yubikey] pylint commands= {envpython} -m pylint \
-- Manage your subscription for the Freeipa-devel mailing list: https://www.redhat.com/mailman/listinfo/freeipa-devel Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code