From: Karl O. Pinc Date: Mon, 30 Sep 2024 01:08:42 +0000 (-0500) Subject: Support tab-delimited download format X-Git-Url: https://papio.biology.duke.edu/gitweb/?a=commitdiff_plain;h=079d7793efecb72becc2e86f359503444437fcee;p=pgwui_sql Support tab-delimited download format --- 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')