From 1b9c177c5de0cf0d2d506748209dc840b0eb48d9 Mon Sep 17 00:00:00 2001 From: Skip Montanaro Date: Fri, 15 Mar 2002 13:52:43 +0000 Subject: [PATCH] Corrected _localized_name.__getitem__ based on code in patch 503202 (which I thought was just a bug report, so didn't notice - doh!). This handles slicing, which v 1.23 didn't. --- Lib/calendar.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/Lib/calendar.py b/Lib/calendar.py index 477f59553ed..9af2c933f1a 100644 --- a/Lib/calendar.py +++ b/Lib/calendar.py @@ -29,11 +29,13 @@ class _localized_name: self.format = format self.len = len def __getitem__(self, item): - if item > self.len-1 or item < -self.len: - raise IndexError - if item < 0: - item += self.len - return strftime(self.format, (item,)*9).capitalize() + if isinstance(item, int): + if item < 0: item += self.len + if not 0 <= item < self.len: + raise IndexError, "out of range" + return strftime(self.format, (item,)*9).capitalize() + elif isinstance(item, type(slice(0))): + return [self[e] for e in range(self.len)].__getslice__(item.start, item.stop) def __len__(self): return self.len @@ -42,8 +44,8 @@ day_name = _localized_name('%A', 7) day_abbr = _localized_name('%a', 7) # Full and abbreviated names of months (1-based arrays!!!) -month_name = _localized_name('%B', 12) -month_abbr = _localized_name('%b', 12) +month_name = _localized_name('%B', 13) +month_abbr = _localized_name('%b', 13) # Constants for weekdays (MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY) = range(7)