Preprocess files in UTF-8 mode

Some (?) Python versions assume that text files are encoded as 7-bit ASCII and abort when encountering other encoding. Some of podman's markdown documentation files are encoded as UTF-8, and this needs to be specified explicitly when opening files.

Closes https://github.com/containers/podman/issues/16996.

[NO NEW TESTS NEEDED]

Signed-off-by: Erik Schnetter <schnetter@gmail.com>
This commit is contained in:
Erik Schnetter
2023-01-05 14:15:44 -05:00
committed by GitHub
parent 7f3dd309c6
commit 7826e1ced6

View File

@ -38,7 +38,7 @@ class Preprocessor():
outfile = os.path.splitext(infile)[0]
outfile_tmp = outfile + '.tmp.' + str(os.getpid())
with open(infile, 'r') as fh_in, open(outfile_tmp, 'w') as fh_out:
with open(infile, 'r', encoding='utf-8') as fh_in, open(outfile_tmp, 'w', encoding='utf-8') as fh_out:
for line in fh_in:
# '@@option foo' -> include file options/foo.md
if line.startswith('@@option '):
@ -71,7 +71,7 @@ class Preprocessor():
"""
for optionfile in self.used_by:
tmpfile = optionfile + '.tmp'
with open(optionfile, 'r') as fh_in, open(tmpfile, 'w') as fh_out:
with open(optionfile, 'r', encoding='utf-8') as fh_in, open(tmpfile, 'w', encoding='utf-8') as fh_out:
fh_out.write("####> This option file is used in:\n")
used_by = ', '.join(x for x in self.used_by[optionfile])
fh_out.write(f"####> podman {used_by}\n")
@ -96,7 +96,7 @@ class Preprocessor():
# treats them as one line and will unwantedly render the
# comment in its output.
fh_out.write("\n[//]: # (BEGIN included file " + path + ")\n")
with open(path, 'r') as fh_included:
with open(path, 'r', encoding='utf-8') as fh_included:
for opt_line in fh_included:
if opt_line.startswith('####>'):
continue