[Python-Dev] [Python-checkins] r43545 - in python/trunk: Doc/lib/libcalendar.tex Lib/calendar.py

Georg Brandl g.brandl at gmx.net
Sun Apr 2 08:49:08 CEST 2006


Tim Peters wrote:
>> Author: walter.doerwald
>> Date: Sat Apr  1 22:40:23 2006
>> New Revision: 43545
>>
>> Modified:
>>    python/trunk/Doc/lib/libcalendar.tex
>>    python/trunk/Lib/calendar.py
>> Log:
>> Make firstweekday a simple attribute instead
>> of hiding it behind a setter and a getter.
> 
> Walter, what's the purpose of this patch?  The first weekday is still
> an attribute, but instead of being settable and gettable via methods,
> looks like it's now settable and gettable via module-global functions,
> and only for the single default instance of Calendar created by the
> module.  If so, then (a) the functionality of the Calendar class is
> weaker now, and in a backward-incompatible way; and, (b) the new
> module-global firstweekday() and setfirstweekday() functions are a
> more obscure way to restore the lost functionality for just one
> specific instance of a Calendar subclass.
> 
> I don't see the attraction to any part of this.
> 
>> --- python/trunk/Lib/calendar.py        (original)
>> +++ python/trunk/Lib/calendar.py        Sat Apr  1 22:40:23 2006
>> @@ -128,25 +128,14 @@
>>      """
>>
>>      def __init__(self, firstweekday=0):
>> -        self._firstweekday = firstweekday # 0 = Monday, 6 = Sunday
>> -
>> -    def firstweekday(self):
>> -        return self._firstweekday
>> -
>> -    def setfirstweekday(self, weekday):
>> -        """
>> -        Set weekday (Monday=0, Sunday=6) to start each week.
>> -        """
>> -        if not MONDAY <= weekday <= SUNDAY:
>> -            raise IllegalWeekdayError(weekday)
>> -        self._firstweekday = weekday
>> +        self.firstweekday = firstweekday # 0 = Monday, 6 = Sunday
> 
> Removing those Calendar methods is backward-incompatible,

Isn't it that the Calendar class was just added and therefore is new to 2.5?

>> -firstweekday = c.firstweekday
>> -setfirstweekday = c.setfirstweekday
>> +def firstweekday():
>> +    return c.firstweekday
>> +
>> +def setfirstweekday(firstweekday):
>> +    if not MONDAY <= firstweekday <= SUNDAY:
>> +        raise IllegalWeekdayError(firstweekday)
>> +    c.firstweekday = firstweekday
>> +
>>  monthcalendar = c.monthdayscalendar
>>  prweek = c.prweek
> 
> And here they're obscurely added back again, but work only for the
> module-global default instance `c` of the TextCalendar subclass.

Since the functions are part of the traditional calendar API which cannot
be broken.

Georg



More information about the Python-Dev mailing list