From 2df13807cb8f1725225c092e3052cde7c452a58b Mon Sep 17 00:00:00 2001 From: cmoineau <cyril.moineau@cea.fr> Date: Thu, 11 Jan 2024 13:35:48 +0000 Subject: [PATCH] Add support for int64 with Numpy interrop. --- python_binding/data/pybind_Tensor.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/python_binding/data/pybind_Tensor.cpp b/python_binding/data/pybind_Tensor.cpp index fa109a9af..1b460868e 100644 --- a/python_binding/data/pybind_Tensor.cpp +++ b/python_binding/data/pybind_Tensor.cpp @@ -96,6 +96,8 @@ void init_Tensor(py::module& m){ return py::cast(b.get<float>(idx)); case DataType::Int32: return py::cast(b.get<int>(idx)); + case DataType::Int64: + return py::cast(b.get<long>(idx)); default: return py::none(); } @@ -109,6 +111,8 @@ void init_Tensor(py::module& m){ return py::cast(b.get<float>(coordIdx)); case DataType::Int32: return py::cast(b.get<int>(coordIdx)); + case DataType::Int64: + return py::cast(b.get<long>(coordIdx)); default: return py::none(); } @@ -139,6 +143,9 @@ void init_Tensor(py::module& m){ case DataType::Int32: dataFormatDescriptor = py::format_descriptor<int>::format(); break; + case DataType::Int64: + dataFormatDescriptor = py::format_descriptor<long>::format(); + break; default: throw py::value_error("Unsupported data format"); } @@ -156,6 +163,7 @@ void init_Tensor(py::module& m){ // TODO : If the ctor with the right data type does not exist, pybind will always convert the data to INT ! // Need to find a way to avoid this ! addCtor<int>(pyClassTensor); + addCtor<long>(pyClassTensor); addCtor<float>(pyClassTensor); // #if SIZE_MAX != 0xFFFFFFFF addCtor<double>(pyClassTensor); -- GitLab