URL: https://github.com/freeipa/freeipa/pull/671
Author: tiran
 Title: #671: [WIP] Slim down dependencies
Action: opened

PR body:
"""
* Remove unused install requires
* Correct dependencies for yubico otptoken
* Properly report optional dependency for yubico otptoken
* Make jinja2 an optional dependency and csrgen an optional plugin

Signed-off-by: Christian Heimes <chei...@redhat.com>
"""

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 230b7936c479d29416a580428db9f3448d65a125 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

* Remove unused install requires
* Correct dependencies for yubico otptoken
* Properly report optional dependency for yubico otptoken
* Make jinja2 an optional dependency and csrgen an optional plugin

Signed-off-by: Christian Heimes <chei...@redhat.com>
---
 ipaclient/plugins/csrgen.py           |  8 +++++++-
 ipaclient/plugins/otptoken_yubikey.py | 11 ++++++++---
 ipaclient/setup.py                    |  6 ++----
 ipapython/setup.py                    |  2 --
 4 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/ipaclient/plugins/csrgen.py b/ipaclient/plugins/csrgen.py
index a0d99ef..0a9ede1 100644
--- a/ipaclient/plugins/csrgen.py
+++ b/ipaclient/plugins/csrgen.py
@@ -4,7 +4,6 @@
 
 import six
 
-from ipaclient.csrgen import CSRGenerator, FileRuleProvider
 from ipalib import api
 from ipalib import errors
 from ipalib import output
@@ -15,6 +14,13 @@
 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.csrgen import CSRGenerator, FileRuleProvider
+
 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 f5be7ea..5b02341 100644
--- a/ipaclient/setup.py
+++ b/ipaclient/setup.py
@@ -54,15 +54,13 @@
             "cryptography",
             "ipalib",
             "ipapython",
-            "jinja2",
-            "python-yubico",
-            "pyusb",
             "qrcode",
             "six",
         ],
         extras_require={
             "install": ["ipaplatform"],
-            "otptoken_yubikey": ["yubico", "usb"]
+            "otptoken_yubikey": ["python-yubico", "pyusb"],
+            "csrgen": ["jinja2"],
         },
         zip_safe=False,
     )
diff --git a/ipapython/setup.py b/ipapython/setup.py
index 2fc039f..491a5ed 100755
--- a/ipapython/setup.py
+++ b/ipapython/setup.py
@@ -41,13 +41,11 @@
             "cryptography",
             "dnspython",
             "gssapi",
-            "jwcrypto",
             # "ipalib",  # circular dependency
             "pyldap",
             "netaddr",
             "netifaces",
             "python-nss",
-            "requests",
             "six",
         ],
         extras_require={
-- 
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

Reply via email to