From 079d7793efecb72becc2e86f359503444437fcee Mon Sep 17 00:00:00 2001 From: "Karl O. Pinc" Date: Sun, 29 Sep 2024 20:08:42 -0500 Subject: [PATCH] Support tab-delimited download format --- src/pgwui_sql/views/sql.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/pgwui_sql/views/sql.py b/src/pgwui_sql/views/sql.py index fc02e53..fa8d336 100644 --- a/src/pgwui_sql/views/sql.py +++ b/src/pgwui_sql/views/sql.py @@ -269,11 +269,14 @@ class SQLResultsHandler(pgwui_core.core.SessionDBHandler): def make_csv_writer(self): vinfo = sys.version_info - if vinfo.major >= 3 and vinfo.minor >= 12: - quoting = csv.QUOTE_STRINGS + if self.uf.download_fmt == CSV: + if vinfo.major >= 3 and vinfo.minor >= 12: + quoting = csv.QUOTE_STRINGS + else: + quoting = csv.QUOTE_NONNUMERIC + return csv.writer(self.tfile, quoting=quoting) else: - quoting = csv.QUOTE_NONNUMERIC - return csv.writer(self.tfile, quoting=quoting) + return csv.writer(self.tfile, dialect=csv.excel_tab) def make_download(self, cur): # Optimized to minimize RAM usage @@ -394,8 +397,12 @@ def sql_view(request): pmd_response.content_type = 'text/csv' else: pmd_response.content_type = 'text/plain' + if uh.uf['download_fmt'] == CSV: + suffix = 'csv' + else: + suffix = 'txt' # Tab delimited pmd_response.content_disposition = \ - f'attachment; filename={response["dl_filename"]}.csv' + f'attachment; filename={response["dl_filename"]}.{suffix}' pmd_response.app_iter = codecs.iterencode(uh.tfile, 'utf_8') -- 2.34.1