[wwwsearch-commits] r29100 - wwwsearch/mechanize/trunk/mechanize

jjlee at codespeak.net jjlee at codespeak.net
Wed Jun 21 22:29:51 CEST 2006


Author: jjlee
Date: Wed Jun 21 22:29:48 2006
New Revision: 29100

Added:
   wwwsearch/mechanize/trunk/mechanize/_upgrade.py
Modified:
   wwwsearch/mechanize/trunk/mechanize/__init__.py
   wwwsearch/mechanize/trunk/mechanize/_mechanize.py
   wwwsearch/mechanize/trunk/mechanize/_opener.py
   wwwsearch/mechanize/trunk/mechanize/_response.py
   wwwsearch/mechanize/trunk/mechanize/_urllib2.py
   wwwsearch/mechanize/trunk/mechanize/_urllib2_support.py
Log:
Move request / response class upgrade handlers into new module _upgrade

Modified: wwwsearch/mechanize/trunk/mechanize/__init__.py
==============================================================================
--- wwwsearch/mechanize/trunk/mechanize/__init__.py	(original)
+++ wwwsearch/mechanize/trunk/mechanize/__init__.py	Wed Jun 21 22:29:48 2006
@@ -24,8 +24,6 @@
     from _urllib2_support import XHTMLCompatibleHeadParser
 except ImportError:
     pass
-#from _gzip import HTTPGzipProcessor  # crap ATM
-
 
 # cookies
 from _clientcookie import Cookie, CookiePolicy, DefaultCookiePolicy, \

Modified: wwwsearch/mechanize/trunk/mechanize/_mechanize.py
==============================================================================
--- wwwsearch/mechanize/trunk/mechanize/_mechanize.py	(original)
+++ wwwsearch/mechanize/trunk/mechanize/_mechanize.py	Wed Jun 21 22:29:48 2006
@@ -14,6 +14,7 @@
 from _useragent import UserAgent
 from _html import DefaultFactory
 from _response import response_seek_wrapper, closeable_response
+import _upgrade
 import _request
 
 __version__ = (0, 1, 3, None, None)  # 0.1.3
@@ -49,42 +50,6 @@
             response.close()
         del self._history[:]
 
-# Horrible, but needed, at least until fork urllib2.  Even then, may want
-# to preseve urllib2 compatibility.
-def upgrade_response(response):
-    # a urllib2 handler constructed the response, i.e. the response is an
-    # urllib.addinfourl, instead of a _Util.closeable_response as returned
-    # by e.g. mechanize.HTTPHandler
-    try:
-        code = response.code
-    except AttributeError:
-        code = None
-    try:
-        msg = response.msg
-    except AttributeError:
-        msg = None
-
-    # may have already-.read() data from .seek() cache
-    data = None
-    get_data = getattr(response, "get_data", None)
-    if get_data:
-        data = get_data()
-
-    response = closeable_response(
-        response.fp, response.info(), response.geturl(), code, msg)
-    response = response_seek_wrapper(response)
-    if data:
-        response.set_data(data)
-    return response
-class ResponseUpgradeProcessor(urllib2.BaseHandler):
-    # upgrade responses to be .close()able without becoming unusable
-    handler_order = 0  # before anything else
-    def any_response(self, request, response):
-        if not hasattr(response, 'closeable_response'):
-            response = upgrade_response(response)
-        return response
-
-
 class Browser(UserAgent):
     """Browser-like class with support for history, forms and links.
 
@@ -101,7 +66,7 @@
     """
 
     handler_classes = UserAgent.handler_classes.copy()
-    handler_classes["_response_upgrade"] = ResponseUpgradeProcessor
+    handler_classes["_response_upgrade"] = _upgrade.ResponseUpgradeProcessor
     default_others = copy.copy(UserAgent.default_others)
     default_others.append("_response_upgrade")
 
@@ -239,7 +204,7 @@
         if not hasattr(response, "seek"):
             response = response_seek_wrapper(response)
         if not hasattr(response, "closeable_response"):
-            response = upgrade_response(response)
+            response = _upgrade.upgrade_response(response)
         else:
             response = copy.copy(response)
 

Modified: wwwsearch/mechanize/trunk/mechanize/_opener.py
==============================================================================
--- wwwsearch/mechanize/trunk/mechanize/_opener.py	(original)
+++ wwwsearch/mechanize/trunk/mechanize/_opener.py	Wed Jun 21 22:29:48 2006
@@ -21,6 +21,7 @@
     set = sets.Set
 
 import _urllib2_support
+import _upgrade
 from _util import isstringlike
 from _request import Request
 
@@ -257,7 +258,7 @@
         urllib2.FTPHandler,
         urllib2.FileHandler,
         # processors
-        _urllib2_support.HTTPRequestUpgradeProcessor,
+        _upgrade.HTTPRequestUpgradeProcessor,
         _urllib2_support.HTTPCookieProcessor,
         _urllib2_support.HTTPErrorProcessor,
         ]

