summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/distutils2/_backport/pkgutil.py19
-rw-r--r--src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/PKG-INFO18
-rw-r--r--src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/SOURCES.txt0
-rw-r--r--src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/dependency_links.txt1
-rw-r--r--src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/entry_points.txt3
-rw-r--r--src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/not-zip-safe1
-rw-r--r--src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/requires.txt6
-rw-r--r--src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/top_level.txt0
-rw-r--r--src/distutils2/_backport/tests/fake_dists/strawberry-0.6.eggbin0 -> 1402 bytes
-rw-r--r--src/distutils2/depgraph.py10
10 files changed, 45 insertions, 13 deletions
diff --git a/src/distutils2/_backport/pkgutil.py b/src/distutils2/_backport/pkgutil.py
index 22505c3..259b78a 100644
--- a/src/distutils2/_backport/pkgutil.py
+++ b/src/distutils2/_backport/pkgutil.py
@@ -749,18 +749,18 @@ class EggInfoDistribution(object):
s = s.strip()
if s and not s.startswith('#'): # skip blank lines/comments
yield s
- else:
- for ss in strs:
- for s in yield_lines(ss):
- yield s
+ else:
+ for ss in strs:
+ for s in yield_lines(ss):
+ yield s
requires = None
if path.endswith('.egg'):
if os.path.isdir(path):
- path = os.path.join(path, 'EGG-INFO', 'PKG-INFO')
- self.metadata = DistributionMetadata(path=path)
+ meta_path = os.path.join(path, 'EGG-INFO', 'PKG-INFO')
+ self.metadata = DistributionMetadata(path=meta_path)
try:
- req_path = os.path.join(path, 'EGG_INFO', 'requires.txt')
+ req_path = os.path.join(path, 'EGG-INFO', 'requires.txt')
requires = open(req_path, 'r').read()
except IOError:
requires = None
@@ -772,6 +772,7 @@ class EggInfoDistribution(object):
requires = zipf.get_data('EGG-INFO/requires.txt')
except IOError:
requires = None
+ self.name = self.metadata['name']
elif path.endswith('.egg-info'):
if os.path.isdir(path):
path = os.path.join(path, 'PKG-INFO')
@@ -798,13 +799,13 @@ class EggInfoDistribution(object):
warnings.warn('distutils2 does not support extensions in requires.txt')
break
else:
- match = _REQUIREMENT.match(line.strip())
+ match = self._REQUIREMENT.match(line.strip())
if not match:
raise ValueError('Distribution %s has ill formed '
'requires.txt file (%s)' %
(self.name, line))
else:
- if match.group('extra'):
+ if match.group('extras'):
s = 'Distribution %s uses extra requirements which'\
' are not supported in distutils' % (self.name)
warnings.warn(s)
diff --git a/src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/PKG-INFO b/src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/PKG-INFO
new file mode 100644
index 0000000..a7e118a
--- /dev/null
+++ b/src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/PKG-INFO
@@ -0,0 +1,18 @@
+Metadata-Version: 1.0
+Name: banana
+Version: 0.4
+Summary: A yellow fruit
+Home-page: http://en.wikipedia.org/wiki/Banana
+Author: Josip Djolonga
+Author-email: foo@nbar.com
+License: BSD
+Description: A fruit
+Keywords: foo bar
+Platform: UNKNOWN
+Classifier: Development Status :: 4 - Beta
+Classifier: Intended Audience :: Developers
+Classifier: Intended Audience :: Science/Research
+Classifier: License :: OSI Approved :: BSD License
+Classifier: Operating System :: OS Independent
+Classifier: Programming Language :: Python
+Classifier: Topic :: Scientific/Engineering :: GIS
diff --git a/src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/SOURCES.txt b/src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/SOURCES.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/SOURCES.txt
diff --git a/src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/dependency_links.txt b/src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/dependency_links.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/dependency_links.txt
@@ -0,0 +1 @@
+
diff --git a/src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/entry_points.txt b/src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/entry_points.txt
new file mode 100644
index 0000000..5d3e5f6
--- /dev/null
+++ b/src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/entry_points.txt
@@ -0,0 +1,3 @@
+
+ # -*- Entry points: -*-
+ \ No newline at end of file
diff --git a/src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/not-zip-safe b/src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/not-zip-safe
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/not-zip-safe
@@ -0,0 +1 @@
+
diff --git a/src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/requires.txt b/src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/requires.txt
new file mode 100644
index 0000000..4354305
--- /dev/null
+++ b/src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/requires.txt
@@ -0,0 +1,6 @@
+# this should be ignored
+
+strawberry >=0.5
+
+[section ignored]
+foo ==0.5
diff --git a/src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/top_level.txt b/src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/top_level.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/top_level.txt
diff --git a/src/distutils2/_backport/tests/fake_dists/strawberry-0.6.egg b/src/distutils2/_backport/tests/fake_dists/strawberry-0.6.egg
new file mode 100644
index 0000000..6d160e8
--- /dev/null
+++ b/src/distutils2/_backport/tests/fake_dists/strawberry-0.6.egg
Binary files differ
diff --git a/src/distutils2/depgraph.py b/src/distutils2/depgraph.py
index 7b05ab2..e138fc2 100644
--- a/src/distutils2/depgraph.py
+++ b/src/distutils2/depgraph.py
@@ -119,7 +119,7 @@ def generate_graph(dists):
provides = dist.metadata['Provides-Dist'] + dist.metadata['Provides']
for p in provides:
- comps = p.split(" ", 1)
+ comps = p.strip().rsplit(" ", 1)
name = comps[0]
version = None
if len(comps) == 2:
@@ -137,7 +137,7 @@ def generate_graph(dists):
requires = dist.metadata['Requires-Dist'] + dist.metadata['Requires']
for req in requires:
predicate = VersionPredicate(req)
- comps = req.split(" ", 1)
+ comps = req.strip().rsplit(" ", 1)
name = comps[0]
if not name in provided:
@@ -175,11 +175,13 @@ def dependent_dists(dists, dist):
return dep
if __name__ == '__main__':
+ import sys
+ sys.path.append('/home/josip/dev/distutils2/src/distutils2/_backport/tests/fake_dists')
dists = list(pkgutil.get_distributions(use_egg_info=True))
graph = generate_graph(dists)
for dist, reqs in graph.missing.iteritems():
if len(reqs) > 0:
print("Missing dependencies for %s: %s" % (dist.name,
", ".join(reqs)))
- f = open('output.dot', 'w')
- graph.to_dot(f, True)
+ f = open('/home/josip/Desktop/output.dot', 'w')
+ graph_to_dot(graph, f, True)