diff options
author | Richard Ipsum <richard.ipsum@codethink.co.uk> | 2014-12-03 19:57:37 +0000 |
---|---|---|
committer | Richard Ipsum <richard.ipsum@codethink.co.uk> | 2014-12-03 20:13:46 +0000 |
commit | 01bbadaaff2a7d10db3a72fbd382279a57cf3825 (patch) | |
tree | f8532abbdd951e0660e33a8540f9fc9bda0e323c | |
parent | 5417f67318a29d4d8b876497603dff36fe92763f (diff) | |
download | import-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-x | exts/pip.find_deps | 19 |
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(): |