Skip to content

Commit

Permalink
Improve handling of scalars in NetCDFTimeConverter.convert
Browse files Browse the repository at this point in the history
  • Loading branch information
spencerkclark committed Aug 1, 2020
1 parent 531dd0d commit 8c9362f
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 6 deletions.
8 changes: 4 additions & 4 deletions nc_time_axis/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -287,11 +287,11 @@ def convert(cls, value, unit, axis):

ut = cftime.utime(cls.standard_unit, calendar=first_value.calendar)

if isinstance(value, (CalendarDateTime, cftime.datetime)):
value = [value]

if isinstance(first_value, CalendarDateTime):
result = ut.date2num([v.datetime for v in value])
if isinstance(value, np.ndarray):
result = ut.date2num([v.datetime for v in value])
else:
result = ut.date2num(value.datetime)
else:
result = ut.date2num(value)

Expand Down
8 changes: 6 additions & 2 deletions nc_time_axis/tests/unit/test_NetCDFTimeConverter.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,12 +110,16 @@ def test_numeric_iterable(self):
def test_cftime_CalendarDateTime(self):
val = CalendarDateTime(cftime.datetime(2014, 8, 12), '365_day')
result = NetCDFTimeConverter().convert(val, None, None)
np.testing.assert_array_equal(result, 5333.)
expected = 5333.0
assert result == expected
assert np.isscalar(result)

def test_cftime_raw_date(self):
val = cftime.DatetimeNoLeap(2014, 8, 12)
result = NetCDFTimeConverter().convert(val, None, None)
np.testing.assert_array_equal(result, 5333.)
expected = 5333.0
assert result == expected
assert np.isscalar(result)

def test_cftime_np_array_CalendarDateTime(self):
val = np.array([CalendarDateTime(cftime.datetime(2012, 6, 4),
Expand Down

0 comments on commit 8c9362f

Please sign in to comment.