On 25 Dec 2003 at 9:10, Kyler Laird wrote:
Trying what would seem to be an elegant way of calling it, Zope_server.test(first='foo', second='bar') yields an error. TypeError: __call__() got an unexpected keyword argument 'second'
You can not use keyword arguments with xml-rpc. Only positional arguments are allowed. Also, Zope's mapply() doesn't like passing a variable number of arguments to PythonScript objects that try to use *args or **kw. So, I've always just declared my exposed functions as taking one argument, a dictionary. All xml-rpc clients just pass one dictionary, and that dict serves as keywords. So your server function could be params: d={} and the client could call
Zope_server.test({'first': 'foo', 'second': 'bar'})
That still doesn't give me access to "second".
Back on the server side, you'd use something like this: first = d.get('first', None) second = d.get('second', None) -- Brad Clements, bkc@murkworks.com (315)268-1000 http://www.murkworks.com (315)268-9812 Fax http://www.wecanstopspam.org/ AOL-IM: BKClements