| 199 | assert not force_zero_copy, "force zero copy was passed, but copy is required" |
| 200 | return self.copyout(memoryview(bytearray(self.nbytes))) |
| 201 | def numpy(self) -> 'np.ndarray': # type: ignore [name-defined] # noqa: F821 |
| 202 | import numpy as np |
| 203 | assert _to_np_dtype(self.dtype.base) is not None, f"no np dtype for {self.dtype.base}" |
| 204 | return np.frombuffer(self.as_memoryview(), dtype=_to_np_dtype(self.dtype.base)) |
| 205 | def copyin(self, mv:memoryview): |
| 206 | mv = flat_mv(mv) |
| 207 | assert len(mv) == self.nbytes, f"size mismatch, {len(mv)=} != {self.dtype=} {self.size=}" |