summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Ipsum <richard.ipsum@codethink.co.uk>2014-11-06 17:16:41 +0000
committerRichard Ipsum <richard.ipsum@codethink.co.uk>2014-11-06 17:16:41 +0000
commitd36d930802ddf5f7e6cd4ef39d40d3872d53afcd (patch)
tree9c4cd9f72188b7c6fb69714691dc7f07f156a23e
parentb069a2002dd1efa6a2dbb5c9b80b30fbb704b838 (diff)
downloadimport-d36d930802ddf5f7e6cd4ef39d40d3872d53afcd.tar.gz
move resolve stuff into resolve_version_constraints
-rwxr-xr-xexts/pip_find_deps.py (renamed from exts/pip.find_deps)65
1 files changed, 36 insertions, 29 deletions
diff --git a/exts/pip.find_deps b/exts/pip_find_deps.py
index 8cd8364..3666afe 100755
--- a/exts/pip.find_deps
+++ b/exts/pip_find_deps.py
@@ -166,6 +166,40 @@ def check_gt(dep, version):
% (dep.less_than, version))
dep.conflicts.append((('<', dep.less_than), ('>', version)))
+def resolve_version_constraints(requirements):
+ build_deps = {}
+
+ for r in requirements:
+ print('%s %s' % (r.project_name, r.specs))
+
+ if r.project_name not in build_deps:
+ build_deps[r.project_name] = Dependency()
+
+ for (op, version) in r.specs:
+ version = pkg_resources.parse_version(version)
+
+ #if no_conflict(requirements_versions_map[r.project_name], s):
+ # requirements_versions_map[r.project_name] += s
+ dep = build_deps[r.project_name]
+
+ print('dep.excludes: %s' % str(dep.excludes))
+
+ # TODO: replace with function table
+ if op == '==':
+ check_eqs(dep, version)
+ elif op == '!=':
+ dep.excludes.append(version)
+ # TODO: chk_eqs needed here
+ elif op == '<':
+ check_lt(dep, version)
+ elif op == '>':
+ check_gt(dep, version)
+
+ # Resolve versions
+ #client = xmlrpclib.ServerProxy(PYPI_URL)
+ #releases = client.package_releases(requirement.name)
+ return build_deps
+
def find_build_deps(source, name, version=None):
debug('source: %s' % source)
debug('name: %s' % name)
@@ -191,35 +225,8 @@ def find_build_deps(source, name, version=None):
print('%s has no build dependencies' % name)
else:
with open(build_deps_file) as f:
- for r in pkg_resources.parse_requirements(f):
- print('%s %s' % (r.project_name, r.specs))
-
- if r.project_name not in build_deps:
- build_deps[r.project_name] = Dependency()
-
- for (op, version) in r.specs:
- version = pkg_resources.parse_version(version)
-
- #if no_conflict(requirements_versions_map[r.project_name], s):
- # requirements_versions_map[r.project_name] += s
- dep = build_deps[r.project_name]
-
- print('dep.excludes: %s' % str(dep.excludes))
-
- # TODO: replace with function table
- if op == '==':
- check_eqs(dep, version)
- elif op == '!=':
- dep.excludes.append(version)
- # TODO: chk_eqs needed here
- elif op == '<':
- check_lt(dep, version)
- elif op == '>':
- check_gt(dep, version)
-
- # Resolve versions
- #client = xmlrpclib.ServerProxy(PYPI_URL)
- #releases = client.package_releases(requirement.name)
+ build_deps = resolve_version_constraints(
+ pkg_resources.parse_requirements(f))
return build_deps