changeset 849222352082 in trytond:default
details: https://hg.tryton.org/trytond?cmd=changeset&node=849222352082
description:
        Remove python2 compatibility code from fields.Binary

        issue11467
        review411111003
diffstat:

 trytond/model/fields/binary.py |  12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diffs (35 lines):

diff -r c7b0d5f64013 -r 849222352082 trytond/model/fields/binary.py
--- a/trytond/model/fields/binary.py    Mon May 02 16:25:17 2022 +0200
+++ b/trytond/model/fields/binary.py    Fri May 06 18:18:01 2022 +0200
@@ -9,13 +9,21 @@
 from .field import Field
 
 
+def caster(d):
+    if isinstance(d, bytes):
+        return d
+    elif isinstance(d, memoryview):
+        return bytes(d)
+    return bytes(d, encoding='utf8')
+
+
 class Binary(Field):
     '''
     Define a binary field (``bytes``).
     '''
     _type = 'binary'
     _sql_type = 'BLOB'
-    cast = bytearray if bytes == str else bytes
+    cast = staticmethod(caster)
 
     def __init__(self, string='', help='', required=False, readonly=False,
             domain=None, states=None, select=False, on_change=None,
@@ -89,8 +97,6 @@
                 continue
             value = i[name]
             if value:
-                if isinstance(value, str):
-                    value = value.encode('utf-8')
                 value = converter(value)
             else:
                 value = default

Reply via email to