Making corrections for 2.7 compatibility (which mostly means bypassing the xml parsers by overwriting Transport.getparser)

This commit is contained in:
Josh Marshall 2010-10-30 00:56:45 -05:00
parent a8ad7ff0ea
commit 4a8dbe46c3
2 changed files with 25 additions and 15 deletions

View File

@ -113,25 +113,35 @@ class Transport(XMLTransport):
if request_body:
connection.send(request_body)
def _parse_response(self, file_h, sock):
response_body = ''
while 1:
if sock:
response = sock.recv(1024)
else:
response = file_h.read(1024)
if not response:
break
response_body += response
if self.verbose:
print 'body: %s' % response
return response_body
def getparser(self):
target = JSONTarget()
return JSONParser(target), target
class JSONParser(object):
def __init__(self, target):
self.target = target
def feed(self, data):
self.target.feed(data)
def close(self):
pass
class JSONTarget(object):
def __init__(self):
self.data = []
def feed(self, data):
self.data.append(data)
def close(self):
return ''.join(self.data)
class SafeTransport(XMLSafeTransport):
""" Just extends for HTTPS calls """
user_agent = Transport.user_agent
send_content = Transport.send_content
_parse_response = Transport._parse_response
getparser = Transport.getparser
class ServerProxy(XMLServerProxy):
"""

View File

@ -18,7 +18,7 @@ import distutils.core
distutils.core.setup(
name = "jsonrpclib",
version = "0.11",
version = "0.12",
packages = ["jsonrpclib"],
author = "Josh Marshall",
author_email = "catchjosh@gmail.com",