diff --git a/pyopencl/array.py b/pyopencl/array.py index 73696b036ec63cea14a8c12dcc61139ecd65d024..d8f14fe38a5c555952382bbc4c8c19a72fed35cd 100644 --- a/pyopencl/array.py +++ b/pyopencl/array.py @@ -350,6 +350,8 @@ class Array(object): .. automethod :: __getitem__ .. automethod :: __setitem__ + .. automethod :: setitem + """ __array_priority__ = 10 @@ -1171,7 +1173,13 @@ class Array(object): shape=tuple(new_shape), strides=tuple(new_strides)) - def _setitem(self, subscript, value, queue=None): + def setitem(self, subscript, value, queue=None): + """Like :meth:`__setitem__`, but with the ability to specify + a *queue* for execution. + + .. versionadded:: 2013.1 + """ + queue = queue or self.queue or value.queue subarray = self[subscript] @@ -1217,7 +1225,7 @@ class Array(object): .. versionadded:: 2013.1 """ - self._setitem(subscript, value) + self.setitem(subscript, value) # }}} @@ -1656,7 +1664,7 @@ def concatenate(arrays, axis=0, queue=None, allocator=None): base_idx = 0 for ary in arrays: my_len = ary.shape[axis] - result._setitem( + result.setitem( full_slice[:axis] + (slice(base_idx, base_idx+my_len),) + full_slice[axis+1:],