From dde8e0d5ad6667c1eb58e194bc77096ba7ad1549 Mon Sep 17 00:00:00 2001
From: Kazuhiko SHIOZAKI <kazuhiko@nexedi.com>
Date: Tue, 4 Oct 2022 19:18:32 +0200
Subject: [PATCH] py2/py3: add str2unicode() utility function, that does
 nothing in Python 3.

---
 product/ERP5Type/Utils.py    | 4 ++++
 product/ERP5Type/__init__.py | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/product/ERP5Type/Utils.py b/product/ERP5Type/Utils.py
index a78bd055323..3116e114525 100644
--- a/product/ERP5Type/Utils.py
+++ b/product/ERP5Type/Utils.py
@@ -569,6 +569,8 @@ def checkPythonSourceCode(source_code_str, portal_type=None):
 
 if str is bytes:
   bytes2str = str2bytes = lambda s: s
+  def str2unicode(s):
+    return s.decode('utf-8')
   def unicode2str(s):
     return s.encode('utf-8')
 else:
@@ -576,6 +578,8 @@ else:
     return s.decode()
   def str2bytes(s):
     return s.encode()
+  def str2unicode(s):
+    return s
   def unicode2str(s):
     return s
 
diff --git a/product/ERP5Type/__init__.py b/product/ERP5Type/__init__.py
index 8713d729328..4dec9a57f9e 100644
--- a/product/ERP5Type/__init__.py
+++ b/product/ERP5Type/__init__.py
@@ -189,7 +189,7 @@ ModuleSecurityInfo('Products.ERP5Type.Utils').declarePublic(
     'int2letter', 'getMessageIdWithContext', 'getTranslationStringWithContext',
     'Email_parseAddressHeader', 'guessEncodingFromText',
     'isValidTALESExpression',
-    'ensure_list', 'bytes2str', 'str2bytes', 'unicode2str',
+    'ensure_list', 'bytes2str', 'str2bytes', 'str2unicode', 'unicode2str',
 )
 
 allow_module('Products.ERP5Type.Message')
-- 
2.30.9