Skip to content

Commit

Permalink
[pre-commit.ci] auto fixes from pre-commit.com hooks
Browse files Browse the repository at this point in the history
for more information, see https://pre-commit.ci
  • Loading branch information
pre-commit-ci[bot] committed May 1, 2024
1 parent 82b7507 commit e82ce8a
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 86 deletions.
39 changes: 10 additions & 29 deletions src/nc_time_axis/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -305,18 +305,14 @@ def __init__(self, max_n_ticks, calendar, date_unit=None, min_n_ticks=3):
self.calendar = calendar
if date_unit is not None:
warnings.warn(
"The date_unit argument will be removed in "
"nc_time_axis version 1.5",
"The date_unit argument will be removed in " "nc_time_axis version 1.5",
DeprecationWarning,
)
self.date_unit = date_unit
else:
self.date_unit = _TIME_UNITS
if not self.date_unit.lower().startswith("days since"):
emsg = (
"The date unit must be days since for a NetCDF "
"time locator."
)
emsg = "The date unit must be days since for a NetCDF " "time locator."
raise ValueError(emsg)
self.resolution = _DEFAULT_RESOLUTION
self._cached_resolution = {}
Expand Down Expand Up @@ -353,9 +349,7 @@ def __call__(self):
return self.tick_values(vmin, vmax)

def tick_values(self, vmin, vmax):
vmin, vmax = mtransforms.nonsingular(
vmin, vmax, expander=1e-7, tiny=1e-13
)
vmin, vmax = mtransforms.nonsingular(vmin, vmax, expander=1e-7, tiny=1e-13)
lower = cftime.num2date(vmin, self.date_unit, calendar=self.calendar)
upper = cftime.num2date(vmax, self.date_unit, calendar=self.calendar)

