From 320d4dfcdd194aa69f9236c84f21dbfb8690068b Mon Sep 17 00:00:00 2001 From: Tarik Zegmott Date: Thu, 19 Feb 2026 16:07:20 -0500 Subject: [PATCH] fix(cadcclient): improve handling of stdout --- dtcli/utilities/cadcclient.py | 62 +++++++++++++++++++---------------- 1 file changed, 34 insertions(+), 28 deletions(-) diff --git a/dtcli/utilities/cadcclient.py b/dtcli/utilities/cadcclient.py index 3fc92d9..5a982e0 100644 --- a/dtcli/utilities/cadcclient.py +++ b/dtcli/utilities/cadcclient.py @@ -291,20 +291,23 @@ def dataset_md5s( query = query.replace("//", "/") logger.info(f"Running query: {query}") buffer = StringIO() - sys.stdout = buffer - _, _, queryClient = _connect() - queryClient.query( # type: ignore - query=query, - output_file=None, - response_format="csv", - tmptable=None, - lang="ADQL", - timeout=timeout, - data_only=True, - no_column_names=True, - ) - content = buffer.getvalue() - sys.stdout = sys.__stdout__ + original_stdout = sys.stdout + try: + sys.stdout = buffer + _, _, queryClient = _connect() + queryClient.query( # type: ignore + query=query, + output_file=None, + response_format="csv", + tmptable=None, + lang="ADQL", + timeout=timeout, + data_only=True, + no_column_names=True, + ) + content = buffer.getvalue() + finally: + sys.stdout = original_stdout paths = [] md5s = [] for line in content.split("\n"): @@ -354,20 +357,23 @@ def query( query = query.replace("//", "/") logger.info(f"Running query: {query}") buffer = StringIO() - sys.stdout = buffer - _, _, queryClient = _connect() - queryClient.query( # type: ignore - query=query, - output_file=None, - response_format="csv", - tmptable=None, - lang="ADQL", - timeout=timeout, - data_only=True, - no_column_names=True, - ) - content = buffer.getvalue() - sys.stdout = sys.__stdout__ + original_stdout = sys.stdout + try: + sys.stdout = buffer + _, _, queryClient = _connect() + queryClient.query( # type: ignore + query=query, + output_file=None, + response_format="csv", + tmptable=None, + lang="ADQL", + timeout=timeout, + data_only=True, + no_column_names=True, + ) + content = buffer.getvalue() + finally: + sys.stdout = original_stdout return [line.split(",") for line in content.split("\n")]