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 <bochecha@daitauha.fr>
Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
This commit is contained in:
Mathieu Bridon 2018-06-17 14:40:31 +02:00 committed by Eric Engestrom
parent 8678fe537a
commit a71df20855

View file

@ -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)