From bad4b21f1a9869f0f1cf3d3bf01788adcb2f69d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C5=82awomir=20Nizio?= Date: Fri, 13 Dec 2019 21:06:23 +0100 Subject: [PATCH] [entropy.client.misc, entropy.output] fixes for Python 3 ConfigurationFiles._load_maybe_add (equo.client.misc): path is in bytes here _std_write (entropy.output): fixes crash in equo conf update with "Replace original with update" when there is an error in which case msg can be bytes: File ".../entropy/lib/entropy/tools.py", line 687, in movefile print_generic("!!! Failed to move", src, "to", dest) File ".../entropy/lib/entropy/output.py", line 596, in print_generic _std_write(msg, stderr = stderr) File ".../entropy/lib/entropy/output.py", line 493, in _std_write obj.write(msg) --- lib/entropy/client/misc.py | 3 ++- lib/entropy/output.py | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/entropy/client/misc.py b/lib/entropy/client/misc.py index da99038fb..60c53c0ab 100644 --- a/lib/entropy/client/misc.py +++ b/lib/entropy/client/misc.py @@ -251,7 +251,8 @@ class ConfigurationFiles(dict): self._entropy.output( darkred("%s: %s") % ( _("Automerging file"), - darkgreen(filepath), + darkgreen( + self._unicode_path(filepath)), ), importance = 0, level = "info" diff --git a/lib/entropy/output.py b/lib/entropy/output.py index 1dcac67d7..e6a6e1aea 100644 --- a/lib/entropy/output.py +++ b/lib/entropy/output.py @@ -489,6 +489,12 @@ def _std_write(msg, stderr = False): if stderr: obj = sys.stderr + if const_is_python3() and not const_isunicode(msg): + obj.flush() + obj.buffer.write(msg) + obj.flush() + return + try: obj.write(msg) except UnicodeEncodeError: