--- title: Utils keywords: fastai sidebar: home_sidebar summary: "General utilities. Should probably split up into `utils.time` and `utils.download`" description: "General utilities. Should probably split up into `utils.time` and `utils.download`" nb_path: "notebooks/01_utils.ipynb" ---
Example dates and times to test:
nasa_date = "2010-110"
iso_date = "2010-4-20"
nasa_datetime = "2010-110T10:12:14"
nasa_datetime_with_ms = nasa_datetime + ".123000"
iso_datetime = "2010-04-20T10:12:14"
iso_datetime_with_ms = iso_datetime + ".123000"
nasa_times = [nasa_date, nasa_datetime, nasa_datetime_with_ms]
iso_times = [iso_date, iso_datetime, iso_datetime_with_ms]
assert nasa_time_to_datetime(nasa_date) == dt.datetime(2010, 4, 20, 0, 0)
assert nasa_time_to_datetime(nasa_datetime) == dt.datetime(2010, 4, 20, 10, 12, 14)
assert nasa_time_to_datetime(nasa_datetime_with_ms) == dt.datetime(
2010, 4, 20, 10, 12, 14, 123000
)
Conversions to ISO format, but not providing hours if they are not in input:
for t in nasa_times:
print("Input:", t)
print(nasa_time_to_iso(t))
If hours are wanted in the isostring, use with_hours=True
:
for t in nasa_times:
print("Input:", t)
print(nasa_time_to_iso(t, with_hours=True))
assert nasa_time_to_iso(nasa_date, with_hours=True) == "2010-04-20T00:00:00"
assert nasa_time_to_iso(nasa_date) == "2010-04-20"
for t in iso_times:
print("Input:", t)
print(iso_to_nasa_time(t))
assert iso_to_nasa_time(iso_date) == nasa_date
assert nasa_time_to_iso(nasa_datetime) == iso_datetime
assert nasa_time_to_iso(nasa_datetime_with_ms) == iso_datetime_with_ms
assert iso_to_nasa_time(iso_datetime) == nasa_datetime
assert iso_to_nasa_time(iso_datetime_with_ms) == nasa_datetime_with_ms
fname = "abc.txt"
extensions = ".cub .cal.cub .map.cal.cub".split()
file_variations(fname, extensions)
assert len(extensions) == len(file_variations(fname, extensions))