Only treat Python Lists as array dimensions.

Instead of treating all python sequence types as array dimensions, except
for tuples and various kinds of strings, only treat Python lists as
dimensions. The PyBytes_Check() function used previously is only available
on Python 2.6 and newer, and it was a bit fiddly anyway. The list of
exceptions would require adjustment if Python got a new kind of a sequence
similar to bytes/unicodes/strings, so only checking for Lists seems more
future-proof. The documentation only mentioned using Lists, so this is
closer to what was documented, anyway.

This should fix the buildfarm failures on systems building with Python 2.5,
although I don't have Python 2.5 installed myself to test with.
This commit is contained in:
Heikki Linnakangas 2016-10-26 14:44:55 +03:00
parent 73c8e8506c
commit cfd9c87a54

View File

@ -999,15 +999,7 @@ PLySequence_ToArray(PLyObToDatum *arg, int32 typmod, PyObject *plrv, bool inarra
for (;;)
{
if (!PySequence_Check(pyptr))
break;
/* composite type */
if (PyTuple_Check(pyptr))
break;
/* string */
if (PyString_Check(pyptr) || PyBytes_Check(pyptr) || PyUnicode_Check(pyptr))
if (!PyList_Check(pyptr))
break;
if (ndim == MAXDIM)