[Python-Dev] Backporting PEP 3101 to 2.6

Nick Coghlan ncoghlan at gmail.com
Sun Feb 17 01:09:48 CET 2008


Eric Smith wrote:
> The bad error message is a result of __format__ passing on unicode to 
> strftime.
> 
> There are, of course, various ugly ways to work around this involving 
> nested format calls.

I don't know if this fits your definition of "ugly workaround", but what 
if datetime.__format__ did something like:

   def __format__(self, spec):
     encoding = None
     if isinstance(spec, unicode):
         encoding = 'utf-8'
         spec = spec.encode(encoding)
     result = strftime(spec, self)
     if encoding is not None:
         result = result.decode(encoding)
     return result

Cheers,
Nick.

-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia
---------------------------------------------------------------
             http://www.boredomandlaziness.org


More information about the Python-Dev mailing list