From 53afc5ea032bbfe4aa98c0dc15318df85123fc9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Fri, 8 Mar 2019 23:40:20 +0100 Subject: [PATCH] Simplify xmlrpc marshallers for Python3 issue8143 review45961002 --- proteus/config.py | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/proteus/config.py b/proteus/config.py index ad119e5a2c..91191d3bc2 100644 --- a/proteus/config.py +++ b/proteus/config.py @@ -21,13 +21,6 @@ def dump_decimal(self, value, write): self.dump_struct(value, write) -def dump_bytes(self, value, write): - self.write = write - value = xmlrpc.client.Binary(value) - value.encode(self) - del self.write - - def dump_date(self, value, write): value = {'__class__': 'date', 'year': value.year, @@ -53,13 +46,11 @@ def dump_timedelta(self, value, write): } self.dump_struct(value, write) + xmlrpc.client.Marshaller.dispatch[Decimal] = dump_decimal xmlrpc.client.Marshaller.dispatch[datetime.date] = dump_date xmlrpc.client.Marshaller.dispatch[datetime.time] = dump_time xmlrpc.client.Marshaller.dispatch[datetime.timedelta] = dump_timedelta -if bytes != str: - xmlrpc.client.Marshaller.dispatch[bytes] = dump_bytes -xmlrpc.client.Marshaller.dispatch[bytearray] = dump_bytes def dump_struct(self, value, write, escape=xmlrpc.client.escape): @@ -90,6 +81,7 @@ class XMLRPCDecoder(object): return self.decoders[dct['__class__']](dct) return dct + XMLRPCDecoder.register('date', lambda dct: datetime.date(dct['year'], dct['month'], dct['day'])) XMLRPCDecoder.register('time', @@ -111,6 +103,7 @@ def end_struct(self, data): self._stack[mark:] = [dct] self._value = 0 + xmlrpc.client.Unmarshaller.dispatch['struct'] = end_struct _CONFIG = threading.local() @@ -322,7 +315,7 @@ class XmlrpcConfig(Config): super(XmlrpcConfig, self).__init__() self.url = url self.server = xmlrpc.client.ServerProxy( - url, allow_none=1, use_datetime=1, **kwargs) + url, allow_none=True, use_builtin_types=True, **kwargs) # TODO add user self.user = None self._context = self.server.model.res.user.get_preferences(True, {})