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.
index d346e22591972ab7cfc64c30416fd1531a01a898..b9c6d64baafd327824ef59e82d8068adbaf747ba 100644 (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)