python: Better get character ordinals
authorMathieu Bridon <bochecha@daitauha.fr>
Sun, 17 Jun 2018 12:44:46 +0000 (14:44 +0200)
committerEric Engestrom <eric.engestrom@intel.com>
Wed, 1 Aug 2018 13:26:19 +0000 (14:26 +0100)
In Python 2, iterating over a byte-string yields single-byte strings,
and we can pass them to ord() to get the corresponding integer.

In Python 3, iterating over a byte-string directly yields those
integers.

Transforming the byte string into a bytearray gives us a list of the
integers corresponding to each byte in the string, removing the need to
call ord().

This makes the script compatible with both Python 2 and 3.

Signed-off-by: Mathieu Bridon <bochecha@daitauha.fr>
Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
src/intel/genxml/gen_zipped_file.py

index af2008bea0399aea5c163dd3a1c52b25b846ba3e..1d6bd56824689acdaef282973e8095f443fb7879 100644 (file)
@@ -62,8 +62,8 @@ def main():
     print("")
     print("static const uint8_t compress_genxmls[] = {")
     print("   ", end='')
-    for i, c in enumerate(compressed_data, start=1):
-        print("0x%.2x, " % ord(c), end='\n   ' if not i % 12 else '')
+    for i, c in enumerate(bytearray(compressed_data), start=1):
+        print("0x%.2x, " % c, end='\n   ' if not i % 12 else '')
     print('\n};')