You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ma...@apache.org on 2018/08/14 20:01:31 UTC

[incubator-superset] branch master updated: [bugfix] TIMESTAMP not detected as date (#5629)

This is an automated email from the ASF dual-hosted git repository.

maximebeauchemin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-superset.git


The following commit(s) were added to refs/heads/master by this push:
     new 4c2be71  [bugfix] TIMESTAMP not detected as date (#5629)
4c2be71 is described below

commit 4c2be71e838dfde511d486104160d37642f4b3d8
Author: Maxime Beauchemin <ma...@gmail.com>
AuthorDate: Tue Aug 14 13:01:28 2018 -0700

    [bugfix] TIMESTAMP not detected as date (#5629)
    
    * [bugfix] TIMESTAMP not detected as date
    
    * minor tweak
---
 superset/dataframe.py   | 8 ++++++--
 tests/dataframe_test.py | 9 +++++++++
 2 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/superset/dataframe.py b/superset/dataframe.py
index 2fecad9..447aa68 100644
--- a/superset/dataframe.py
+++ b/superset/dataframe.py
@@ -134,8 +134,12 @@ class SupersetDataFrame(object):
 
     @classmethod
     def is_date(cls, dtype):
-        if dtype.name:
-            return dtype.name.startswith('datetime')
+        if dtype and dtype.name:
+            return any([
+                dtype.name.lower().startswith(s)
+                for s in ['date', 'time']
+            ])
+        return False
 
     @classmethod
     def is_dimension(cls, dtype, column_name):
diff --git a/tests/dataframe_test.py b/tests/dataframe_test.py
index a773f08..c5ea504 100644
--- a/tests/dataframe_test.py
+++ b/tests/dataframe_test.py
@@ -4,6 +4,8 @@ from __future__ import division
 from __future__ import print_function
 from __future__ import unicode_literals
 
+import numpy as np
+
 from superset.dataframe import dedup, SupersetDataFrame
 from superset.db_engine_specs import BaseEngineSpec
 from .base_tests import SupersetTestCase
@@ -118,6 +120,13 @@ class SupersetDataFrameTestCase(SupersetTestCase):
             ],
         )
 
+    def test_is_date(self):
+        f = SupersetDataFrame.is_date
+        self.assertEquals(f(np.dtype('M')), True)
+
+        self.assertEquals(f(None), False)
+        self.assertEquals(f(np.dtype(np.int32)), False)
+
     def test_dedup_with_data(self):
         data = [
             ('a', 1),