def test_convert_datetime_type_pandas_types(pd): assert bus.convert_datetime_type(bus._pd_timestamp(3000000)) == 3.0 assert bus.convert_datetime_type(pd.Period('1900', 'A-DEC')) == -2208988800000.0 assert bus.convert_datetime_type(pd.Period( '1900', 'A-DEC')) == bus.convert_datetime_type(np.datetime64("1900-01-01"))
def test_daterangeslider_value_as_date_when_set_as_timestamp(): start = date(2017, 8, 9) end = date(2017, 8, 10) s = mws.DateRangeSlider(start=start, end=end, # Bokeh serializes as ms since epoch, if they get set as numbers (e.g.) # by client side update, this is the units they will be value=(convert_datetime_type(start), convert_datetime_type(end))) assert s.value_as_date == (start, end)
def test_daterangeslider_value_as_datetime_when_set_as_timestamp(): start = datetime(2017, 8, 9, 0, 0) end = datetime(2017, 8, 10, 0, 0) s = mws.DateRangeSlider(start=start, end=end, # Bokeh serializes as ms since epoch, if they get set as numbers (e.g.) # by client side update, this is the units they will be value=(convert_datetime_type(start), convert_datetime_type(end))) assert s.value_as_datetime == (start, end)
def test_convert_datetime_type_pandas_types(pd) -> None: assert bus.convert_datetime_type(pd.Timestamp(3000000)) == 3.0 assert bus.convert_datetime_type(pd.Period('1900', 'A-DEC')) == -2208988800000.0 assert bus.convert_datetime_type(pd.Period( '1900', 'A-DEC')) == bus.convert_datetime_type(np.datetime64("1900-01-01")) assert np.isnan(bus.convert_datetime_type(pd.NaT))
def test_daterangeslider_value_as_date_when_set_mixed(): start = date(2017, 8, 9) end = date(2017, 8, 10) s = mws.DateRangeSlider(start=start, end=end, value=(start, convert_datetime_type(end))) assert s.value_as_date == (start, end) s = mws.DateRangeSlider(start=start, end=end, value=(convert_datetime_type(start), end)) assert s.value_as_date == (start, end)
def test_value_as_datetime_when_set_mixed(self) -> None: start = datetime(2017, 8, 9, 0, 0) end = datetime(2017, 8, 10, 0, 0) s = mws.DateRangeSlider(start=start, end=end, value=(start, convert_datetime_type(end))) assert s.value_as_datetime == (start, end) s = mws.DateRangeSlider(start=start, end=end, value=(convert_datetime_type(start), end)) assert s.value_as_datetime == (start, end)
def test_daterangeslider_value_as_datetime_when_set_mixed(): start = datetime(2017, 8, 9, 0, 0) end = datetime(2017, 8, 10, 0, 0) s = mws.DateRangeSlider(start=start, end=end, value=(start, convert_datetime_type(end))) assert s.value_as_datetime == (start, end) s = mws.DateRangeSlider(start=start, end=end, value=(convert_datetime_type(start), end)) assert s.value_as_datetime == (start, end)
def test_convert_datetime_type(): assert bus.convert_datetime_type(datetime.datetime(2018, 1, 3, 15, 37, 59, 922452)) == 1514993879922.452 assert bus.convert_datetime_type(datetime.datetime(2018, 1, 3, 15, 37, 59)) == 1514993879000.0 assert bus.convert_datetime_type(datetime.datetime(2016, 5, 11)) == 1462924800000.0 assert bus.convert_datetime_type(datetime.timedelta(3000)) == 259200000000.0 assert bus.convert_datetime_type(datetime.date(2016, 5, 11)) == 1462924800000.0 assert bus.convert_datetime_type(datetime.time(3, 54)) == 14040000.0 assert bus.convert_datetime_type(np.datetime64("2016-05-11")) == 1462924800000.0 assert bus.convert_datetime_type(np.timedelta64(3000, 'ms')) == 3000.0 assert bus.convert_datetime_type(pd.Timedelta("3000ms")) == 3000.0 assert bus.convert_datetime_type(bus._pd_timestamp(3000000)) == 3.0
def test_value_and_value_throttled(self) -> None: start = datetime(2021, 1, 1) end = datetime(2021, 12, 31) value = (convert_datetime_type(datetime(2021, 2, 1)), convert_datetime_type(datetime(2021, 2, 28))) s0 = mws.DateRangeSlider(start=start, end=end) with pytest.raises(UnsetValueError): s0.value with pytest.raises(UnsetValueError): s0.value_throttled s1 = mws.DateRangeSlider(start=start, end=end, value=value) assert s1.value == value assert s1.value_throttled == value
def test_convert_datetime_type_with_tz() -> None: # This ensures datetimes are sent to BokehJS timezone-naive # see https://github.com/bokeh/bokeh/issues/6480 for tz in pytz.all_timezones: assert bus.convert_datetime_type( datetime.datetime(2016, 5, 11, tzinfo=datetime.tzinfo(tz))) == 1462924800000.0
def test_convert_datetime_type(): assert bus.convert_datetime_type(datetime.datetime(2016, 5, 11)) == 1462924800000.0 assert bus.convert_datetime_type(datetime.timedelta(3000)) == 259200000000.0 assert bus.convert_datetime_type(datetime.date(2016, 5, 11)) == 1462924800000.0 assert bus.convert_datetime_type(datetime.time(3, 54)) == 14040000.0 assert bus.convert_datetime_type(np.datetime64("2016-05-11")) == 1462924800000.0 assert bus.convert_datetime_type(np.timedelta64(3000, 'ms')) == 3000.0 assert bus.convert_datetime_type(pd.Timedelta("3000ms")) == 3000.0 assert bus.convert_datetime_type(bus._pd_timestamp(3000000)) == 3.0
def test_convert_datetime_type(): assert bus.convert_datetime_type(datetime.datetime(2016, 5, 11)) == 1462924800000.0 assert bus.convert_datetime_type(datetime.timedelta(3000)) == 259200000000.0 assert bus.convert_datetime_type(datetime.date(2016, 5, 11)) == 1462924800000.0 assert bus.convert_datetime_type(datetime.time(3, 54)) == 14040000.0 assert bus.convert_datetime_type(np.datetime64("2016-05-11")) == 1462924800000.0 assert bus.convert_datetime_type(np.timedelta64(3000, 'ms')) == 3000.0 assert bus.convert_datetime_type(pd.Timedelta("3000ms")) == 3000.0 assert bus.convert_datetime_type(bus._pd_timestamp(3000000)) == 3.0
def test_value_as_datetime_when_set_as_timestamp(self) -> None: start = datetime(2017, 8, 9, 0, 0) end = datetime(2017, 8, 10, 0, 0) s = mws.DateSlider(start=start, end=end, # Bokeh serializes as ms since epoch, if they get set as numbers (e.g.) # by client side update, this is the units they will be value=convert_datetime_type(start)) assert s.value_as_datetime == start
def test_convert_datetime_type_non_pandas_types() -> None: assert bus.convert_datetime_type(datetime.datetime(2018, 1, 3, 15, 37, 59, 922452)) == 1514993879922.452 assert bus.convert_datetime_type(datetime.datetime(2018, 1, 3, 15, 37, 59)) == 1514993879000.0 assert bus.convert_datetime_type(datetime.datetime(2016, 5, 11)) == 1462924800000.0 assert bus.convert_datetime_type(datetime.time(3, 54)) == 14040000.0 assert bus.convert_datetime_type(datetime.date(2016, 5, 11)) == 1462924800000.0 assert bus.convert_datetime_type(np.datetime64("2016-05-11")) == 1462924800000.0
def test_convert_datetime_type_non_pandas_types(): assert bus.convert_datetime_type(datetime.datetime(2018, 1, 3, 15, 37, 59, 922452)) == 1514993879922.452 assert bus.convert_datetime_type(datetime.datetime(2018, 1, 3, 15, 37, 59)) == 1514993879000.0 assert bus.convert_datetime_type(datetime.datetime(2016, 5, 11)) == 1462924800000.0 assert bus.convert_datetime_type(datetime.date(2016, 5, 11)) == 1462924800000.0 assert bus.convert_datetime_type(datetime.time(3, 54)) == 14040000.0 assert bus.convert_datetime_type(np.datetime64("2016-05-11")) == 1462924800000.0
def test_convert_datetime_type_with_tz(): # This ensures datetimes are sent to BokehJS timezone-naive # see https://github.com/bokeh/bokeh/issues/6480 for tz in pytz.all_timezones: assert bus.convert_datetime_type(datetime.datetime(2016, 5, 11, tzinfo=datetime.tzinfo(tz))) == 1462924800000.0
def test_convert_datetime_type_pandas_types(pd): assert bus.convert_datetime_type(bus._pd_timestamp(3000000)) == 3.0 assert bus.convert_datetime_type(pd.Period('1900', 'A-DEC')) == -2208988800000.0 assert bus.convert_datetime_type(pd.Period('1900', 'A-DEC')) == bus.convert_datetime_type(np.datetime64("1900-01-01")) assert np.isnan(bus.convert_datetime_type(pd.NaT))