New submission from John Schaefer: When creating a multiprocessing Array equivalent for unsigned chars, eg from a numpy.uint8 array, the first argument: typecode_or_type must be specified as a one character string, if a typecode is used the method raises a TypeError.
>>> import numpy as np, multiprocessing as mp, ctypes >>> arr = np.array(range(10), dtype=np.uint8) >>> arr array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], dtype=uint8) >>> mp.Array("B", arr) <SynchronizedArray wrapper for <multiprocessing.sharedctypes.c_ubyte_Array_10 object >>> mp.Array(ctypes.c_char, arr) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python2.7/multiprocessing/__init__.py", line 260, in Array return Array(typecode_or_type, size_or_initializer, **kwds) File "/usr/lib/python2.7/multiprocessing/sharedctypes.py", line 120, in Array obj = RawArray(typecode_or_type, size_or_initializer) File "/usr/lib/python2.7/multiprocessing/sharedctypes.py", line 94, in RawArray result.__init__(*size_or_initializer) TypeError: one character string expected This contrasts with behavior exhibited with other types: >>> farr = np.array(range(10), dtype=np.float) >>> mp.Array(ctypes.c_double, farr) <SynchronizedArray wrapper... thanks, John ---------- messages: 293765 nosy: jgschaefer priority: normal severity: normal status: open title: multiprocessing Array create for ctypes.c_char, TypeError unless 1 char string arg used type: behavior versions: Python 2.7 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue30379> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com