From f97adbaac7e0372083dc1037bff588b566d4771c Mon Sep 17 00:00:00 2001 From: Zixian Cai <2891235+caizixian@users.noreply.github.com> Date: Wed, 8 Nov 2023 03:59:42 +1100 Subject: [PATCH] python: Handle unicode characters in config files (#521) Previously, opening a config file (such as `configs/example/hmc_hello.py`) containing non-ASCII characters causes UnicodeDecodeError. Also switch to use more an more idiomatic context manager for handling files. Change-Id: Ia39cbe2c420e9c94f3a84af459b7e5f4d9718d14 --- src/python/m5/main.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/python/m5/main.py b/src/python/m5/main.py index fa73fc3e33..31eaf83690 100644 --- a/src/python/m5/main.py +++ b/src/python/m5/main.py @@ -632,7 +632,9 @@ def main(): if not options.P: sys.path = [os.path.dirname(sys.argv[0])] + sys.path filename = sys.argv[0] - filedata = open(filename).read() + with open(filename, "rb") as fd: + # Handle config files with unicode characters + filedata = fd.read().decode("utf-8") filecode = compile(filedata, filename, "exec") scope = {"__file__": filename, "__name__": "__m5_main__"}