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/
pgpSEIZxieeCl.pgp
Description: PGP signature
