From a71df20855e1d5e875042ca34de9401951fb96a6 Mon Sep 17 00:00:00 2001 From: Mathieu Bridon Date: Sun, 17 Jun 2018 14:40:31 +0200 Subject: [PATCH] python: Explicitly use byte strings In both Python 2 and 3, zlib.Compress.compress() takes a byte string, and returns a byte string as well. In Python 2, the script was working because: 1. string literalls were byte strings; 2. opening a file in unicode mode, reading from it, then passing the unicode string to compress() would automatically encode to a byte string; On Python 3, the above two points are not valid any more, so: 1. zlib.Compress.compress() refuses the passed unicode string; 2. compressed_data, defined as an empty unicode string literal, can't be concatenated with the byte string returned by compress(); This commit fixes this by explicitly using byte strings where appropriate, so that the script works on both Python 2 and 3. Signed-off-by: Mathieu Bridon Reviewed-by: Eric Engestrom --- src/intel/genxml/gen_zipped_file.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/intel/genxml/gen_zipped_file.py b/src/intel/genxml/gen_zipped_file.py index 1d6bd568246..616409183f0 100644 --- a/src/intel/genxml/gen_zipped_file.py +++ b/src/intel/genxml/gen_zipped_file.py @@ -42,10 +42,10 @@ def main(): print("} genxml_files_table[] = {") xml_offset = 0 - compressed_data = '' + compressed_data = b'' for i in range(1, len(sys.argv)): filename = sys.argv[i] - xml = open(filename).read() + xml = open(filename, "rb").read() xml_length = len(xml) root = et.fromstring(xml) -- 2.30.2