From 939f834a26ddbac0bdead0b60b1cdf52014f182f Mon Sep 17 00:00:00 2001 From: Mathias Guijarro Date: Wed, 14 Aug 2024 18:01:51 +0200 Subject: [PATCH] fix: formatting of stdout, stderr captured text for logger --- bec_widgets/cli/client_utils.py | 1 + bec_widgets/cli/server.py | 10 +++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/bec_widgets/cli/client_utils.py b/bec_widgets/cli/client_utils.py index c0fc2852..a647277a 100644 --- a/bec_widgets/cli/client_utils.py +++ b/bec_widgets/cli/client_utils.py @@ -100,6 +100,7 @@ def _start_plot_process(gui_id: str, gui_class: type, config: dict | str, logger env_dict = os.environ.copy() env_dict["PYTHONUNBUFFERED"] = "1" + if logger is None: stdout_redirect = subprocess.DEVNULL stderr_redirect = subprocess.DEVNULL diff --git a/bec_widgets/cli/server.py b/bec_widgets/cli/server.py index ba970c9a..4e0f200b 100644 --- a/bec_widgets/cli/server.py +++ b/bec_widgets/cli/server.py @@ -130,15 +130,15 @@ class BECWidgetsCLIServer: class SimpleFileLikeFromLogOutputFunc: def __init__(self, log_func): self._log_func = log_func + self._buffer = [] def write(self, buffer): - for line in buffer.rstrip().splitlines(): - line = line.rstrip() - if line: - self._log_func(line) + self._buffer.append(buffer) def flush(self): - return + lines, _, remaining = "".join(self._buffer).rpartition("\n") + self._log_func(lines) + self._buffer = [remaining] def close(self): return