[Python-Dev] slicing of structseq objects fails (original) (raw)

Fredrik Lundh fredrik@pythonware.com
Tue, 30 Oct 2001 23:57:27 +0100


jack wrote:

> The following code fails (G4, MacOS 9.2.1) in Classic MacPython 2.2b1: > > import time > > currUTCTuple= time.gmtime(time.time()) > print "currUTCTuple=%r" % (currUTCTuple,) > print "currUTCTuple[3:6]=%r" % (currUTCTuple[3:6],) > fmtTime = "%s:%02i:%02i" % currUTCTuple[3:6] > print "formatted time = ", fmtTime > > It displays (, , ) for currUTCTuple[3:6],

also note:

import time tm = time.gmtime() tm (2001, 10, 30, 22, 54, 16, 1, 303, 0) tm.tmyear 2001 tm[:6] (2001, 10, 30, 22, 54, 16) tm[3:6] (, , )

in structseq_slice,

for(i = low; i < high; ++i) {
    PyObject *v = obj->ob_item[i];
    Py_INCREF(v);
    PyTuple_SET_ITEM(np, i, v);
}

should be:

for(i = low; i < high; ++i) {
    PyObject *v = obj->ob_item[i];
    Py_INCREF(v);
    PyTuple_SET_ITEM(np, i-low, v);
}