From 8c9362fb850929476cc8467d5451c7356467deb7 Mon Sep 17 00:00:00 2001 From: Spencer Clark Date: Sat, 1 Aug 2020 06:54:35 -0400 Subject: [PATCH] Improve handling of scalars in NetCDFTimeConverter.convert --- nc_time_axis/__init__.py | 8 ++++---- nc_time_axis/tests/unit/test_NetCDFTimeConverter.py | 8 ++++++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/nc_time_axis/__init__.py b/nc_time_axis/__init__.py index ccb8d87..ff0e52e 100644 --- a/nc_time_axis/__init__.py +++ b/nc_time_axis/__init__.py @@ -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) diff --git a/nc_time_axis/tests/unit/test_NetCDFTimeConverter.py b/nc_time_axis/tests/unit/test_NetCDFTimeConverter.py index 5d5edaf..9bdad63 100644 --- a/nc_time_axis/tests/unit/test_NetCDFTimeConverter.py +++ b/nc_time_axis/tests/unit/test_NetCDFTimeConverter.py @@ -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),