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