public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] gentoo-x86 commit in dev-python/httplib2/files: compat-2.6-0.4.0.patch
@ 2009-04-23  9:10 Patrick Lauer (patrick)
  0 siblings, 0 replies; 2+ messages in thread
From: Patrick Lauer (patrick) @ 2009-04-23  9:10 UTC (permalink / raw
  To: gentoo-commits

patrick     09/04/23 09:10:39

  Added:                compat-2.6-0.4.0.patch
  Log:
  Py 2.6 deprecation fix. Thanks to djc for pointing it out, thanks to Benoit Chesneau for the patch. Fixes #267184
  (Portage version: 2.2_rc31/cvs/Linux x86_64)

Revision  Changes    Path
1.1                  dev-python/httplib2/files/compat-2.6-0.4.0.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/dev-python/httplib2/files/compat-2.6-0.4.0.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/dev-python/httplib2/files/compat-2.6-0.4.0.patch?rev=1.1&content-type=text/plain

Index: compat-2.6-0.4.0.patch
===================================================================
Index: httplib2/__init__.py
===================================================================
--- httplib2/__init__.py	(revision 274)
+++ httplib2/__init__.py	(revision 275)
@@ -26,7 +26,6 @@
 
 import re 
 import sys 
-import md5
 import email
 import email.Utils
 import email.Message
@@ -42,7 +41,14 @@
 import calendar
 import time
 import random
-import sha
+# remove depracated warning in python2.6
+try:
+    from hashlib import sha1 as _sha, md5 as _md5
+except ImportError:
+    import sha
+    import md5
+    _sha = sha.new
+    _md5 = md5.new
 import hmac
 from gettext import gettext as _
 import socket
@@ -52,12 +58,27 @@
 except ImportError:
     socks = None
 
+# Build the appropriate socket wrapper for ssl
+try:
+    import ssl # python 2.6
+    _ssl_wrap_socket = ssl.wrap_socket
+except ImportError:
+    def _ssl_wrap_socket(sock, key_file, cert_file):
+        ssl_sock = socket.ssl(sock, key_file, cert_file)
+        return httplib.FakeSocket(sock, ssl_sock)
+
+
 if sys.version_info >= (2,3):
     from iri2uri import iri2uri
 else:
     def iri2uri(uri):
         return uri
 
+def has_timeout(timeout): # python 2.6
+    if hasattr(socket, '_GLOBAL_DEFAULT_TIMEOUT'):
+        return (timeout is not None and timeout is not socket._GLOBAL_DEFAULT_TIMEOUT)
+    return (timeout is not None)
+
 __all__ = ['Http', 'Response', 'ProxyInfo', 'HttpLib2Error',
   'RedirectMissingLocation', 'RedirectLimit', 'FailedToDecompressContent', 
   'UnimplementedDigestAuthOptionError', 'UnimplementedHmacDigestAuthOptionError',
@@ -182,7 +203,7 @@
         pass
     if isinstance(filename,unicode):
         filename=filename.encode('utf-8')
-    filemd5 = md5.new(filename).hexdigest()
+    filemd5 = _md5(filename).hexdigest()
     filename = re_url_scheme.sub("", filename)
     filename = re_slash.sub(",", filename)
 
@@ -363,11 +384,11 @@
             cache.set(cachekey, text)
 
 def _cnonce():
-    dig = md5.new("%s:%s" % (time.ctime(), ["0123456789"[random.randrange(0, 9)] for i in range(20)])).hexdigest()
+    dig = _md5("%s:%s" % (time.ctime(), ["0123456789"[random.randrange(0, 9)] for i in range(20)])).hexdigest()
     return dig[:16]
 
 def _wsse_username_token(cnonce, iso_now, password):
-    return base64.encodestring(sha.new("%s%s%s" % (cnonce, iso_now, password)).digest()).strip()
+    return base64.encodestring(_sha("%s%s%s" % (cnonce, iso_now, password)).digest()).strip()
 
 
 # For credentials we need two things, first 
@@ -441,7 +462,7 @@
 
     def request(self, method, request_uri, headers, content, cnonce = None):
         """Modify the request headers"""
-        H = lambda x: md5.new(x).hexdigest()
+        H = lambda x: _md5(x).hexdigest()
         KD = lambda s, d: H("%s:%s" % (s, d))
         A2 = "".join([method, ":", request_uri])
         self.challenge['cnonce'] = cnonce or _cnonce() 
@@ -501,13 +522,13 @@
         if self.challenge['pw-algorithm'] not in ['SHA-1', 'MD5']:
             raise UnimplementedHmacDigestAuthOptionError( _("Unsupported value for pw-algorithm: %s." % self.challenge['pw-algorithm']))
         if self.challenge['algorithm'] == 'HMAC-MD5':
-            self.hashmod = md5
+            self.hashmod = _md5
         else:
-            self.hashmod = sha
+            self.hashmod = _sha
         if self.challenge['pw-algorithm'] == 'MD5':
-            self.pwhashmod = md5
+            self.pwhashmod = _md5
         else:
-            self.pwhashmod = sha
+            self.pwhashmod = _sha
         self.key = "".join([self.credentials[0], ":",
                     self.pwhashmod.new("".join([self.credentials[1], self.challenge['salt']])).hexdigest().lower(),
                     ":", self.challenge['realm']
@@ -604,9 +625,6 @@
 
 AUTH_SCHEME_ORDER = ["hmacdigest", "googlelogin", "digest", "wsse", "basic"]
 
-def _md5(s):
-    return 
-
 class FileCache(object):
     """Uses a local directory as a store for cached files.
     Not really safe to use if multiple threads or processes are going to 
@@ -701,7 +719,7 @@
                 else:
                     self.sock = socket.socket(af, socktype, proto)
                 # Different from httplib: support timeouts.
-                if self.timeout is not None:
+                if has_timeout(self.timeout):
                     self.sock.settimeout(self.timeout)
                     # End of difference from httplib.
                 if self.debuglevel > 0:
@@ -737,11 +755,11 @@
             sock.setproxy(*self.proxy_info.astuple())
         else:
             sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-        if self.timeout is not None:
+        
+        if has_timeout(self.timeout):
             sock.settimeout(self.timeout)
         sock.connect((self.host, self.port))
-        ssl = socket.ssl(sock, self.key_file, self.cert_file)
-        self.sock = httplib.FakeSocket(sock, ssl)
+        self.sock =_ssl_wrap_socket(sock, self.key_file, self.cert_file)
 
 
 






^ permalink raw reply	[flat|nested] 2+ messages in thread

* [gentoo-commits] gentoo-x86 commit in dev-python/httplib2/files: compat-2.6-0.4.0.patch
@ 2009-12-28 22:33 Arfrever Frehtes Taifersar Arahesis (arfrever)
  0 siblings, 0 replies; 2+ messages in thread
From: Arfrever Frehtes Taifersar Arahesis (arfrever) @ 2009-12-28 22:33 UTC (permalink / raw
  To: gentoo-commits

arfrever    09/12/28 22:33:20

  Removed:              compat-2.6-0.4.0.patch
  Log:
  Delete older ebuild.



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2009-12-28 22:33 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-04-23  9:10 [gentoo-commits] gentoo-x86 commit in dev-python/httplib2/files: compat-2.6-0.4.0.patch Patrick Lauer (patrick)
  -- strict thread matches above, loose matches on Subject: below --
2009-12-28 22:33 Arfrever Frehtes Taifersar Arahesis (arfrever)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox