From 66fff6c1150bc6ab4b5175b68ee12e376db11286 Mon Sep 17 00:00:00 2001 From: Paul Brossier Date: Mon, 6 May 2019 22:36:51 +0200 Subject: [PATCH] [py] use universal_newlines=True to prevent decoding errors (see gh-247 gh-248) --- python/lib/gen_external.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/python/lib/gen_external.py b/python/lib/gen_external.py index 1425c9b8..e5f0a02d 100644 --- a/python/lib/gen_external.py +++ b/python/lib/gen_external.py @@ -120,23 +120,24 @@ def get_cpp_output(header=header, usedouble=False): print("Running command: {:s}".format(" ".join(cpp_cmd))) proc = subprocess.Popen(cpp_cmd, stderr=subprocess.PIPE, - stdout=subprocess.PIPE) + stdout=subprocess.PIPE, + universal_newlines=True) assert proc, 'Proc was none' cpp_output = proc.stdout.read() err_output = proc.stderr.read() if err_output: print("Warning: preprocessor produced errors or warnings:\n%s" \ - % err_output.decode('utf8')) + % err_output) if not cpp_output: raise_msg = "preprocessor output is empty! Running command " \ + "\"%s\" failed" % " ".join(cpp_cmd) if err_output: - raise_msg += " with stderr: \"%s\"" % err_output.decode('utf8') + raise_msg += " with stderr: \"%s\"" % err_output else: raise_msg += " with no stdout or stderr" raise Exception(raise_msg) if not isinstance(cpp_output, list): - cpp_output = [l.strip() for l in cpp_output.decode('utf8').split('\n')] + cpp_output = [l.strip() for l in cpp_output.split('\n')] return cpp_output -- 2.11.0