Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
DatetimeGregorian(1582, 10, 15, 1))
# The Julian calendar has no invalid dates
self.assertEqual(self.date8_julian + self.delta,
DatetimeJulian(1582, 10, 5, 1))
# Test going over the year boundary.
self.assertEqual(DatetimeGregorian(2000, 11, 1) + timedelta(days=30 + 31),
DatetimeGregorian(2001, 1, 1))
# Year 2000 is a leap year.
self.assertEqual(DatetimeGregorian(2000, 1, 1) + timedelta(days=31 + 29),
DatetimeGregorian(2000, 3, 1))
# Test the 366_day calendar.
self.assertEqual(DatetimeAllLeap(1, 1, 1) + timedelta(days=366 * 10 + 31),
DatetimeAllLeap(11, 2, 1))
# The Gregorian calendar has no year zero.
self.assertEqual(DatetimeGregorian(-1, 12, 31) + self.delta,
DatetimeGregorian(1, 1, 1, 1))
def invalid_add_1():
self.date1_365_day + 1
def invalid_add_2():
1 + self.date1_365_day
for func in [invalid_add_1, invalid_add_2]:
self.assertRaises(TypeError, func)
DatetimeGregorian(1582, 10, 15, 1))
# The Julian calendar has no invalid dates
self.assertEqual(self.date8_julian + self.delta,
DatetimeJulian(1582, 10, 5, 1))
# Test going over the year boundary.
self.assertEqual(DatetimeGregorian(2000, 11, 1) + timedelta(days=30 + 31),
DatetimeGregorian(2001, 1, 1))
# Year 2000 is a leap year.
self.assertEqual(DatetimeGregorian(2000, 1, 1) + timedelta(days=31 + 29),
DatetimeGregorian(2000, 3, 1))
# Test the 366_day calendar.
self.assertEqual(DatetimeAllLeap(1, 1, 1) + timedelta(days=366 * 10 + 31),
DatetimeAllLeap(11, 2, 1))
# The Gregorian calendar has no year zero.
self.assertEqual(DatetimeGregorian(-1, 12, 31) + self.delta,
DatetimeGregorian(1, 1, 1, 1))
def invalid_add_1():
self.date1_365_day + 1
def invalid_add_2():
1 + self.date1_365_day
for func in [invalid_add_1, invalid_add_2]:
self.assertRaises(TypeError, func)
DatetimeGregorian(1582, 10, 15, 1))
# The Julian calendar has no invalid dates
self.assertEqual(self.date8_julian + self.delta,
DatetimeJulian(1582, 10, 5, 1))
# Test going over the year boundary.
self.assertEqual(DatetimeGregorian(2000, 11, 1) + timedelta(days=30 + 31),
DatetimeGregorian(2001, 1, 1))
# Year 2000 is a leap year.
self.assertEqual(DatetimeGregorian(2000, 1, 1) + timedelta(days=31 + 29),
DatetimeGregorian(2000, 3, 1))
# Test the 366_day calendar.
self.assertEqual(DatetimeAllLeap(1, 1, 1) + timedelta(days=366 * 10 + 31),
DatetimeAllLeap(11, 2, 1))
# The Gregorian calendar has no year zero.
self.assertEqual(DatetimeGregorian(-1, 12, 31) + self.delta,
DatetimeGregorian(1, 1, 1, 1))
def invalid_add_1():
self.date1_365_day + 1
def invalid_add_2():
1 + self.date1_365_day
for func in [invalid_add_1, invalid_add_2]:
self.assertRaises(TypeError, func)
# The Julian calendar has no invalid dates
self.assertEqual(self.date8_julian + self.delta,
DatetimeJulian(1582, 10, 5, 1))
# Test going over the year boundary.
self.assertEqual(DatetimeGregorian(2000, 11, 1) + timedelta(days=30 + 31),
DatetimeGregorian(2001, 1, 1))
# Year 2000 is a leap year.
self.assertEqual(DatetimeGregorian(2000, 1, 1) + timedelta(days=31 + 29),
DatetimeGregorian(2000, 3, 1))
# Test the 366_day calendar.
self.assertEqual(DatetimeAllLeap(1, 1, 1) + timedelta(days=366 * 10 + 31),
DatetimeAllLeap(11, 2, 1))
# The Gregorian calendar has no year zero.
self.assertEqual(DatetimeGregorian(-1, 12, 31) + self.delta,
DatetimeGregorian(1, 1, 1, 1))
def invalid_add_1():
self.date1_365_day + 1
def invalid_add_2():
1 + self.date1_365_day
for func in [invalid_add_1, invalid_add_2]:
self.assertRaises(TypeError, func)
# The Julian calendar has no invalid dates
self.assertEqual(self.date8_julian + self.delta,
DatetimeJulian(1582, 10, 5, 1))
# Test going over the year boundary.
self.assertEqual(DatetimeGregorian(2000, 11, 1) + timedelta(days=30 + 31),
DatetimeGregorian(2001, 1, 1))
# Year 2000 is a leap year.
self.assertEqual(DatetimeGregorian(2000, 1, 1) + timedelta(days=31 + 29),
DatetimeGregorian(2000, 3, 1))
# Test the 366_day calendar.
self.assertEqual(DatetimeAllLeap(1, 1, 1) + timedelta(days=366 * 10 + 31),
DatetimeAllLeap(11, 2, 1))
# The Gregorian calendar has no year zero.
self.assertEqual(DatetimeGregorian(-1, 12, 31) + self.delta,
DatetimeGregorian(1, 1, 1, 1))
def invalid_add_1():
self.date1_365_day + 1
def invalid_add_2():
1 + self.date1_365_day
for func in [invalid_add_1, invalid_add_2]:
self.assertRaises(TypeError, func)
# The Julian calendar has no invalid dates
self.assertEqual(self.date8_julian + self.delta,
DatetimeJulian(1582, 10, 5, 1))
# Test going over the year boundary.
self.assertEqual(DatetimeGregorian(2000, 11, 1) + timedelta(days=30 + 31),
DatetimeGregorian(2001, 1, 1))
# Year 2000 is a leap year.
self.assertEqual(DatetimeGregorian(2000, 1, 1) + timedelta(days=31 + 29),
DatetimeGregorian(2000, 3, 1))
# Test the 366_day calendar.
self.assertEqual(DatetimeAllLeap(1, 1, 1) + timedelta(days=366 * 10 + 31),
DatetimeAllLeap(11, 2, 1))
# The Gregorian calendar has no year zero.
self.assertEqual(DatetimeGregorian(-1, 12, 31) + self.delta,
DatetimeGregorian(1, 1, 1, 1))
def invalid_add_1():
self.date1_365_day + 1
def invalid_add_2():
1 + self.date1_365_day
for func in [invalid_add_1, invalid_add_2]:
self.assertRaises(TypeError, func)
result = ut.date2num([v.datetime for v in value])
else:
result = ut.date2num(value)
if shape is not None:
result = result.reshape(shape)
return result
# Automatically register NetCDFTimeConverter with matplotlib.unit's converter
# dictionary.
if CalendarDateTime not in munits.registry:
munits.registry[CalendarDateTime] = NetCDFTimeConverter()
CFTIME_TYPES = [cftime.DatetimeNoLeap, cftime.DatetimeAllLeap,
cftime.DatetimeProlepticGregorian, cftime.DatetimeGregorian,
cftime.Datetime360Day, cftime.DatetimeJulian]
for date_type in CFTIME_TYPES:
if date_type not in munits.registry:
munits.registry[date_type] = NetCDFTimeConverter()
def get_date_type(calendar):
"""Return the cftime date type for a given calendar name."""
try:
import cftime
except ImportError:
raise ImportError("cftime is required for dates with non-standard calendars")
else:
calendars = {
"noleap": cftime.DatetimeNoLeap,
"360_day": cftime.Datetime360Day,
"365_day": cftime.DatetimeNoLeap,
"366_day": cftime.DatetimeAllLeap,
"gregorian": cftime.DatetimeGregorian,
"proleptic_gregorian": cftime.DatetimeProlepticGregorian,
"julian": cftime.DatetimeJulian,
"all_leap": cftime.DatetimeAllLeap,
"standard": cftime.DatetimeGregorian,
}
return calendars[calendar]