Please review this at http://codereview.appspot.com/3737043/

It comes from this issue
https://bugs.launchpad.net/openobject-server/+bug/689575

Affected files:
  M trytond/protocols/xmlrpc.py


Index: trytond/protocols/xmlrpc.py
===================================================================
--- a/trytond/protocols/xmlrpc.py
+++ b/trytond/protocols/xmlrpc.py
@@ -17,6 +17,7 @@
 import StringIO
 import base64
 import datetime
+from types import DictType

 # convert decimal to float before marshalling:
 from decimal import Decimal
@@ -33,6 +34,19 @@
         lambda self, value, write: self.dump_datetime(
                 datetime.datetime.combine(value, datetime.time()), write)

+def dump_struct(self, value, write, escape=xmlrpclib.escape):
+    converted_value = {}
+    for k, v in value.items():
+        if type(k) in (int, long):
+            k = str(int(k))
+        elif type(k) == float:
+            k = repr(k)
+        converted_value[k] = v
+    return self.dump_struct(converted_value, write, escape=escape)
+
+xmlrpclib.Marshaller.dispatch[DictType] = dump_struct
+
+
 def _end_double(self, data):
     self.append(Float(data))
     self._value = 0



-- 
Cédric Krier

B2CK SPRL
Rue de Rotterdam, 4
4000 Liège
Belgium
Tel: +32 472 54 46 59
Email/Jabber: [email protected]
Website: http://www.b2ck.com/

Attachment: pgpSEIZxieeCl.pgp
Description: PGP signature

Reply via email to