[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