Redash CSV出力オプションを追加する

※過去にしてたインフラエンジニアの仕事を初心者向けに書き留めてます


RedashはPythonのCSVモジュールを使っていますが、細かいオプションを設定する方法が提供されていません。

そんな時はソースコードを修正しましょう。

CSVモジュール
csv – カンマ区切りのファイル - Python Module of the Week

Redashの修正箇所


/opt/redash/current/redash/utils/__init__.py
/opt/redash/current/redash/utils/_init_.py
WRITER_QUOTE = os.environ.get('REDASH_CSV_WRITER_QUOTE', 'QUOTE_MINIMAL')

~中略~

class UnicodeWriter:
   """
   A CSV writer which will write rows to CSV file "f",
   which is encoded in the given encoding.
   """
   def __init__(self, f, dialect=csv.excel, encoding=WRITER_ENCODING, **kwds):
       # Redirect output to a queue
       self.queue = cStringIO.StringIO()
       self.writer = csv.writer(self.queue, dialect=dialect, quoting=getattr(csv, WRITER_QUOTE), **kwds)

設定


/opt/redash/.env
/opt/redash/.env
export REDASH_CSV_WRITER_QUOTE="QUOTE_ALL"

よろしければ、サポートお願いします。 自分のモチベーションアップのためと、今後のためにインプットに使わせて頂き、またアウトプットできればと思っております。