Handle SimpleXMLRPCDispatcher arg count change in Py2.5

SimpleXMLRPCDispatcher.__init__ takes 3 arguments instead of 1 since
python 2.5, so we check for that with a hack, for I found no better way,
other than catching a TypeError exception.

Signed-off-by: martin f. krafft <madduck@madduck.net>
master
martin f. krafft 2008-03-12 14:23:09 +01:00 committed by Joey Hess
parent 2fa9da9f16
commit 8a43597a00
2 changed files with 8 additions and 2 deletions

View File

@ -9,3 +9,5 @@ After adding rst to plugins, ikiwiki --setup fails:
This is ikiwiki version 2.40 and This is ikiwiki version 2.40 and
[SimpleXMLRPCServer.py](http://svn.python.org/view/python/tags/r25/Lib/SimpleXMLRPCServer.py?rev=51918&view=markup) from python-2.5 [SimpleXMLRPCServer.py](http://svn.python.org/view/python/tags/r25/Lib/SimpleXMLRPCServer.py?rev=51918&view=markup) from python-2.5
[[done]]

View File

@ -61,8 +61,12 @@ def rpc_call(cmd, **kwargs):
class SimpleStdinOutXMLRPCHandler(SimpleXMLRPCDispatcher): class SimpleStdinOutXMLRPCHandler(SimpleXMLRPCDispatcher):
def __init__(self): def __init__(self, allow_none=False, encoding=None):
if SimpleXMLRPCDispatcher.__init__.func_code.co_argcount == 1:
# python2.4 and before only took one argument
SimpleXMLRPCDispatcher.__init__(self) SimpleXMLRPCDispatcher.__init__(self)
else:
SimpleXMLRPCDispatcher.__init__(self, allow_none, encoding)
def process_request(self, req): def process_request(self, req):
write(self._marshaled_dispatch(req)) write(self._marshaled_dispatch(req))