[Checkins] SVN: zc.buildout/branches/regebro-python3/ dev.py now works under Python 2.6and Python 3.1.

Lennart Regebro regebro at gmail.com
Sun Nov 21 09:54:16 EST 2010


Log message for revision 118516:
  dev.py now works under Python 2.6and Python 3.1.
  

Changed:
  U   zc.buildout/branches/regebro-python3/dev.py
  U   zc.buildout/branches/regebro-python3/src/zc/buildout/buildout.py
  U   zc.buildout/branches/regebro-python3/src/zc/buildout/download.py

-=-
Modified: zc.buildout/branches/regebro-python3/dev.py
===================================================================
--- zc.buildout/branches/regebro-python3/dev.py	2010-11-21 14:36:46 UTC (rev 118515)
+++ zc.buildout/branches/regebro-python3/dev.py	2010-11-21 14:54:16 UTC (rev 118516)
@@ -19,7 +19,12 @@
 $Id$
 """
 
-import os, shutil, sys, subprocess, urllib.request, urllib.error, urllib.parse, subprocess
+import os, shutil, sys, subprocess
+try:
+    from urllib.request import urlopen
+except ImportError:
+    from urllib2 import urlopen
+    
 from optparse import OptionParser
 
 if sys.platform == 'win32':
@@ -102,7 +107,7 @@
         raise ImportError
     import setuptools # A flag.  Sometimes pkg_resources is installed alone.
 except ImportError:
-    ez_code = urllib.request.urlopen(setup_source).read().replace(b'\r\n', b'\n')
+    ez_code = urlopen(setup_source).read().replace(b'\r\n', b'\n')
     ez = {}
     exec(ez_code, ez)
     setup_args = dict(to_dir='eggs', download_delay=0)

Modified: zc.buildout/branches/regebro-python3/src/zc/buildout/buildout.py
===================================================================
--- zc.buildout/branches/regebro-python3/src/zc/buildout/buildout.py	2010-11-21 14:36:46 UTC (rev 118515)
+++ zc.buildout/branches/regebro-python3/src/zc/buildout/buildout.py	2010-11-21 14:54:16 UTC (rev 118516)
@@ -22,7 +22,11 @@
     from md5 import md5
     
 import base64
-import configparser
+try:
+    import configparser
+except ImportError:
+    import ConfigParser as configparser
+    
 import copy
 import distutils.errors
 import glob
@@ -798,7 +802,7 @@
         f = open(installed, 'w')
         _save_options('buildout', installed_options['buildout'], f)
         for part in installed_options['buildout']['parts'].split():
-            print(file=f)
+            f.write(os.linesep)
             _save_options(part, installed_options[part], f)
         f.close()
 
@@ -1269,6 +1273,7 @@
 
     def __setitem__(self, option, value):
         if not isinstance(value, str):
+            import pdb;pdb.set_trace()
             raise TypeError('Option values must be strings', value)
         self._data[option] = value
 
@@ -1390,10 +1395,12 @@
         value = '%(__buildout_space_n__)s' + value[2:]
     if value.endswith('\n\t'):
         value = value[:-2] + '%(__buildout_space_n__)s'
-    print(option, '=', value, file=f)
+    f.write(' '.join((option, '=', value)))
+    f.write(os.linesep)
 
 def _save_options(section, options, f):
-    print('[%s]' % section, file=f)
+    f.write('[%s]' % section)
+    f.write(os.linesep)
     items = list(options.items())
     items.sort()
     for option, value in items:
@@ -1491,7 +1498,7 @@
         hash.update((' '.join(filenames)).encode())
         for name in filenames:
             hash.update(open(os.path.join(dirpath, name)).read().encode())
-    return base64.b64encode(hash.digest()).strip().decode()
+    return str(base64.b64encode(hash.digest()).strip())
 
 def _dists_sig(dists):
     result = []

Modified: zc.buildout/branches/regebro-python3/src/zc/buildout/download.py
===================================================================
--- zc.buildout/branches/regebro-python3/src/zc/buildout/download.py	2010-11-21 14:36:46 UTC (rev 118515)
+++ zc.buildout/branches/regebro-python3/src/zc/buildout/download.py	2010-11-21 14:54:16 UTC (rev 118516)
@@ -17,6 +17,15 @@
     from hashlib import md5
 except ImportError:
     from md5 import new as md5
+try:
+    from urllib.request import FancyURLopener, URLopener, urlretrieve
+    from urllib.parse import urlparse
+    from urllib import request
+except ImportError:
+    from urllib import FancyURLopener, URLopener, urlretrieve
+    from urlparse import urlparse
+    import urllib as request
+    
 from zc.buildout.easy_install import realpath
 import logging
 import os
@@ -24,13 +33,12 @@
 import re
 import shutil
 import tempfile
-import urllib.request, urllib.parse, urllib.error
-import urllib.parse
+
 import zc.buildout
 
 
-class URLOpener(urllib.request.FancyURLopener):
-    http_error_default = urllib.request.URLopener.http_error_default
+class URLOpener(FancyURLopener):
+    http_error_default = URLopener.http_error_default
 
 
 class ChecksumError(zc.buildout.UserError):
@@ -151,7 +159,7 @@
         """
         if re.match(r"^[A-Za-z]:\\", url):
             url = 'file:' + url
-        parsed_url = urllib.parse.urlparse(url, 'file')
+        parsed_url = urlparse(url, 'file')
         url_scheme, _, url_path = parsed_url[:3]
         if url_scheme == 'file':
             self.logger.debug('Using local resource %s' % url)
@@ -166,11 +174,11 @@
                 "Couldn't download %r in offline mode." % url)
 
         self.logger.info('Downloading %s' % url)
-        urllib.request._urlopener = url_opener
+        request._urlopener = url_opener
         handle, tmp_path = tempfile.mkstemp(prefix='buildout-')
         try:
             try:
-                tmp_path, headers = urllib.request.urlretrieve(url, tmp_path)
+                tmp_path, headers = urlretrieve(url, tmp_path)
                 if not check_md5sum(tmp_path, md5sum):
                     raise ChecksumError(
                         'MD5 checksum mismatch downloading %r' % url)
@@ -195,7 +203,7 @@
         else:
             if re.match(r"^[A-Za-z]:\\", url):
                 url = 'file:' + url
-            parsed = urllib.parse.urlparse(url, 'file')
+            parsed = urlparse(url, 'file')
             url_path = parsed[2]
 
             if parsed[0] == 'file':



More information about the checkins mailing list