diff options
| author | Monty Taylor <mordred@inaugust.com> | 2012-02-06 09:49:09 -0500 |
|---|---|---|
| committer | Monty Taylor <mordred@inaugust.com> | 2012-02-06 08:06:12 -0800 |
| commit | 2ca2b4b49367d6033bdd2c5e47d17392e7aba318 (patch) | |
| tree | 0242581d969706676e403e4d46636be051e28189 /openstack | |
| parent | bf1d46353edba3f6a46edf2bc96fb9452efeb9aa (diff) | |
| download | oslo-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.py | 45 |
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) |
