Skip to content

Commit 7ab78c8

Browse files
add file-like logger
1 parent a892e82 commit 7ab78c8

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

cads_worker/worker.py

+16-1
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,24 @@ def wrapper(self, *args, session=None, **kwargs):
3636

3737

3838
class Context:
39-
def __init__(self, job_id: str, logger: Any):
39+
def __init__(self, job_id: str, logger: Any, write_type: str = "stdout"):
4040
self.job_id = job_id
4141
self.logger = logger
42+
self.write_type = write_type
43+
self.messages_buffer = ""
44+
45+
def write(self, message: str) -> None:
46+
"""Use the logger as a file-like object. Needed by tqdm progress bar."""
47+
self.messages_buffer += message
48+
49+
def flush(self) -> None:
50+
"""Write to the logger the content of the buffer."""
51+
if self.messages_buffer:
52+
if self.write_type == "stdout":
53+
self.add_stdout(self.messages_buffer)
54+
elif self.write_type == "stderr":
55+
self.add_stderr(self.messages_buffer)
56+
self.messages_buffer = ""
4257

4358
@ensure_session
4459
def add_user_visible_log(self, message: str, session: Any = None) -> None:

0 commit comments

Comments
 (0)