mirror of
https://github.com/python/cpython.git
synced 2025-08-31 05:58:33 +00:00
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.
This commit is contained in:
parent
693c6c44c4
commit
4c8349592d
1 changed files with 12 additions and 5 deletions
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue