Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
py: Try to add properties to the Host class
[simgrid.git] / src / bindings / python / simgrid_python.cpp
index 7c33438..38b0287 100644 (file)
@@ -57,12 +57,10 @@ PYBIND11_MODULE(simgrid, m)
   /* this_actor namespace */
   py::module m2 = m.def_submodule("this_actor", "Bindings of the s4u::this_actor namespace.");
   m2.def("info", [](char* s) { XBT_INFO("%s", s); }, "Display a logging message of default priority.");
-  m2.def("execute", py::overload_cast<double>(&simgrid::s4u::this_actor::execute),
-         "Block the current actor, computing the given amount of flops, see :cpp:func:`void "
-         "simgrid::s4u::this_actor::execute(double)`");
   m2.def("execute", py::overload_cast<double, double>(&simgrid::s4u::this_actor::execute),
          "Block the current actor, computing the given amount of flops at the given priority, see :cpp:func:`void "
-         "simgrid::s4u::this_actor::execute(double, double)`");
+         "simgrid::s4u::this_actor::execute(double, double)`",
+         py::arg("flops"), py::arg("priority") = 1);
   m2.def("yield_", &simgrid::s4u::this_actor::yield,
          "Yield the actor, see :cpp:func:`void simgrid::s4u::this_actor::yield()`");
 
@@ -107,8 +105,15 @@ PYBIND11_MODULE(simgrid, m)
       ;
 
   /* Class Host */
-  py::class_<simgrid::s4u::Host, std::unique_ptr<Host, py::nodelete>>(m, "Host", "Simulation Engine, see :ref:`class s4u::Host <API_s4u_Host>`").def(
-      "by_name", &Host::by_name, "Retrieve a host from its name, or die");
+  auto get_name = [](const Host* self) {
+    return self->get_name();
+  };
+  py::class_<simgrid::s4u::Host, std::unique_ptr<Host, py::nodelete>>(m, "Host", "Simulation Engine, see :ref:`class s4u::Host <API_s4u_Host>`")
+      .def("by_name", &Host::by_name, "Retrieve a host from its name, or die")
+      .def("get_name", &Host::get_name, "Retrieve the name of this host")
+      .def_property_readonly("name", get_name, "Retrieve the name of this host")
+      .def_property_readonly("speed", &Host::get_speed,
+          "Get the peak computing speed in flops/s at the current pstate, taking the external load into account, see :cpp:func:`simgrid::s4u::Host::get_speed()`");
 
   /* Class Mailbox */
   py::class_<simgrid::s4u::Mailbox, std::unique_ptr<Mailbox, py::nodelete>>(m, "Mailbox", "Mailbox, see :ref:`class s4u::Mailbox <API_s4u_Mailbox>`")