Skip to content

Commit 8c9362f

Browse files
committed
Improve handling of scalars in NetCDFTimeConverter.convert
1 parent 531dd0d commit 8c9362f

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

nc_time_axis/__init__.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -287,11 +287,11 @@ def convert(cls, value, unit, axis):
287287

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

290-
if isinstance(value, (CalendarDateTime, cftime.datetime)):
291-
value = [value]
292-
293290
if isinstance(first_value, CalendarDateTime):
294-
result = ut.date2num([v.datetime for v in value])
291+
if isinstance(value, np.ndarray):
292+
result = ut.date2num([v.datetime for v in value])
293+
else:
294+
result = ut.date2num(value.datetime)
295295
else:
296296
result = ut.date2num(value)
297297

nc_time_axis/tests/unit/test_NetCDFTimeConverter.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,12 +110,16 @@ def test_numeric_iterable(self):
110110
def test_cftime_CalendarDateTime(self):
111111
val = CalendarDateTime(cftime.datetime(2014, 8, 12), '365_day')
112112
result = NetCDFTimeConverter().convert(val, None, None)
113-
np.testing.assert_array_equal(result, 5333.)
113+
expected = 5333.0
114+
assert result == expected
115+
assert np.isscalar(result)
114116

115117
def test_cftime_raw_date(self):
116118
val = cftime.DatetimeNoLeap(2014, 8, 12)
117119
result = NetCDFTimeConverter().convert(val, None, None)
118-
np.testing.assert_array_equal(result, 5333.)
120+
expected = 5333.0
121+
assert result == expected
122+
assert np.isscalar(result)
119123

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

0 commit comments

Comments
 (0)