diff --git a/python/tamaas_module.cpp b/python/tamaas_module.cpp index 2ac723c..67bd01e 100644 --- a/python/tamaas_module.cpp +++ b/python/tamaas_module.cpp @@ -1,89 +1,90 @@ /** * @file * @section LICENSE * * Copyright (©) 2016-2020 EPFL (École Polytechnique Fédérale de Lausanne), * Laboratory (LSMS - Laboratoire de Simulation en Mécanique des Solides) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published * by the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . * */ /* -------------------------------------------------------------------------- */ #include "tamaas.hh" #include "tamaas_info.hh" #include "wrap.hh" /* -------------------------------------------------------------------------- */ #include /* -------------------------------------------------------------------------- */ namespace tamaas { namespace py = pybind11; namespace detail { template struct dtype_helper { static const py::dtype dtype; }; template <> const py::dtype dtype_helper::dtype("=f8"); template <> const py::dtype dtype_helper::dtype("=f16"); } // namespace detail /// Creating the tamaas python module PYBIND11_MODULE(_tamaas, mod) { mod.doc() = "Tamaas module for python"; // Wrapping the base methods mod.def("initialize", &initialize, py::arg("num_threads") = 0, "Initialize tamaas with desired number of threads"); mod.def("finalize", &finalize, "Final cleanup"); // Default dtype of numpy arrays mod.attr("dtype") = detail::dtype_helper::dtype; // Wrapping release information auto info = py::class_(mod, "TamaasInfo"); + info.attr("version") = TamaasInfo::version; info.attr("build_type") = TamaasInfo::build_type; info.attr("branch") = TamaasInfo::branch; info.attr("commit") = TamaasInfo::commit; info.attr("diff") = TamaasInfo::diff; info.attr("remotes") = TamaasInfo::remotes; // Wrapping tamaas components wrap::wrapCore(mod); wrap::wrapPercolation(mod); wrap::wrapSurface(mod); wrap::wrapModel(mod); wrap::wrapSolvers(mod); wrap::wrapCompute(mod); /// Wrapping test features wrap::wrapTestFeatures(mod); #if defined(LEGACY_BEM) // Legacy wrap py::class_>(mod, "smart_pointer_UInt") .def("assign", &wrap::smart_pointer::assign); py::class_>(mod, "smart_pointer_Real") .def("assign", &wrap::smart_pointer::assign); py::class_>(mod, "smart_pointer_long") .def("assign", &wrap::smart_pointer::assign); wrap::wrapBEM(mod); #endif } } // namespace tamaas