409{
410
412
413
414
415 py::implicitly_convertible<std::shared_ptr<ModuleWrap<Module>>,
416 std::shared_ptr<Module>>();
417 py::implicitly_convertible<std::shared_ptr<ModuleWrap<InputModule>>,
418 std::shared_ptr<Module>>();
419 py::implicitly_convertible<std::shared_ptr<ModuleWrap<OutputModule>>,
420 std::shared_ptr<Module>>();
421 py::implicitly_convertible<std::shared_ptr<ModuleWrap<ProcessModule>>,
422 std::shared_ptr<Module>>();
423
424
425
426
427
428
429 py::class_<ModuleWrap<Module>, std::shared_ptr<ModuleWrap<Module>>,
430 boost::noncopyable>("Module", py::init<FieldSharedPtr>())
431
432
435
436
438 (py::arg("key"), py::arg("value") = ""))
439 .def("PrintConfig", &Module::PrintConfig)
440 .def("SetDefaults", &Module::SetDefaults)
441 .def("GetStringConfig", Module_GetConfig<std::string>)
442 .def("GetFloatConfig", Module_GetConfig<double>)
443 .def("GetIntConfig", Module_GetConfig<int>)
444 .def("GetBoolConfig", Module_GetConfig<bool>)
445 .def("AddConfigOption", ModuleWrap_AddConfigOption<Module>,
446 (py::arg("key"), py::arg("defValue"), py::arg("desc"),
447 py::arg("isBool") = false))
448
449
451
452
454 .staticmethod("Register");
455
457
461}
#define NEKPY_WRAP_ENUM_STRING(ENUMNAME, MAPNAME)
void Module_RegisterConfig(std::shared_ptr< Module > mod, std::string const &key, std::string const &value)
Lightweight wrapper for FieldUtils::Module::RegisterConfig.
void Module_Process(ModuleSharedPtr m)
void Module_Register(ModuleType const &modType, std::string const &modName, py::object &obj)
Lightweight wrapper for the Module factory RegisterCreatorFunction, to support the ability for Python...
const std::string ModuleTypeMap[]
Module wrapper to handle virtual function calls in Module and its subclasses as defined by the templa...