diff options
author | Skip Montanaro <skip@pobox.com> | 2002-03-15 13:52:43 +0000 |
---|---|---|
committer | Skip Montanaro <skip@pobox.com> | 2002-03-15 13:52:43 +0000 |
commit | de478768deb9749e1ded6459334992725484a349 (patch) | |
tree | 4cb7b52bb00a1422f29cd0c0fe885111eaa641b7 /Lib/calendar.py | |
parent | 7b8f1827c3040d1b6682132022730fd40f225578 (diff) | |
download | cpython-de478768deb9749e1ded6459334992725484a349.tar.gz |
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.
Diffstat (limited to 'Lib/calendar.py')
-rw-r--r-- | Lib/calendar.py | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/Lib/calendar.py b/Lib/calendar.py index 477f59553e..9af2c933f1 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) |