ci: Fix missing sys.stdout.encoding in python2 runners

Regression in dad0230776
This commit is contained in:
Angus Gratton
2021-03-03 18:14:17 +11:00
parent 781b7f21dc
commit f0b32f0b79

View File

@ -81,10 +81,13 @@ def _decode_data(data):
if isinstance(data, bytes):
# convert bytes to string. This is a bit of a hack, we know that we want to log this
# later so encode to the stdout encoding with backslash escapes for anything non-encodable
encoding = sys.stdout.encoding
if encoding is None:
encoding = 'ascii'
try:
return data.decode(sys.stdout.encoding, "backslashreplace")
except UnicodeDecodeError: # Python <3.5 doesn't support backslashreplace
return data.decode(sys.stdout.encoding, "replace")
return data.decode(encoding, "backslashreplace")
except (UnicodeDecodeError, TypeError): # Python <3.5 doesn't support backslashreplace
return data.decode(encoding, "replace")
return data