Why is the following not working? Is there any way to get keyword
arguments working with exposed XMLRPC functions?
~~~~~~~~~~~~~~~ ~ server.py
import SocketServer
from SimpleXMLRPCSer ver import
SimpleXMLRPCSer ver,SimpleXMLRP CRequestHandler
# Threaded mix-in
class
AsyncXMLRPCServ er(SocketServer .ThreadingMixIn ,SimpleXMLRPCSe rver):
pass
class XMLFunctions(ob ject):
def returnArgs(*arg s, **kwargs):
return kwargs.items()
# Instantiate and bind to localhost:1234
server = AsyncXMLRPCServ er(('', 8080), SimpleXMLRPCReq uestHandler)
# Register example object instance
server.register _instance(XMLFu nctions())
# run!
server.serve_fo rever()
~~~~~~~~~~~~~~~ ~ client.py
from xmlrpclib import ServerProxy, Error
server = ServerProxy("ht tp://localhost:8080" , allow_none=1) # local
server
try:
print server.returnAr gs("foo", bar="bar", baz="baz")
except Error, v:
print "ERROR", v
[seans-imac:~/Desktop/] halfitalian% ./client.py
Traceback (most recent call last):
File "./XMLRPC_client.p y", line 9, in <module>
print server.returnAr gs("foo", bar="bar", baz="baz")
TypeError: __call__() got an unexpected keyword argument 'bar'
~Sean