diff options
author | Monty Taylor <mordred@inaugust.com> | 2012-05-25 11:39:00 -0400 |
---|---|---|
committer | Monty Taylor <mordred@inaugust.com> | 2012-05-25 17:35:00 -0400 |
commit | 2e7b0fa8ce9cde259528b4711f388185f98e9384 (patch) | |
tree | 2e124334106c31390899da4ed78c7b0362aea247 /setup.py | |
parent | c9b747f78690502cbb6b6c67741a59b2e6eb3289 (diff) | |
download | oslo-version-2e7b0fa8ce9cde259528b4711f388185f98e9384.tar.gz |
Added support for proper bare URLs.
If we want to use github zipballs as a source of depends sometimes
(which we do) - we need to have the pip-requires parsing understand
that lines starting with http:// or https:// are urls and should go
to dependency_links.
Change-Id: I9218159872d6edfebd4b820e6db912e9aabdf7d7
Diffstat (limited to 'setup.py')
-rw-r--r-- | setup.py | 17 |
1 files changed, 17 insertions, 0 deletions
@@ -61,9 +61,19 @@ def parse_requirements(requirements_files=['requirements.txt', 'tools/pip-requires']): requirements = [] for line in get_reqs_from_files(requirements_files): + # For the requirements list, we need to inject only the portion + # after egg= so that distutils knows the package it's looking for + # such as: + # -e git://github.com/openstack/nova/master#egg=nova if re.match(r'\s*-e\s+', line): requirements.append(re.sub(r'\s*-e\s+.*#egg=(.*)$', r'\1', line)) + # such as: + # http://github.com/openstack/nova/zipball/master#egg=nova + elif re.match(r'\s*https?:', line): + requirements.append(re.sub(r'\s*https?:.*#egg=(.*)$', r'\1', + line)) + # -f lines are for index locations, and don't get used here elif re.match(r'\s*-f\s+', line): pass else: @@ -75,11 +85,18 @@ def parse_requirements(requirements_files=['requirements.txt', def parse_dependency_links(requirements_files=['requirements.txt', 'tools/pip-requires']): dependency_links = [] + # dependency_links inject alternate locations to find packages listed + # in requirements for line in get_reqs_from_files(requirements_files): + # skip comments and blank lines if re.match(r'(\s*#)|(\s*$)', line): continue + # lines with -e or -f need the whole line, minus the flag if re.match(r'\s*-[ef]\s+', line): dependency_links.append(re.sub(r'\s*-[ef]\s+', '', line)) + # lines that are only urls can go in unmolested + elif re.match(r'\s*https?:', line): + dependency_links.append(line) return dependency_links |