def test_zarr_source_3(): import datetime from climetlab.utils.dates import to_datetime_list source = load_source( "zarr-s3", [ f"{S3_URL}/zarr/mini-hc-20200109.zarr", f"{S3_URL}/zarr/mini-hc-20200102.zarr", ], ) ds = source.to_xarray() assert len(ds.forecast_time) == 8 dates = to_datetime_list(ds.forecast_time) assert dates[0] == datetime.datetime(2000, 1, 2) assert dates[1] == datetime.datetime(2000, 1, 9) assert dates[2] == datetime.datetime(2001, 1, 2) assert dates[3] == datetime.datetime(2001, 1, 9) dates = to_datetime_list(ds.forecast_time.values) assert dates[0] == datetime.datetime(2000, 1, 2) assert dates[1] == datetime.datetime(2000, 1, 9) assert dates[2] == datetime.datetime(2001, 1, 2) assert dates[3] == datetime.datetime(2001, 1, 9)
def test_pandas_dates(): import pandas as pd assert to_datetime_list( pd.date_range(start="2020-01-02", end="2020-01-16", freq="w-thu")) == [ datetime.datetime(2020, 1, 2), datetime.datetime(2020, 1, 9), datetime.datetime(2020, 1, 16), ]
def test_to_datetimes_list(): assert to_datetime_list("20000101/to/20000103") == [ datetime.datetime(2000, 1, 1), datetime.datetime(2000, 1, 2), datetime.datetime(2000, 1, 3), ] assert to_datetime_list("2000-01-01/to/2000-01-03") == [ datetime.datetime(2000, 1, 1), datetime.datetime(2000, 1, 2), datetime.datetime(2000, 1, 3), ] assert to_datetime_list("2000-01-01/to/2000-01-10/by/3") == [ datetime.datetime(2000, 1, 1), datetime.datetime(2000, 1, 4), datetime.datetime(2000, 1, 7), datetime.datetime(2000, 1, 10), ] assert to_datetime_list((20000101, "to", 20000103)) == [ datetime.datetime(2000, 1, 1), datetime.datetime(2000, 1, 2), datetime.datetime(2000, 1, 3), ] assert to_datetime_list(("2000-01-01", "to", "2000-01-10", "by", "3")) == [ datetime.datetime(2000, 1, 1), datetime.datetime(2000, 1, 4), datetime.datetime(2000, 1, 7), datetime.datetime(2000, 1, 10), ] assert len(to_datetime_list((-10, "to", -1))) == 10
def to_datetime_list(self): return to_datetime_list(self.data.values)
def test_to_datetimes_list_grib(): source = load_source("file", "docs/examples/test.grib") for s in source: assert to_datetime_list(s) == [datetime.datetime(2020, 5, 13, 12, 0)]
datetime.datetime(2000, 1, 1), datetime.datetime(2000, 1, 4), datetime.datetime(2000, 1, 7), datetime.datetime(2000, 1, 10), ] assert to_datetime_list((20000101, "to", 20000103)) == [ datetime.datetime(2000, 1, 1), datetime.datetime(2000, 1, 2), datetime.datetime(2000, 1, 3), ] assert to_datetime_list(("2000-01-01", "to", "2000-01-10", "by", "3")) == [ datetime.datetime(2000, 1, 1), datetime.datetime(2000, 1, 4), datetime.datetime(2000, 1, 7), datetime.datetime(2000, 1, 10), ] assert len(to_datetime_list((-10, "to", -1))) == 10 def test_to_datetimes_list_grib(): source = load_source("file", "docs/examples/test.grib") for s in source: assert to_datetime_list(s) == [datetime.datetime(2020, 5, 13, 12, 0)] if __name__ == "__main__": # test_to_datetime() to_datetime_list()