From 1dd416570a3b4f5d431135459e9049e3eaf8f3a8 Mon Sep 17 00:00:00 2001 From: Maxime Beauchemin Date: Mon, 11 Apr 2016 21:22:54 -0700 Subject: [PATCH] Json dumps iso date for Table view (#328) --- caravel/viz.py | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/caravel/viz.py b/caravel/viz.py index 75381d7de473a..6037de9a1c387 100644 --- a/caravel/viz.py +++ b/caravel/viz.py @@ -245,20 +245,36 @@ def get_json(self): is_cached = False cache_timeout = self.cache_timeout payload = { + 'cache_timeout': cache_timeout, + 'csv_endpoint': self.csv_endpoint, 'data': self.get_data(), - 'query': self.query, 'form_data': self.form_data, 'json_endpoint': self.json_endpoint, - 'csv_endpoint': self.csv_endpoint, + 'query': self.query, 'standalone_endpoint': self.standalone_endpoint, - 'cache_timeout': cache_timeout, } payload['cached_dttm'] = datetime.now().isoformat().split('.')[0] logging.info("Caching for the next {} seconds".format( cache_timeout)) cache.set(cache_key, payload, timeout=self.cache_timeout) payload['is_cached'] = is_cached - return dumps(payload) + return self.json_dumps(payload) + + def json_dumps(self, obj): + """Used by get_json, can be overridden to use specific switches""" + return dumps(obj) + + @property + def data(self): + content = { + 'csv_endpoint': self.csv_endpoint, + 'form_data': self.form_data, + 'json_endpoint': self.json_endpoint, + 'standalone_endpoint': self.standalone_endpoint, + 'token': self.token, + 'viz_name': self.viz_type, + } + return content def get_csv(self): df = self.get_df() @@ -285,18 +301,6 @@ def csv_endpoint(self): def standalone_endpoint(self): return self.get_url(standalone="true") - @property - def data(self): - content = { - 'viz_name': self.viz_type, - 'json_endpoint': self.json_endpoint, - 'csv_endpoint': self.csv_endpoint, - 'standalone_endpoint': self.standalone_endpoint, - 'token': self.token, - 'form_data': self.form_data, - } - return content - @property def json_data(self): return dumps(self.data) @@ -356,6 +360,9 @@ def get_data(self): columns=list(df.columns), ) + def json_dumps(self, obj): + return json.dumps(obj, default=utils.json_iso_dttm_ser) + class PivotTableViz(BaseViz):