[Zope3-Users] XMLRPC Method with **kwargs
Michael Howitz
mh at gocept.com
Fri Dec 14 02:30:25 EST 2007
Am 14.12.2007 um 01:29 schrieb Jeremy Roberts:
> Hello zope3 users!
>
> I'm using Zope-3.3.1, and I'm trying to expose a method via xmlrpc
> and I'm having trouble supporting a variable number of kwargs. My
> use case does not know ahead of time how many arguments will be
> passed to the method, hence the use of **kwargs in the method
> signature.
>
> I get the error:
> Unexpected Zope exception: TypeError: renderCode() takes at most 1
> argument (2 given).
Hi!
I think this is because XML-RPC does not support (optional) keyword
arguments, you only may use positional arguments. A solution for
optional arguments can be a dictionary containing the optional
arguments for your XML-RPC-View as the last parameter. But this
parameter is not optional itself.
So your view could look like:
class ToolCodeXMLRPC(MethodPublisher):
"""An XMLRPC view for ToolCode objects."""
def renderCode(self, data):
return self.context.renderCode(**data)
--
Yours sincerely,
Michael Howitz
gocept gmbh & co. kg · forsterstrasse 29 · 06112 halle/saale
www.gocept.com · fon: +49 345 12298898 · fax: +49 345 12298891
More information about the Zope3-users
mailing list