On Fri, 2010-02-05 at 18:24 +0100, Jean-Michel Pichavant wrote: > Jean-Michel Pichavant wrote: > > Deos anyone knows where to find an code sample describing how to > > implement the interface to marshall one object into XMLRPC compliant > > structures ? > > I googled without any success, and what google does not find does not > > exist. > > Let say I have this very simple class: > > class Point: > > def __init__(self, x, y): > > self.x = x > > self.y = y > > I've looked into xmlrpc code, I see 2 options: > > 1/ override the Marshaller class of client and server > > 2/ looks like the lib is supporting a WRAPPER list system, it uses to > > Marshall Datetime & Binary object. Can it be possible to add its own > > class (could require to emplement the 'encode' method) > > I sense I will spend much more time than required unless someone is > > pointing me in the right direction. > I realized I gave a poor example, actually the Point object is marshable > (marshallable ? like to invent new words), xmlrpc will try to marshall > using __dict__ if possible. > import os > class Point: > def __init__(self, x, y): > self.x = x > self.y = y > self.notMarshallable = os
This example doesn't make any sense. Why would you set a variable equal to an important module in a class named Point? What is it you are actually trying to accomplish? If you are trying to create an object publishing environment then maybe something like - rpc = xmlrpclib.loads(payload, use_datetime=True) method = rpc[1].split('.') classname = method[0] methodname = method[1] parameters = rpc[0] classclass = eval(classname) handler = classclass() call = getattr(handler, method_name) result = apply(call, parameters) result = xmlrpclib.dumps(tuple([result]), methodresponse=True) Obviously add copious amounts of exception handling and a security model. -- OpenGroupware developer: awill...@whitemice.org <http://whitemiceconsulting.blogspot.com/> OpenGroupare & Cyrus IMAPd documenation @ <http://docs.opengroupware.org/Members/whitemice/wmogag/file_view> -- http://mail.python.org/mailman/listinfo/python-list