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 | fbaefc8bcb27feea1fc3d43c1a3fe7dea4c9d946 (patch) | |
tree | 73892a9114ff98f19ef913b202e4d7adf043a106 /setup.py | |
parent | a0da360499aec576b3c075aec0817da5000a604d (diff) | |
download | pbr-fbaefc8bcb27feea1fc3d43c1a3fe7dea4c9d946.tar.gz |
Updated tox config for multi-python testing.
Change-Id: Ib1f768c6783db0e63cb51dfc767ae5a31a295c76
Diffstat (limited to 'setup.py')
-rw-r--r-- | setup.py | 45 |
1 files changed, 45 insertions, 0 deletions
@@ -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) |