diff --git a/python/Cargo.toml b/python/Cargo.toml index dd79c00..0ee2756 100644 --- a/python/Cargo.toml +++ b/python/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "python" -version = "0.11.0" +version = "0.12.0" edition = "2021" [lib] @@ -8,14 +8,14 @@ name = "neuromorphic_drivers" crate-type = ["cdylib"] [dependencies] -neuromorphic-drivers = "0.11.0" +neuromorphic-drivers = "0.12.0" numpy = "0.19" paste = "1.0" pyo3 = {version = "0.19", features = ["extension-module"]} [build-dependencies] cc = "1.0" -neuromorphic-drivers = "0.11.0" +neuromorphic-drivers = "0.12.0" paste = "1.0" reflect = {path = "../reflect"} serde = {version = "1.0", features = ["derive"]} diff --git a/python/build.rs b/python/build.rs index 4ac7bb0..7afbe64 100644 --- a/python/build.rs +++ b/python/build.rs @@ -529,6 +529,9 @@ macro_rules! generate { " def __next__(self) -> tuple[{}, {}{}{}]:\n", " ...\n", "\n", + " def backlog(self) -> int:\n", + " ...\n", + "\n", " def clear_backlog(self, until: int):\n", " ...\n", "\n", @@ -715,6 +718,9 @@ macro_rules! generate { " def __next__(self) -> tuple[{}, {}{}{}]:\n", " ...\n", "\n", + " def backlog(self) -> int:\n", + " ...\n", + "\n", " def clear_backlog(self, until: int):\n", " ...\n", "\n", diff --git a/python/pyproject.toml b/python/pyproject.toml index d31a7d2..f589d8e 100644 --- a/python/pyproject.toml +++ b/python/pyproject.toml @@ -7,7 +7,7 @@ authors = [ {name = "International Centre for Neuromorphic Systems"}, {name = "Alexandre Marcireau"}, ] -version = "0.11.0" +version = "0.12.0" requires-python = ">=3.8" dependencies = ["numpy>=1.24"] diff --git a/python/python/neuromorphic_drivers/generated/devices/prophesee_evk3_hd.py b/python/python/neuromorphic_drivers/generated/devices/prophesee_evk3_hd.py index 9b906a1..844af72 100644 --- a/python/python/neuromorphic_drivers/generated/devices/prophesee_evk3_hd.py +++ b/python/python/neuromorphic_drivers/generated/devices/prophesee_evk3_hd.py @@ -123,6 +123,9 @@ def __iter__(self) -> "Device": def __next__(self) -> tuple[status.StatusNonOptional, dict[str, numpy.ndarray[typing.Any, numpy.dtype[numpy.void]]]]: ... + def backlog(self) -> int: + ... + def clear_backlog(self, until: int): ... @@ -166,6 +169,9 @@ def __iter__(self) -> "DeviceOptional": def __next__(self) -> tuple[status.Status, typing.Optional[dict[str, numpy.ndarray[typing.Any, numpy.dtype[numpy.void]]]]]: ... + def backlog(self) -> int: + ... + def clear_backlog(self, until: int): ... @@ -209,6 +215,9 @@ def __iter__(self) -> "DeviceRaw": def __next__(self) -> tuple[status.StatusNonOptional, bytes]: ... + def backlog(self) -> int: + ... + def clear_backlog(self, until: int): ... @@ -252,6 +261,9 @@ def __iter__(self) -> "DeviceRawOptional": def __next__(self) -> tuple[status.Status, typing.Optional[bytes]]: ... + def backlog(self) -> int: + ... + def clear_backlog(self, until: int): ... diff --git a/python/python/neuromorphic_drivers/generated/devices/prophesee_evk4.py b/python/python/neuromorphic_drivers/generated/devices/prophesee_evk4.py index b9f23cc..5796831 100644 --- a/python/python/neuromorphic_drivers/generated/devices/prophesee_evk4.py +++ b/python/python/neuromorphic_drivers/generated/devices/prophesee_evk4.py @@ -161,6 +161,9 @@ def __iter__(self) -> "Device": def __next__(self) -> tuple[status.StatusNonOptional, dict[str, numpy.ndarray[typing.Any, numpy.dtype[numpy.void]]]]: ... + def backlog(self) -> int: + ... + def clear_backlog(self, until: int): ... @@ -206,6 +209,9 @@ def __iter__(self) -> "DeviceOptional": def __next__(self) -> tuple[status.Status, typing.Optional[dict[str, numpy.ndarray[typing.Any, numpy.dtype[numpy.void]]]]]: ... + def backlog(self) -> int: + ... + def clear_backlog(self, until: int): ... @@ -251,6 +257,9 @@ def __iter__(self) -> "DeviceRaw": def __next__(self) -> tuple[status.StatusNonOptional, bytes]: ... + def backlog(self) -> int: + ... + def clear_backlog(self, until: int): ... @@ -296,6 +305,9 @@ def __iter__(self) -> "DeviceRawOptional": def __next__(self) -> tuple[status.Status, typing.Optional[bytes]]: ... + def backlog(self) -> int: + ... + def clear_backlog(self, until: int): ... diff --git a/python/python/neuromorphic_drivers/generated/devices_types.py b/python/python/neuromorphic_drivers/generated/devices_types.py index 4275361..381cef5 100644 --- a/python/python/neuromorphic_drivers/generated/devices_types.py +++ b/python/python/neuromorphic_drivers/generated/devices_types.py @@ -32,6 +32,9 @@ def __iter__(self) -> "GenericDevice": def __next__(self) -> tuple[status.StatusNonOptional, dict[str, numpy.ndarray[typing.Any, numpy.dtype[numpy.void]]]]: ... + def backlog(self) -> int: + ... + def clear_backlog(self, until: int): ... @@ -75,6 +78,9 @@ def __iter__(self) -> "GenericDeviceOptional": def __next__(self) -> tuple[status.Status, typing.Optional[dict[str, numpy.ndarray[typing.Any, numpy.dtype[numpy.void]]]]]: ... + def backlog(self) -> int: + ... + def clear_backlog(self, until: int): ... @@ -118,6 +124,9 @@ def __iter__(self) -> "GenericDeviceRaw": def __next__(self) -> tuple[status.StatusNonOptional, bytes]: ... + def backlog(self) -> int: + ... + def clear_backlog(self, until: int): ... @@ -161,6 +170,9 @@ def __iter__(self) -> "GenericDeviceRawOptional": def __next__(self) -> tuple[status.Status, typing.Optional[bytes]]: ... + def backlog(self) -> int: + ... + def clear_backlog(self, until: int): ... diff --git a/python/src/lib.rs b/python/src/lib.rs index accd0b8..1e1d6d2 100644 --- a/python/src/lib.rs +++ b/python/src/lib.rs @@ -247,6 +247,16 @@ impl Device { }) } + fn backlog(slf: pyo3::PyRef) -> pyo3::PyResult { + Ok(slf + .device + .as_ref() + .ok_or(pyo3::exceptions::PyRuntimeError::new_err( + "backlog called after __exit__", + ))? + .backlog()) + } + fn clear_backlog( slf: pyo3::PyRef, python: pyo3::Python,