[pkg] separate leap requirements
authorKali Kaneko <kali@leap.se>
Wed, 22 Jul 2015 14:31:59 +0000 (10:31 -0400)
committerKali Kaneko <kali@leap.se>
Wed, 22 Jul 2015 16:28:27 +0000 (12:28 -0400)
this is part of a process to make the setup of the development mode less
troublesome. from now on, setting up a virtualenv in pure development
mode will be as easy as telling pip to just install the external
dependencies::

  pip install -r pkg/requirements.pip

and traversing all the leap repos for the needed leap dependencies doing::

  python setup.py develop

- Related: #7288

pkg/requirements-leap.pip [new file with mode: 0644]
pkg/requirements.pip
pkg/utils.py
setup.py

diff --git a/pkg/requirements-leap.pip b/pkg/requirements-leap.pip
new file mode 100644 (file)
index 0000000..b311859
--- /dev/null
@@ -0,0 +1 @@
+leap.common>=0.4.0
index 1aef332..c4cb09a 100644 (file)
@@ -1,6 +1,5 @@
-leap.common>=0.4.0
-simplejson
-requests
 # if we bump the gnupg version, bump also the sanity check
 # in keymanager.__init__
 gnupg>=1.4.0
+simplejson
+requests
index deace14..dd3deac 100644 (file)
@@ -27,7 +27,7 @@ import sys
 def get_reqs_from_files(reqfiles):
     """
     Returns the contents of the top requirement file listed as a
-    string list with the lines
+    string list with the lines.
 
     @param reqfiles: requirement files to parse
     @type reqfiles: list of str
@@ -43,6 +43,9 @@ def parse_requirements(reqfiles=['requirements.txt',
     """
     Parses the requirement files provided.
 
+    The passed reqfiles list is a list of possible locations to try, the
+    function will return the contents of the first path found.
+
     Checks the value of LEAP_VENV_SKIP_PYSIDE to see if it should
     return PySide as a dep or not. Don't set, or set to 0 if you want
     to install it through pip.
@@ -58,9 +61,9 @@ def parse_requirements(reqfiles=['requirements.txt',
         if re.match(r'\s*-e\s+', line):
             pass
             # do not try to do anything with externals on vcs
-            #requirements.append(re.sub(r'\s*-e\s+.*#egg=(.*)$', r'\1',
-                                #line))
-        # http://foo.bar/baz/foobar/zipball/master#egg=foobar
+            # requirements.append(re.sub(r'\s*-e\s+.*#egg=(.*)$', r'\1',
+            #                     line))
+            # http://foo.bar/baz/foobar/zipball/master#egg=foobar
         elif re.match(r'\s*https?:', line):
             requirements.append(re.sub(r'\s*https?:.*#egg=(.*)$', r'\1',
                                 line))
index 778909d..f554e09 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -107,6 +107,10 @@ cmdclass["freeze_debianver"] = freeze_debianver
 
 # XXX add ref to docs
 
+requirements = (
+    utils.parse_requirements() +
+    utils.parse_requirements(reqfiles=["pkg/requirements-leap.pip"]))
+
 setup(
     name='leap.keymanager',
     version=VERSION,
@@ -129,7 +133,7 @@ setup(
     packages=find_packages('src', exclude=['leap.keymanager.tests']),
     package_dir={'': 'src'},
     test_suite='leap.keymanager.tests',
-    install_requires=utils.parse_requirements(),
+    install_requires=requirements,
     tests_require=utils.parse_requirements(
         reqfiles=['pkg/requirements-testing.pip']),
 )