From edc2e9f0482a09a1bb326a080d1e1c2a159093f8 Mon Sep 17 00:00:00 2001
From: NAUD Maxence <maxence.naud@cea.fr>
Date: Fri, 5 Jul 2024 18:46:49 +0000
Subject: [PATCH] Add Tensor python constructors from shape and single value

---
 python_binding/data/pybind_Tensor.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/python_binding/data/pybind_Tensor.cpp b/python_binding/data/pybind_Tensor.cpp
index 83bb4afea..60283039b 100644
--- a/python_binding/data/pybind_Tensor.cpp
+++ b/python_binding/data/pybind_Tensor.cpp
@@ -51,6 +51,7 @@ void addCtor(py::class_<Tensor,
 
         return newTensor;
     }), py::arg("array"), py::arg("backend")="cpu")
+    .def(py::init<T>(), py::arg("val"))
     .def("__setitem__", (void (Tensor::*)(std::size_t, T)) &Tensor::set)
     .def("__setitem__", (void (Tensor::*)(std::vector<std::size_t>, T)) &Tensor::set)
     ;
@@ -73,6 +74,7 @@ void init_Tensor(py::module& m){
         (m,"Tensor", py::multiple_inheritance(), py::buffer_protocol());
 
     pyClassTensor.def(py::init<>())
+    .def(py::init<const std::vector<std::size_t>&>(), py::arg("dims"))
     .def(py::self + py::self)
     .def(py::self - py::self)
     .def(py::self * py::self)
@@ -86,7 +88,7 @@ void init_Tensor(py::module& m){
     .def("dtype", &Tensor::dataType)
     .def("size", &Tensor::size)
     .def("capacity", &Tensor::capacity)
-    .def("resize", (void (Tensor::*)(const std::vector<DimSize_t>&, std::vector<DimSize_t>)) &Tensor::resize)
+    .def("resize", (void (Tensor::*)(const std::vector<DimSize_t>&, std::vector<DimSize_t>)) &Tensor::resize, py::arg("dims"), py::arg("strides") = std::vector<DimSize_t>())
     .def("has_impl", &Tensor::hasImpl)
     .def("get_coord", &Tensor::getCoord)
     .def("get_idx", &Tensor::getIdx)
-- 
GitLab