summaryrefslogtreecommitdiffstats
path: root/openstack
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
commit2ca2b4b49367d6033bdd2c5e47d17392e7aba318 (patch)
tree0242581d969706676e403e4d46636be051e28189 /openstack
parentbf1d46353edba3f6a46edf2bc96fb9452efeb9aa (diff)
downloadoslo-2ca2b4b49367d6033bdd2c5e47d17392e7aba318.tar.gz
oslo-2ca2b4b49367d6033bdd2c5e47d17392e7aba318.tar.xz
oslo-2ca2b4b49367d6033bdd2c5e47d17392e7aba318.zip
Updated tox config for multi-python testing.
Change-Id: Ib1f768c6783db0e63cb51dfc767ae5a31a295c76
Diffstat (limited to 'openstack')
-rw-r--r--openstack/common/setup.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/openstack/common/setup.py b/openstack/common/setup.py
index 7966cf7..28f5e6f 100644
--- a/openstack/common/setup.py
+++ b/openstack/common/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)