mirror of
https://github.com/apache/superset.git
synced 2026-04-19 16:14:52 +00:00
fix: handle TIME column serialization (#16869)
* Add support for datetime.time in json_int_dttm_ser * Test base_json_conv support for datetime.time * Group types by conversion function for JSON dump
This commit is contained in:
committed by
GitHub
parent
675ffaf8df
commit
0d77f36679
@@ -563,7 +563,7 @@ def base_json_conv(obj: Any,) -> Any: # pylint: disable=inconsistent-return-sta
|
||||
return list(obj)
|
||||
if isinstance(obj, decimal.Decimal):
|
||||
return float(obj)
|
||||
if isinstance(obj, uuid.UUID):
|
||||
if isinstance(obj, (uuid.UUID, time, LazyString)):
|
||||
return str(obj)
|
||||
if isinstance(obj, timedelta):
|
||||
return format_timedelta(obj)
|
||||
@@ -572,8 +572,6 @@ def base_json_conv(obj: Any,) -> Any: # pylint: disable=inconsistent-return-sta
|
||||
return obj.decode("utf-8")
|
||||
except Exception: # pylint: disable=broad-except
|
||||
return "[bytes]"
|
||||
if isinstance(obj, LazyString):
|
||||
return str(obj)
|
||||
|
||||
|
||||
def json_iso_dttm_ser(obj: Any, pessimistic: bool = False) -> str:
|
||||
@@ -587,7 +585,7 @@ def json_iso_dttm_ser(obj: Any, pessimistic: bool = False) -> str:
|
||||
val = base_json_conv(obj)
|
||||
if val is not None:
|
||||
return val
|
||||
if isinstance(obj, (datetime, date, time, pd.Timestamp)):
|
||||
if isinstance(obj, (datetime, date, pd.Timestamp)):
|
||||
obj = obj.isoformat()
|
||||
else:
|
||||
if pessimistic:
|
||||
|
||||
@@ -117,6 +117,7 @@ class TestUtils(SupersetTestCase):
|
||||
assert isinstance(base_json_conv(set([1])), list) is True
|
||||
assert isinstance(base_json_conv(Decimal("1.0")), float) is True
|
||||
assert isinstance(base_json_conv(uuid.uuid4()), str) is True
|
||||
assert isinstance(base_json_conv(time()), str) is True
|
||||
assert isinstance(base_json_conv(timedelta(0)), str) is True
|
||||
|
||||
def test_zlib_compression(self):
|
||||
|
||||
Reference in New Issue
Block a user