Expand Down Expand Up @@ -412,17 +406,14 @@ def has_year_zero(year):
)
hours = self._max_n_locator.tick_values(in_hours[0], in_hours[1])
ticks = [
cftime.num2date(dt, hour_unit, calendar=self.calendar)
for dt in hours
cftime.num2date(dt, hour_unit, calendar=self.calendar) for dt in hours
]
elif resolution == "MINUTELY":
minute_unit = "minutes since 2000-01-01"
in_minutes = cftime.date2num(
[lower, upper], minute_unit, calendar=self.calendar
)
minutes = self._max_n_locator.tick_values(
in_minutes[0], in_minutes[1]
)
minutes = self._max_n_locator.tick_values(in_minutes[0], in_minutes[1])
ticks = [
cftime.num2date(dt, minute_unit, calendar=self.calendar)
for dt in minutes
Expand All @@ -432,9 +423,7 @@ def has_year_zero(year):
in_seconds = cftime.date2num(
[lower, upper], second_unit, calendar=self.calendar
)
seconds = self._max_n_locator.tick_values(
in_seconds[0], in_seconds[1]
)
seconds = self._max_n_locator.tick_values(in_seconds[0], in_seconds[1])
ticks = [
cftime.num2date(dt, second_unit, calendar=self.calendar)
for dt in seconds
Expand Down Expand Up @@ -475,12 +464,8 @@ def axisinfo(unit, axis):
majloc = NetCDFTimeDateLocator(4, calendar=calendar)
majfmt = AutoCFTimeFormatter(majloc, calendar=calendar)
if date_type is CalendarDateTime:
datemin = CalendarDateTime(
cftime.datetime(2000, 1, 1), calendar=calendar
)
datemax = CalendarDateTime(
cftime.datetime(2010, 1, 1), calendar=calendar
)
datemin = CalendarDateTime(cftime.datetime(2000, 1, 1), calendar=calendar)
datemax = CalendarDateTime(cftime.datetime(2010, 1, 1), calendar=calendar)
else:
datemin = date_type(2000, 1, 1)
datemax = date_type(2010, 1, 1)
Expand Down Expand Up @@ -510,9 +495,7 @@ def default_units(cls, sample_point, axis):
else:
# Deal with a single `sample_point` value.
if not hasattr(sample_point, "calendar"):
msg = (
"Expecting cftimes with an extra " '"calendar" attribute.'
)
msg = "Expecting cftimes with an extra " '"calendar" attribute.'
raise ValueError(msg)
else:
calendar = sample_point.calendar
Expand Down Expand Up @@ -573,9 +556,7 @@ def convert(cls, value, unit, axis):
else:
value = value.datetime

result = cftime.date2num(
value, _TIME_UNITS, calendar=first_value.calendar
)
result = cftime.date2num(value, _TIME_UNITS, calendar=first_value.calendar)

if shape is not None:
result = result.reshape(shape)
Expand Down
18 changes: 5 additions & 13 deletions src/nc_time_axis/tests/integration/test_plot.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,7 @@ def tearDown(self):
def test_360_day_calendar_CalendarDateTime(self):
calendar = "360_day"
datetimes = [
cftime.datetime(1986, month, 30, calendar=calendar)
for month in range(1, 6)
cftime.datetime(1986, month, 30, calendar=calendar) for month in range(1, 6)
]
cal_datetimes = [
nc_time_axis.CalendarDateTime(dt, calendar) for dt in datetimes
Expand All @@ -40,9 +39,7 @@ def test_360_day_calendar_CalendarDateTime(self):
np.testing.assert_array_equal(result_ydata, cal_datetimes)

def test_360_day_calendar_raw_dates(self):
datetimes = [
cftime.Datetime360Day(1986, month, 30) for month in range(1, 6)
]
datetimes = [cftime.Datetime360Day(1986, month, 30) for month in range(1, 6)]
(line1,) = plt.plot(datetimes)
result_ydata = line1.get_ydata()
np.testing.assert_array_equal(result_ydata, datetimes)
Expand All @@ -58,8 +55,7 @@ def test_360_day_calendar_raw_universal_dates(self):

def test_no_calendar_raw_universal_dates(self):
datetimes = [
cftime.datetime(1986, month, 30, calendar=None)
for month in range(1, 6)
cftime.datetime(1986, month, 30, calendar=None) for month in range(1, 6)
]
with self.assertRaisesRegex(ValueError, "defined"):
plt.plot(datetimes)
Expand All @@ -72,9 +68,7 @@ def test_fill_between(self):
for day in range(1, 31)
]
cdt = [nc_time_axis.CalendarDateTime(item, calendar) for item in dt]
temperatures = [
np.round(np.random.uniform(0, 12), 3) for _ in range(len(cdt))
]
temperatures = [np.round(np.random.uniform(0, 12), 3) for _ in range(len(cdt))]

plt.fill_between(cdt, temperatures, 0)

Expand All @@ -92,9 +86,7 @@ def teardown_function(function):
TICKS = {
"List[cftime.datetime]": [cftime.Datetime360Day(1986, 2, 1)],
"List[CalendarDateTime]": [
nc_time_axis.CalendarDateTime(
cftime.Datetime360Day(1986, 2, 1), "360_day"
)
nc_time_axis.CalendarDateTime(cftime.Datetime360Day(1986, 2, 1), "360_day")
],
}

Expand Down
24 changes: 6 additions & 18 deletions src/nc_time_axis/tests/unit/test_CalendarDateTime.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,23 +11,17 @@
@pytest.mark.filterwarnings("ignore::DeprecationWarning")
class Test___eq__(unittest.TestCase):
def setUp(self):
self.cdt = CalendarDateTime(
cftime.datetime(1967, 7, 22, 3, 6), "360_day"
)
self.cdt = CalendarDateTime(cftime.datetime(1967, 7, 22, 3, 6), "360_day")

def test_equal(self):
self.assertTrue(self.cdt == self.cdt)

def test_diff_cal(self):
other_cdt = CalendarDateTime(
cftime.datetime(1967, 7, 22, 3, 6), "365_day"
)
other_cdt = CalendarDateTime(cftime.datetime(1967, 7, 22, 3, 6), "365_day")
self.assertFalse(self.cdt == other_cdt)

def test_diff_datetime(self):
other_cdt = CalendarDateTime(
cftime.datetime(1992, 11, 23, 3, 6), "360_day"
)
other_cdt = CalendarDateTime(cftime.datetime(1992, 11, 23, 3, 6), "360_day")
self.assertFalse(self.cdt == other_cdt)

def test_diff_type(self):
Expand All @@ -37,23 +31,17 @@ def test_diff_type(self):
@pytest.mark.filterwarnings("ignore::DeprecationWarning")
class Test__ne__(unittest.TestCase):
def setUp(self):
self.cdt = CalendarDateTime(
cftime.datetime(1967, 7, 22, 3, 6), "360_day"
)
self.cdt = CalendarDateTime(cftime.datetime(1967, 7, 22, 3, 6), "360_day")

def test_equal(self):
self.assertFalse(self.cdt != self.cdt)

def test_diff_cal(self):
other_cdt = CalendarDateTime(
cftime.datetime(1967, 7, 22, 3, 6), "365_day"
)
other_cdt = CalendarDateTime(cftime.datetime(1967, 7, 22, 3, 6), "365_day")
self.assertTrue(self.cdt != other_cdt)

def test_diff_datetime(self):
other_cdt = CalendarDateTime(
cftime.datetime(1992, 11, 23, 3, 6), "360_day"
)
other_cdt = CalendarDateTime(cftime.datetime(1992, 11, 23, 3, 6), "360_day")
self.assertTrue(self.cdt != other_cdt)

def test_diff_type(self):
Expand Down
4 changes: 1 addition & 3 deletions src/nc_time_axis/tests/unit/test_NetCDFTimeConverter.py
Original file line number Diff line number Diff line change
Expand Up @@ -221,9 +221,7 @@ def test_cftime_np_array_raw_date(self):
self.assertEqual(result, np.array([4473.0]))

def test_cftime_np_array_raw_universal_date(self):
val = np.array(
[cftime.datetime(2012, 6, 4, calendar="360_day")], dtype=object
)
val = np.array([cftime.datetime(2012, 6, 4, calendar="360_day")], dtype=object)
result = NetCDFTimeConverter().convert(val, None, None)
self.assertEqual(result, np.array([4473.0]))

Expand Down
31 changes: 8 additions & 23 deletions src/nc_time_axis/tests/unit/test_NetCDFTimeDateLocator.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,7 @@ def setUp(self):
self.calendar = "365_day"

def check(self, max_n_ticks, num1, num2):
locator = NetCDFTimeDateLocator(
max_n_ticks=max_n_ticks, calendar=self.calendar
)
locator = NetCDFTimeDateLocator(max_n_ticks=max_n_ticks, calendar=self.calendar)
return locator.compute_resolution(
num1,
num2,
Expand All @@ -29,12 +27,8 @@ def check(self, max_n_ticks, num1, num2):
)

def test_one_minute(self):
self.assertEqual(
self.check(20, 0, 0.0003), ("SECONDLY", mdates.SEC_PER_DAY)
)
self.assertEqual(
self.check(10, 0.0003, 0), ("SECONDLY", mdates.SEC_PER_DAY)
)
self.assertEqual(self.check(20, 0, 0.0003), ("SECONDLY", mdates.SEC_PER_DAY))
self.assertEqual(self.check(10, 0.0003, 0), ("SECONDLY", mdates.SEC_PER_DAY))

def test_one_hour(self):
self.assertEqual(self.check(1, 0, 0.02), ("MINUTELY", 0))
Expand All @@ -45,9 +39,7 @@ def test_one_hour(self):
def test_one_day(self):
self.assertEqual(self.check(1, 0, 1), ("HOURLY", 0))
self.assertEqual(self.check(24, 0, 1), ("MINUTELY", 0))
self.assertEqual(
self.check(86400, 0, 1), ("SECONDLY", mdates.SEC_PER_DAY)
)
self.assertEqual(self.check(86400, 0, 1), ("SECONDLY", mdates.SEC_PER_DAY))

def test_30_days(self):
self.assertEqual(self.check(1, 0, 30), ("DAILY", 30))
Expand All @@ -71,9 +63,7 @@ def test_10_years(self):
self.assertEqual(self.check(10, 0, 10 * 365), ("MONTHLY", 121))
self.assertEqual(self.check(122, 0, 10 * 365), ("DAILY", 10 * 365))
self.assertEqual(self.check(10 * 365, 0, 10 * 365), ("HOURLY", 152))
self.assertEqual(
self.check(10 * 365 * 24, 0, 10 * 365), ("MINUTELY", 2)
)
self.assertEqual(self.check(10 * 365 * 24, 0, 10 * 365), ("MINUTELY", 2))
self.assertEqual(
self.check(10 * 365 * 86400, 0, 10 * 365),
("SECONDLY", mdates.SEC_PER_DAY),
Expand Down Expand Up @@ -102,9 +92,7 @@ def setUp(self):
self.calendar = "365_day"

def check(self, max_n_ticks, num1, num2):
locator = NetCDFTimeDateLocator(
max_n_ticks=max_n_ticks, calendar=self.calendar
)
locator = NetCDFTimeDateLocator(max_n_ticks=max_n_ticks, calendar=self.calendar)
return locator.tick_values(num1, num2)

def test_secondly(self):
Expand Down Expand Up @@ -160,18 +148,15 @@ def setUp(self):
]

def check(self, max_n_ticks, num1, num2, calendar):
locator = NetCDFTimeDateLocator(
max_n_ticks=max_n_ticks, calendar=calendar
)
locator = NetCDFTimeDateLocator(max_n_ticks=max_n_ticks, calendar=calendar)
return locator.tick_values(num1, num2)

def test_yearly_yr0_remove(self):
for calendar in self.all_calendars:
# convert values to dates, check that none of them has year 0
ticks = self.check(5, -2001 * 365, -1901 * 365, calendar)
year_ticks = [
cftime.num2date(t, _TIME_UNITS, calendar=calendar).year
for t in ticks
cftime.num2date(t, _TIME_UNITS, calendar=calendar).year for t in ticks
]
if calendar in self.yr0_remove_calendars:
self.assertNotIn(0, year_ticks)
Expand Down

0 comments on commit e82ce8a

Please sign in to comment.