except OperationError, e: if not e.match(space, space.w_ValueError): raise if not gotit: val = dtype.itemtype.default_fromstring(space) nextidx = length items.append(val) num_items += 1 idx = nextidx + 1 if count > num_items: raise OperationError(space.w_ValueError, space.wrap( "string is smaller than requested size")) a = W_NDimArray([num_items], dtype=dtype) ai = a.create_iter() for val in items: a.dtype.setitem(a, ai.offset, val) ai = ai.next(1) return space.wrap(a) def _fromstring_bin(space, s, count, length, dtype): from pypy.module.micronumpy.interp_numarray import W_NDimArray itemsize = dtype.itemtype.get_element_size() assert itemsize >= 0 if count == -1: count = length / itemsize if length % itemsize != 0: raise operationerrfmt(space.w_ValueError,