Commit 4c834959 authored by Skip Montanaro's avatar Skip Montanaro

make _localized_name instances work more like the tuples they replaced. In

particular, negative indexes work and they are limited by the actual length
of the names they represent (weekday and month names).  This closes bug
#503202.
parent 693c6c44
......@@ -25,18 +25,25 @@ February = 2
mdays = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
class _localized_name:
def __init__(self, format):
def __init__(self, format, len):
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()
def __len__(self):
return self.len
# Full and abbreviated names of weekdays
day_name = _localized_name('%A')
day_abbr = _localized_name('%a')
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')
month_abbr = _localized_name('%b')
month_name = _localized_name('%B', 12)
month_abbr = _localized_name('%b', 12)
# Constants for weekdays
(MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY) = range(7)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment