From ee45beb61bec6278541d4fdd62f83f430ec4d5b4 Mon Sep 17 00:00:00 2001 From: haixuanTao Date: Fri, 27 Sep 2024 18:19:57 +0200 Subject: [PATCH] Replace extract with downcast for ros2-beidge --- .../extensions/ros2-bridge/python/src/typed/mod.rs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/libraries/extensions/ros2-bridge/python/src/typed/mod.rs b/libraries/extensions/ros2-bridge/python/src/typed/mod.rs index 2b841589..e3b4133d 100644 --- a/libraries/extensions/ros2-bridge/python/src/typed/mod.rs +++ b/libraries/extensions/ros2-bridge/python/src/typed/mod.rs @@ -36,13 +36,15 @@ mod tests { use arrow::pyarrow::FromPyArrow; use arrow::pyarrow::ToPyArrow; + use eyre::eyre; use pyo3::types::IntoPyDict; use pyo3::types::PyAnyMethods; use pyo3::types::PyDict; use pyo3::types::PyList; + use pyo3::types::PyListMethods; use pyo3::types::PyModule; use pyo3::types::PyTuple; - use pyo3::PyNativeType; + use pyo3::Python; use serde::de::DeserializeSeed; use serde::Serialize; @@ -71,9 +73,14 @@ mod tests { let my_module = PyModule::import_bound(py, "test_utils")?; - let arrays: &PyList = my_module.getattr("TEST_ARRAYS")?.extract()?; + let arrays = my_module.getattr("TEST_ARRAYS")?; + let arrays = arrays + .downcast::() + .map_err(|err| eyre!("Could not downcast PyAny. Err: {}", err))?; for array_wrapper in arrays.iter() { - let arrays: &PyTuple = array_wrapper.extract()?; + let arrays = array_wrapper.downcast::().map_err(|err| { + eyre!("Could not downcast expected tuple test array. Err: {}", err) + })?; let package_name: String = arrays.get_item(0)?.extract()?; let message_name: String = arrays.get_item(1)?.extract()?; println!("Checking {}::{}", package_name, message_name);