summaryrefslogtreecommitdiff
path: root/distutils2/depgraph.py
diff options
context:
space:
mode:
authorTarek Ziade <tarek@ziade.org>2010-10-03 12:30:06 +0200
committerTarek Ziade <tarek@ziade.org>2010-10-03 12:30:06 +0200
commit47658d6c3a2d438c7f4e0de7471bb422b1610ca6 (patch)
tree7c942b04b0ab01d06b1af54ddcb05fa260281dfa /distutils2/depgraph.py
parent09fae4438308a7a316022a0e96afeee28d64a6dd (diff)
downloaddisutils2-47658d6c3a2d438c7f4e0de7471bb422b1610ca6.tar.gz
make sure depgraph don't choke on irrational installed versions
Diffstat (limited to 'distutils2/depgraph.py')
-rw-r--r--distutils2/depgraph.py15
1 files changed, 12 insertions, 3 deletions
diff --git a/distutils2/depgraph.py b/distutils2/depgraph.py
index fee524f..d8e92e3 100644
--- a/distutils2/depgraph.py
+++ b/distutils2/depgraph.py
@@ -4,7 +4,7 @@ and generate a dependency graph.
import sys
from StringIO import StringIO
from distutils2.errors import DistutilsError
-from distutils2.version import VersionPredicate
+from distutils2.version import VersionPredicate, IrrationalVersionError
__all__ = ['DependencyGraph', 'generate_graph', 'dependent_dists',
'graph_to_dot']
@@ -156,8 +156,17 @@ def generate_graph(dists):
graph.add_missing(dist, req)
else:
matched = False
- for (version, provider) in provided[name]:
- if predicate.match(version):
+ for version, provider in provided[name]:
+ try:
+ match = predicate.match(version)
+ except IrrationalVersionError:
+ # XXX small compat-mode
+ if version.split(' ' ) == 1:
+ match = True
+ else:
+ match = False
+
+ if match:
graph.add_edge(dist, provider, req)
matched = True
break