Issue 1556784: datetime's strftime limits strings to 127 chars (original) (raw)
[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 "", line 1, in MemoryError
import datetime datetime.date.today().strftime('x'*256) Traceback (most recent call last): File "", line 1, in 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.