summaryrefslogtreecommitdiff
path: root/setup.py
diff options
context:
space:
mode:
authorMonty Taylor <mordred@inaugust.com>2012-02-06 09:49:09 -0500
committerMonty Taylor <mordred@inaugust.com>2012-02-06 08:06:12 -0800
commitfbaefc8bcb27feea1fc3d43c1a3fe7dea4c9d946 (patch)
tree73892a9114ff98f19ef913b202e4d7adf043a106 /setup.py
parenta0da360499aec576b3c075aec0817da5000a604d (diff)
downloadpbr-fbaefc8bcb27feea1fc3d43c1a3fe7dea4c9d946.tar.gz
Updated tox config for multi-python testing.
Change-Id: Ib1f768c6783db0e63cb51dfc767ae5a31a295c76
Diffstat (limited to 'setup.py')
-rw-r--r--setup.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/setup.py b/setup.py
index 7966cf7..28f5e6f 100644
--- a/setup.py
+++ b/setup.py
@@ -40,3 +40,48 @@ def str_dict_replace(s, mapping):
for s1, s2 in mapping.iteritems():
s = s.replace(s1, s2)
return s
+
+
+# Get requirements from the first file that exists
+def get_reqs_from_files(requirements_files):
+ reqs_in = []
+ for requirements_file in requirements_files:
+ if os.path.exists(requirements_file):
+ return open(requirements_file, 'r').read().split('\n')
+ return []
+
+
+def parse_requirements(requirements_files=['requirements.txt',
+ 'tools/pip-requires']):
+ requirements = []
+ for line in get_reqs_from_files(requirements_files):
+ if re.match(r'\s*-e\s+', line):
+ requirements.append(re.sub(r'\s*-e\s+.*#egg=(.*)$', r'\1',
+ line))
+ elif re.match(r'\s*-f\s+', line):
+ pass
+ else:
+ requirements.append(line)
+
+ return requirements
+
+
+def parse_dependency_links(requirements_files=['requirements.txt',
+ 'tools/pip-requires']):
+ dependency_links = []
+ for line in get_reqs_from_files(requirements_files):
+ if re.match(r'(\s*#)|(\s*$)', line):
+ continue
+ if re.match(r'\s*-[ef]\s+', line):
+ dependency_links.append(re.sub(r'\s*-[ef]\s+', '', line))
+ return dependency_links
+
+
+def write_requirements():
+ venv = os.environ.get('VIRTUAL_ENV', None)
+ if venv is not None:
+ with open("requirements.txt", "w") as req_file:
+ output = subprocess.Popen(["pip", "-E", venv, "freeze", "-l"],
+ stdout=subprocess.PIPE)
+ requirements = output.communicate()[0].strip()
+ req_file.write(requirements)