mirror of
https://github.com/RustPython/RustPython.git
synced 2026-10-29 03:04:38 +08:00
memoryview constructor args
This commit is contained in:
1 parent
c319b16b62
commit
b38d278f91
2 files changed
+14
-5
No files matched your search
@@ -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)
|
||||
|
||||
@@ -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]
|
||||
|
||||
Reference in new issue
Block a user