memoryview constructor args

This commit is contained in:
Kangzhi Shi committed 2020-10-22 16:45:30 +02:00
1 parent c319b16b62
commit b38d278f91
2 files changed
+14 -5

No files matched your search

-2
View File
@@ -483,8 +483,6 @@ class BaseMemorySliceSliceTests:
class BytesMemoryviewTest(unittest.TestCase,
BaseMemoryviewTests, BaseBytesMemoryTests):
# TODO: RUSTPYTHON
@unittest.expectedFailure
def test_constructor(self):
for tp in self._types:
ob = tp(self._source)
+14 -3
View File
@@ -102,6 +102,12 @@ impl Default for BufferOptions {
}
}
#[derive(FromArgs)]
struct PyMemoryViewNewArgs {
#[pyarg(any)]
object: PyObjectRef,
}
#[pyclass(module = false, name = "memoryview")]
#[derive(Debug)]
pub struct PyMemoryView {
@@ -161,9 +167,14 @@ impl PyMemoryView {
}
#[pyslot]
fn tp_new(_cls: PyTypeRef, obj: PyObjectRef, vm: &VirtualMachine) -> PyResult<PyRef<Self>> {
let buffer = try_buffer_from_object(vm, &obj)?;
Ok(PyMemoryView::from_buffer(obj, buffer, vm)?.into_ref(vm))
fn tp_new(
cls: PyTypeRef,
args: PyMemoryViewNewArgs,
vm: &VirtualMachine,
) -> PyResult<PyRef<Self>> {
let buffer = try_buffer_from_object(vm, &args.object)?;
let zelf = PyMemoryView::from_buffer(args.object, buffer, vm)?;
zelf.into_ref_with_type(vm, cls)
}
#[pymethod]