changeset fdb26cb372e1 in proteus:5.0
details: https://hg.tryton.org/proteus?cmd=changeset;node=fdb26cb372e1
description:
        Allow to use dict with non string as keys over XML-RPC

        issue8143
        review45961002
        (grafted from 2816e50d03a4e723fc0cbb276bd75e8fa417de8b)
diffstat:

 proteus/config.py |  14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diffs (24 lines):

diff -r 92009d4dd980 -r fdb26cb372e1 proteus/config.py
--- a/proteus/config.py Tue Feb 19 21:48:37 2019 +0100
+++ b/proteus/config.py Fri Mar 08 23:39:15 2019 +0100
@@ -62,6 +62,20 @@
 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 = {}

Reply via email to