From ce30d9a1aef5fe6a595e643f74985d203b647a08 Mon Sep 17 00:00:00 2001 From: Isis Lovecruft Date: Tue, 3 Dec 2013 11:21:37 +0000 Subject: [PATCH] Update setup.py to use dependency links from requirements.txt. --- setup.py | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 5def919..3b4154d 100644 --- a/setup.py +++ b/setup.py @@ -23,7 +23,10 @@ from __future__ import absolute_import from __future__ import print_function import setuptools +import os import versioneer + + versioneer.versionfile_source = 'gnupg/_version.py' versioneer.versionfile_build = 'gnupg/_version.py' versioneer.tag_prefix = '' @@ -34,6 +37,44 @@ __contact__ = 'isis@patternsinthevoid.net' __url__ = 'https://github.com/isislovecruft/python-gnupg' +def get_requirements(): + """Extract the list of requirements from our requirements.txt. + + :rtype: 2-tuple + :returns: Two lists, the first is a list of requirements in the form of + pkgname==version. The second is a list of URIs or VCS checkout strings + which specify the dependency links for obtaining a copy of the + requirement. + """ + requirements_file = os.path.join(os.getcwd(), 'requirements.txt') + requirements = [] + links=[] + try: + with open(requirements_file) as reqfile: + for line in reqfile.readlines(): + line = line.strip() + if line.startswith('#'): + continue + elif line.startswith( + ('https://', 'git://', 'hg://', 'svn://')): + links.append(line) + else: + requirements.append(line) + + except (IOError, OSError) as error: + print(error) + + return requirements, links + + +requires, deplinks = get_requirements() +print('Found requirements:') +[print('\t%s' % name) for name in requires] + +print('Found dependency links:') +[print('\t%s' % uri) for uri in deplinks] + + setuptools.setup( name = "gnupg", description="A Python wrapper for GnuPG", @@ -62,7 +103,8 @@ greater. scripts=['versioneer.py'], test_suite='gnupg.test.test_gnupg', - install_requires=['psutil>=0.5.1'], + install_requires=requires, + dependency_links=deplinks, extras_require={'docs': ["Sphinx>=1.1", "repoze.sphinx"]}, platforms="Linux, BSD, OSX, Windows",