[Python-checkins] distutils2: Finishing support for eggs, the test suite is left
tarek.ziade
python-checkins at python.org
Sun Jun 20 23:04:52 CEST 2010
tarek.ziade pushed 947dc2559ea3 to distutils2:
http://hg.python.org/distutils2/rev/947dc2559ea3
changeset: 200:947dc2559ea3
user: Josip Djolonga
date: Sun Jun 06 15:15:07 2010 +0200
summary: Finishing support for eggs, the test suite is left
files: src/distutils2/_backport/pkgutil.py, src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/PKG-INFO, src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/SOURCES.txt, src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/dependency_links.txt, src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/entry_points.txt, src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/not-zip-safe, src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/requires.txt, src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/top_level.txt, src/distutils2/_backport/tests/fake_dists/strawberry-0.6.egg, src/distutils2/depgraph.py
diff --git a/src/distutils2/_backport/pkgutil.py b/src/distutils2/_backport/pkgutil.py
--- a/src/distutils2/_backport/pkgutil.py
+++ b/src/distutils2/_backport/pkgutil.py
@@ -749,18 +749,18 @@
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 @@
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 @@
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
--- /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 at 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
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
--- /dev/null
+++ b/src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/dependency_links.txt
@@ -0,0 +1,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
--- /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
--- /dev/null
+++ b/src/distutils2/_backport/tests/fake_dists/banana-0.4.egg/EGG-INFO/not-zip-safe
@@ -0,0 +1,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
--- /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
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 0000000000000000000000000000000000000000..6d160e8b161031ae52638514843592187925b757
GIT binary patch
literal 1402
zc$`yK)KALH(=X28%1l#;R!B%nEKbc!%uQ8LF-TCbRZuEUEh#N1$<NOz)-}*GOExsr
zEvPioGuBH at Pghci<toWY%~MFNNKIBKs4U6I&jU&+=q4*DW#$&-7nLX!R~G9i<QH3m
z7<vVXB^i2|dBv$kB^m}GVTed#QZb0uP**Wf*VMFDNGr<ERX|v)mz<xQo0ylPmzr2y
z84uK6l9-dD05v};Kfk27q$sffVnb?0W{Cz|OhZ#sNkK`)L5V9hr#O{MK_N9cBOmB5
zh0J1wy!;XcpxYIa^NWg7lS>r9UQWv|0ty0Ufu2)H%gjmDgJ}xL0otCbPy`8 at OrXVy
z$=M1e`3iV~M*-+)g_5F5g~as4%sjABpm0h{1UV)xlPkcRnT3l11j?rGw_!j6Vhl12
zuI}!-o_=or`X%`V at j0nwsX2Nj6(yk|oD9qiubF*7xU_<sfsy3}GXn#dK$usBW}XPL
zdBOgnLC&thaML(|CUIalO$4ZygTbxvn9cJCa*K8Yd7pq-5ZSZ<ZwLcyl*$Bd9}q?}
z%GU3+-(d%yJ- at a8FngYAJv`50)he!AtAbSdVkX?4u~u<++)e34e{3~_X5O|jF|J;B
zC3xwx-m|X72inV6*}Y^gtiD*1wpsGu-O%40%MDdGSw1j37$$7q`bcR1wJ4|Sg?Z{f
zrybfGuv%=l^lLM>i9RnLxBqqeU~_GC)B*8Q%^m+PITr6Z&8t31F+o4>xK^{d-p7?^
zx~J#&ZkWuS9<SEFoOjj3--Yb2mtJ3TW&iZ at 1KQ^&N4;mX5B=!V_JJD_rYtj1!&DME
z6jJkm at f=@}pP5%u3=ddwV4#ZQ4p;_;F99Leli98tF#_2jEDOYNBU4ffQu9($^O7s$
zb29U?!NvlU3?q{qGp<A<0cUS%tYT!qnS at v&NeIJT2(vL05VF~)kj+L(POOmRgw<qR
zi3wsdBiLjKCI)OtixrZz at HiMVb`TC;(kREwfG at 6CA#sJpco7ENF@*?^LS_Q-7U0dw
Q22#ojgxi7o*D`~60Pqom)c^nh
diff --git a/src/distutils2/depgraph.py b/src/distutils2/depgraph.py
--- a/src/distutils2/depgraph.py
+++ b/src/distutils2/depgraph.py
@@ -119,7 +119,7 @@
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 @@
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 @@
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)
--
Repository URL: http://hg.python.org/distutils2
More information about the Python-checkins
mailing list