From 15196678a596d8ac336e11b6b27f5c25e24b1d6c Mon Sep 17 00:00:00 2001 From: Jeremy Zafran Date: Thu, 23 Feb 2017 13:48:46 -0500 Subject: [PATCH] add support for specifying pip requirements files in additional_dependencies for python --- pre_commit/languages/python.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/pre_commit/languages/python.py b/pre_commit/languages/python.py index 1e60a3ed..bc6c5a1f 100644 --- a/pre_commit/languages/python.py +++ b/pre_commit/languages/python.py @@ -73,10 +73,28 @@ def install_environment( else: venv_cmd.extend(['-p', os.path.realpath(sys.executable)]) repo_cmd_runner.run(venv_cmd, cwd='/') + + # Determine if items in additional_dependencies are pip requirements + # files or package names + packages = [] + requirements_files = [] + for dependency in additional_dependencies: + if dependency.startswith('file:'): + requirements_files.append(dependency.split('file:', 1)[1]) + else: + packages.append(dependency) + with in_env(repo_cmd_runner, version): + if requirements_files: + helpers.run_setup_cmd( + repo_cmd_runner, + ('pip', 'install') + + tuple('-r{}'.format(req_file) + for req_file in requirements_files), + ) helpers.run_setup_cmd( repo_cmd_runner, - ('pip', 'install', '.') + additional_dependencies, + ('pip', 'install', '.') + tuple(packages), )