From 80ee74f139cc67f58d648aa99d3704ebdb6e2405 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Fri, 8 Mar 2019 23:39:15 +0100 Subject: [PATCH] Allow to use dict with non string as keys over XML-RPC issue8143 review45961002 --- proteus/config.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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 = {}