diff --git a/proteus/config.py b/proteus/config.py index b600fb20ff..ad119e5a2c 100644 --- a/proteus/config.py +++ b/proteus/config.py @@ -62,6 +62,20 @@ if bytes != str: xmlrpc.client.Marshaller.dispatch[bytearray] = dump_bytes +def dump_struct(self, value, write, escape=xmlrpc.client.escape): + converted_value = {} + for k, v in value.items(): + if isinstance(k, int): + k = str(k) + elif isinstance(k, float): + k = repr(k) + converted_value[k] = v + return self.dump_struct(converted_value, write, escape=escape) + + +xmlrpc.client.Marshaller.dispatch[dict] = dump_struct + + class XMLRPCDecoder(object): decoders = {}