diff options
| author | Jenkins <jenkins@review.openstack.org> | 2012-02-09 08:34:15 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2012-02-09 08:34:15 +0000 |
| commit | 6f08fb4edabd0be6a61fca91b3cee15433bc110f (patch) | |
| tree | d7c42a3524e7a72d29956b42dd55f2df8a41b54a /openstack | |
| parent | 54f0d4eb858143b07df9a026088f0d4e02bfad87 (diff) | |
| parent | 2ca2b4b49367d6033bdd2c5e47d17392e7aba318 (diff) | |
| download | oslo-6f08fb4edabd0be6a61fca91b3cee15433bc110f.tar.gz oslo-6f08fb4edabd0be6a61fca91b3cee15433bc110f.tar.xz oslo-6f08fb4edabd0be6a61fca91b3cee15433bc110f.zip | |
Merge "Updated tox config for multi-python testing."
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) |