Modified: wwwsearch/mechanize/trunk/mechanize/_response.py
==============================================================================
--- wwwsearch/mechanize/trunk/mechanize/_response.py	(original)
+++ wwwsearch/mechanize/trunk/mechanize/_response.py	Wed Jun 21 22:29:48 2006
@@ -342,3 +342,31 @@
     mime_headers = mimetools.Message(StringIO("\n".join(hdr_text)))
     r = closeable_response(StringIO(data), mime_headers, url, code, msg)
     return response_seek_wrapper(r)
+
+# Horrible, but needed, at least until fork urllib2.  Even then, may want
+# to preseve urllib2 compatibility.
+def upgrade_response(response):
+    # a urllib2 handler constructed the response, i.e. the response is an
+    # urllib.addinfourl, instead of a _Util.closeable_response as returned
+    # by e.g. mechanize.HTTPHandler
+    try:
+        code = response.code
+    except AttributeError:
+        code = None
+    try:
+        msg = response.msg
+    except AttributeError:
+        msg = None
+
+    # may have already-.read() data from .seek() cache
+    data = None
+    get_data = getattr(response, "get_data", None)
+    if get_data:
+        data = get_data()
+
+    response = closeable_response(
+        response.fp, response.info(), response.geturl(), code, msg)
+    response = response_seek_wrapper(response)
+    if data:
+        response.set_data(data)
+    return response

Added: wwwsearch/mechanize/trunk/mechanize/_upgrade.py
==============================================================================
--- (empty file)
+++ wwwsearch/mechanize/trunk/mechanize/_upgrade.py	Wed Jun 21 22:29:48 2006
@@ -0,0 +1,32 @@
+from urllib2 import BaseHandler
+
+from _request import Request
+from _response import upgrade_response
+
+
+class HTTPRequestUpgradeProcessor(BaseHandler):
+    # upgrade urllib2.Request to this module's Request
+    # yuck!
+    handler_order = 0  # before anything else
+
+    def http_request(self, request):
+        if not hasattr(request, "add_unredirected_header"):
+            newrequest = Request(request._Request__original, request.data,
+                                 request.headers)
+            try: newrequest.origin_req_host = request.origin_req_host
+            except AttributeError: pass
+            try: newrequest.unverifiable = request.unverifiable
+            except AttributeError: pass
+            request = newrequest
+        return request
+
+    https_request = http_request
+
+
+class ResponseUpgradeProcessor(BaseHandler):
+    # upgrade responses to be .close()able without becoming unusable
+    handler_order = 0  # before anything else
+    def any_response(self, request, response):
+        if not hasattr(response, 'closeable_response'):
+            response = upgrade_response(response)
+        return response

Modified: wwwsearch/mechanize/trunk/mechanize/_urllib2.py
==============================================================================
--- wwwsearch/mechanize/trunk/mechanize/_urllib2.py	(original)
+++ wwwsearch/mechanize/trunk/mechanize/_urllib2.py	Wed Jun 21 22:29:48 2006
@@ -38,7 +38,6 @@
 from _urllib2_support import \
      HTTPHandler, \
      HTTPRedirectHandler, \
-     HTTPRequestUpgradeProcessor, \
      HTTPEquivProcessor, \
      SeekableProcessor, \
      HTTPCookieProcessor, \
@@ -48,6 +47,12 @@
      HTTPResponseDebugProcessor, \
      HTTPRedirectDebugProcessor, \
      HTTPRobotRulesProcessor
+from _upgrade import \
+     HTTPRequestUpgradeProcessor, \
+     ResponseUpgradeProcessor
+# crap ATM
+## from _gzip import \
+##      HTTPGzipProcessor
 import httplib
 if hasattr(httplib, 'HTTPS'):
     from _urllib2_support import HTTPSHandler

Modified: wwwsearch/mechanize/trunk/mechanize/_urllib2_support.py
==============================================================================
--- wwwsearch/mechanize/trunk/mechanize/_urllib2_support.py	(original)
+++ wwwsearch/mechanize/trunk/mechanize/_urllib2_support.py	Wed Jun 21 22:29:48 2006
@@ -127,24 +127,6 @@
               "The last 30x error message was:\n"
 
 
-class HTTPRequestUpgradeProcessor(BaseHandler):
-    # upgrade urllib2.Request to this module's Request
-    # yuck!
-    handler_order = 0  # before anything else
-
-    def http_request(self, request):
-        if not hasattr(request, "add_unredirected_header"):
-            newrequest = Request(request._Request__original, request.data,
-                                 request.headers)
-            try: newrequest.origin_req_host = request.origin_req_host
-            except AttributeError: pass
-            try: newrequest.unverifiable = request.unverifiable
-            except AttributeError: pass
-            request = newrequest
-        return request
-
-    https_request = http_request
-
 # XXX would self.reset() work, instead of raising this exception?
 class EndOfHeadError(Exception): pass
 class AbstractHeadParser:


More information about the wwwsearch-commits mailing list