[I'm putting this in category Python Library, because I
assume Extensions Modules is for problems in the
Extensions Module plumbing.]
datetime.date and datetime.time's strftime() methods
call wrap_strftime(), which limits the length of the
format string to 127 chars before calling time.strftime().
This can be seen in the examples below. Note that in
the third example, time.strftime() does not have a
problem with a 128 character format string.
>>> import datetime
>>> datetime.date.today().strftime('x'*128)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
MemoryError
>>> import datetime
>>> datetime.date.today().strftime('x'*256)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
SystemError: Objects/stringobject.c:4077: bad argument
to internal function
>>> import time
>>> time.strftime('x'*128)
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
Reproduced on 2.5c1 Linux, 2.4.3 Linux, and 2.3.3 Windows.
|