Hi all,
I'm newbie. I got a lot of problem using xmlrpc and numpy

I'm using numpy to to some staff and then serve the results via a twisted/XMLRPC server. If the result is a numpy float 64, I get an exception cause probably twisted can't handle this type. Infact is I downgrade the result to float32 with x=float(x), everything is ok. This is not so good cause if I forget this workaroud somewhere, it's a pain. Have you any better solution?

server:

|from  twisted.webimport  xmlrpc,  server
import  numpyas  np

class  MioServer(xmlrpc.XMLRPC):
    """
    An example object to be published.
    """

    def  xmlrpc_test_np(self):
        return  np.sqrt(2)

if  __name__==  '__main__':
    from  twisted.internetimport  reactor
    r=  MioServer()
    reactor.listenTCP(7080,  server.Site(r))
    reactor.run()|

client:

|import  xmlrpclib

if  __name__=='__main__':
    x=xmlrpclib.ServerProxy('http://localhost:7080/')
    print  x.test_np()|

Exception:

|Traceback  (most recent call last):
  File  
"C:\Users\Stone\.eclipse\org.eclipse.platform_4.3.0_1709980481_win32_win32_x86\plugins\org.python.pydev_2.8.2.2013090511\pysrc\pydevd.py",
  line1446,  in  <module>
    debugger.run(setup['file'],  None,  None)
  File  
"C:\Users\Stone\.eclipse\org.eclipse.platform_4.3.0_1709980481_win32_win32_x86\plugins\org.python.pydev_2.8.2.2013090511\pysrc\pydevd.py",
  line1092,  in  run
    pydev_imports.execfile(file,  globals,  locals)  #execute the script
  File  "C:\Users\Stone\Documents\FastDose\src\Beagle\Prove e test\xmlrpc_client.py", 
 line28,  in  <module>
    print  x.test_np()
  File  "C:\Python27\lib\xmlrpclib.py",  line1224,  in  __call__
    return  self.__send(self.__name,  args)
  File  "C:\Python27\lib\xmlrpclib.py",  line1578,  in  __request
    verbose=self.__verbose
  File  "C:\Python27\lib\xmlrpclib.py",  line1264,  in  request
    return  self.single_request(host,  handler,  request_body,  verbose)
  File  "C:\Python27\lib\xmlrpclib.py",  line1297,  in  single_request
    return  self.parse_response(response)
  File  "C:\Python27\lib\xmlrpclib.py",  line1473,  in  parse_response
    return  u.close()
  File  "C:\Python27\lib\xmlrpclib.py",  line793,  in  close
    raise  Fault(**self._stack[0])
xmlrpclib.Fault:  <Fault  8002:  "Can't serialize output: cannot marshal <type 
'numpy.float64'> objects">|


<<attachment: nicola_cesca.vcf>>

_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

Reply via email to