Commits

Jason R. Coombs committed c32c706 Merge

Merge with 1.4.2

  • Participants
  • Parent commits 58c44ae, 2669480

Comments (0)

Files changed (9)

 0d1bdb99a535a2c7ed4edd37141fb0b54348b713 1.4b1
 a13f8c18ce742bc83c794b9eea57980cb94ae18a 1.4
 9a5f26d7df8ef779cb5f40cc0389343fb4c61365 1.4.1
+274cb3beba4f22d5f461b0578b6d56e171d94f2e 1.4.2
   should use ``pkgutil.ImpImporter`` instead.
 
 -----
+1.4.2
+-----
+
+* Issue #116: Correct TypeError when reading a local package index on Python
+  3.
+
+-----
 1.4.1
 -----
 

File ez_setup.py

File contents unchanged.

File setuptools.egg-info/entry_points.txt

File contents unchanged.

File setuptools.egg-info/requires.txt

File contents unchanged.

File setuptools/compat.py

     unichr = unichr
     unicode = unicode
     bytes = str
-    from urllib import url2pathname, splittag
+    from urllib import url2pathname, splittag, pathname2url
     import urllib2
     from urllib2 import urlopen, HTTPError, URLError, unquote, splituser
     from urlparse import urlparse, urlunparse, urljoin, urlsplit, urlunsplit
     bytes = bytes
     from urllib.error import HTTPError, URLError
     import urllib.request as urllib2
-    from urllib.request import urlopen, url2pathname
+    from urllib.request import urlopen, url2pathname, pathname2url
     from urllib.parse import (
         urlparse, urlunparse, unquote, splituser, urljoin, urlsplit,
         urlunsplit, splittag,

File setuptools/package_index.py

         files = []
         for f in os.listdir(filename):
             if f=='index.html':
-                fp = open(os.path.join(filename,f),'rb')
+                fp = open(os.path.join(filename,f),'r')
                 body = fp.read()
                 fp.close()
                 break
     else:
         status, message, body = 404, "Path not found", "Not found"
 
-    return HTTPError(url, status, message,
-            {'content-type':'text/html'}, StringIO(body))
+    headers = {'content-type': 'text/html'}
+    return HTTPError(url, status, message, headers, StringIO(body))

File setuptools/tests/test_packageindex.py

 """Package Index Tests
 """
 import sys
+import os
 import unittest
 import pkg_resources
-from setuptools.compat import urllib2, httplib, HTTPError, unicode
+from setuptools.compat import urllib2, httplib, HTTPError, unicode, pathname2url
 import distutils.errors
 import setuptools.package_index
 from setuptools.tests.server import IndexServer
         self.assertEqual(url, 'https://example.com/bar')
         self.assertEqual(rev, '2995')
 
+    def test_local_index(self):
+        """
+        local_open should be able to read an index from the file system.
+        """
+        f = open('index.html', 'w')
+        f.write('<div>content</div>')
+        f.close()
+        try:
+            url = 'file:' + pathname2url(os.getcwd()) + '/'
+            res = setuptools.package_index.local_open(url)
+        finally:
+            os.remove('index.html')
+        assert 'content' in res.read()
+
+
 class TestContentCheckers(unittest.TestCase):
 
     def test_md5(self):

File setuptools/version.py

File contents unchanged.