[Python-3000-checkins] r64033 - python/branches/py3k/Lib/calendar.py

georg.brandl python-3000-checkins at python.org
Sun Jun 8 10:40:06 CEST 2008


Author: georg.brandl
Date: Sun Jun  8 10:40:05 2008
New Revision: 64033

Log:
#3059: Stop decoding Unicode in calendar module.
The strftime routines must know how to decode
localized month/day names themselves.


Modified:
   python/branches/py3k/Lib/calendar.py

Modified: python/branches/py3k/Lib/calendar.py
==============================================================================
--- python/branches/py3k/Lib/calendar.py	(original)
+++ python/branches/py3k/Lib/calendar.py	Sun Jun  8 10:40:05 2008
@@ -481,13 +481,13 @@
         return ''.join(v).encode(encoding, "xmlcharrefreplace")
 
 
-class TimeEncoding:
+class different_locale:
     def __init__(self, locale):
         self.locale = locale
 
     def __enter__(self):
         self.oldlocale = _locale.setlocale(_locale.LC_TIME, self.locale)
-        return _locale.getlocale(_locale.LC_TIME)[1]
+        #return _locale.getlocale(_locale.LC_TIME)[1]
 
     def __exit__(self, *args):
         _locale.setlocale(_locale.LC_TIME, self.oldlocale)
@@ -508,21 +508,17 @@
         self.locale = locale
 
     def formatweekday(self, day, width):
-        with TimeEncoding(self.locale) as encoding:
+        with different_locale(self.locale):
             if width >= 9:
                 names = day_name
             else:
                 names = day_abbr
             name = names[day]
-            if encoding is not None:
-                name = name.decode(encoding)
             return name[:width].center(width)
 
     def formatmonthname(self, theyear, themonth, width, withyear=True):
-        with TimeEncoding(self.locale) as encoding:
+        with different_locale(self.locale):
             s = month_name[themonth]
-            if encoding is not None:
-                s = s.decode(encoding)
             if withyear:
                 s = "%s %r" % (s, theyear)
             return s.center(width)
@@ -542,17 +538,13 @@
         self.locale = locale
 
     def formatweekday(self, day):
-        with TimeEncoding(self.locale) as encoding:
+        with different_locale(self.locale):
             s = day_abbr[day]
-            if encoding is not None:
-                s = s.decode(encoding)
             return '<th class="%s">%s</th>' % (self.cssclasses[day], s)
 
     def formatmonthname(self, theyear, themonth, withyear=True):
-        with TimeEncoding(self.locale) as encoding:
+        with different_locale(self.locale):
             s = month_name[themonth]
-            if encoding is not None:
-                s = s.decode(encoding)
             if withyear:
                 s = '%s %s' % (s, theyear)
             return '<tr><th colspan="7" class="month">%s</th></tr>' % s


More information about the Python-3000-checkins mailing list