From aaa30a74b5b67966f075e087675e19f7e540e0b6 Mon Sep 17 00:00:00 2001 From: Christophe Monniez Date: Thu, 31 Aug 2017 10:49:39 +0200 Subject: [PATCH] [imp] module,http: open manifest files as utf-8 in a python2/3 compatible way --- odoo/http.py | 3 ++- odoo/modules/module.py | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/odoo/http.py b/odoo/http.py index de06e2472f3..4b69a155386 100644 --- a/odoo/http.py +++ b/odoo/http.py @@ -1311,7 +1311,8 @@ class Root(object): manifest_path = module_manifest(mod_path) path_static = opj(addons_path, module, 'static') if manifest_path and os.path.isdir(path_static): - manifest = ast.literal_eval(open(manifest_path).read()) + manifest_data = open(manifest_path, 'rb').read() + manifest = ast.literal_eval(pycompat.to_native(manifest_data)) if not manifest.get('installable', True): continue manifest['addons_path'] = addons_path diff --git a/odoo/modules/module.py b/odoo/modules/module.py index 586a43af69e..af2b28883c4 100644 --- a/odoo/modules/module.py +++ b/odoo/modules/module.py @@ -328,9 +328,9 @@ def load_information_from_description_file(module, mod_path=None): 'depends data demo test init_xml update_xml demo_xml'.split(), iter(list, None))) - f = tools.file_open(manifest_file) + f = tools.file_open(manifest_file, mode='rb') try: - info.update(ast.literal_eval(f.read())) + info.update(ast.literal_eval(pycompat.to_native(f.read()))) finally: f.close()