summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Ipsum <richard.ipsum@codethink.co.uk>2014-12-03 19:57:37 +0000
committerRichard Ipsum <richard.ipsum@codethink.co.uk>2014-12-03 20:13:46 +0000
commit01bbadaaff2a7d10db3a72fbd382279a57cf3825 (patch)
treef8532abbdd951e0660e33a8540f9fc9bda0e323c
parent5417f67318a29d4d8b876497603dff36fe92763f (diff)
downloadimport-01bbadaaff2a7d10db3a72fbd382279a57cf3825.tar.gz
Use -r if we resolve [] as runtime deps
A package may provide a requires file rather than setting install_requires
-rwxr-xr-xexts/pip.find_deps19
1 files changed, 15 insertions, 4 deletions
diff --git a/exts/pip.find_deps b/exts/pip.find_deps
index 0a2f24d..c591149 100755
--- a/exts/pip.find_deps
+++ b/exts/pip.find_deps
@@ -251,7 +251,7 @@ def find_build_deps(source, name, version=None):
return build_deps
-def find_runtime_deps(source, name, version=None):
+def find_runtime_deps(source, name, version=None, use_requirements_file=False):
logging.debug('Finding runtime dependencies for %s%s at %s'
% (name, ' %s' % version if version else '', source))
@@ -262,9 +262,15 @@ def find_runtime_deps(source, name, version=None):
tmpfd, tmppath = tempfile.mkstemp()
logging.debug('Writing install requirements to: %s', tmppath)
- p = subprocess.Popen(['pip', 'install', '.',
- '--list-dependencies=%s' % tmppath], cwd=source,
- stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+ args = ['pip', 'install', '.', '--list-dependencies=%s' % tmppath]
+ if use_requirements_file:
+ args.insert(args.index('.') + 1, '-r')
+ args.insert(args.index('.') + 2, 'requirements.txt')
+
+ logging.debug('Running pip, args: %s' % args)
+
+ p = subprocess.Popen(args, cwd=source, stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT)
while True:
line = p.stdout.readline()
@@ -298,6 +304,11 @@ def find_runtime_deps(source, name, version=None):
os.remove(tmppath)
+ if (len(runtime_deps) == 0 and not use_requirements_file
+ and os.path.isfile(os.path.join(source, 'requirements.txt'))):
+ return find_runtime_deps(source, name, version,
+ use_requirements_file=True)
+
return runtime_deps
def main():