On 09/06/2012 04:11 AM, bearophile wrote:
Ellery Newcomer:
array.array <==> D arrays
just checked, looks like we have it:
PyStmts(q"{from array import array; a = array('i', [44,33,22,11]);}",
"testing");
assert(PyEval!(int[])("a", "testing") == [44,33,22,11]);
I think if the python object is iterable, it can be converted to array.
array.array are special, they aren't Python lists. array.array contains
uniform data, so conversion to D arrays is a memcpy (or it's nearly
nothing if you don't copy the data).
Bye,
bearophile
I see. The docs for array.array suggest that it implements the buffer
interface, but it doesn't seem to implement new or old style buffers, at
least according to PyObject_CheckBuffer and PyBuffer_Check.
I think I'll add support for new style buffers anyways. a memoryview
would be good, too.
Guess I'll hack together a special case for array using buffer_info.