23 #include "pybind11/pybind11.h" 24 #include "pybind11/stl.h" 30 namespace py = pybind11;
38 py::module mod(
"dictionary");
40 py::class_<Dictionary, std::shared_ptr<Dictionary>,
Policy> clsDictionary(mod,
"Dictionary");
42 clsDictionary.def(py::init<>());
43 clsDictionary.def(py::init<std::string &>());
44 clsDictionary.def(py::init<const Dictionary &>());
45 clsDictionary.def(py::init<PolicyFile &>());
46 clsDictionary.def(py::init<const Policy &>());
48 clsDictionary.def(
"getDefinitions", (
Policy::Ptr (Dictionary::*)()) & Dictionary::getDefinitions);
49 clsDictionary.def(
"check", &Dictionary::check);
50 clsDictionary.def(
"definedNames",
51 (
int (Dictionary::*)(std::list<std::string> &,
bool)
const) & Dictionary::definedNames,
52 "names"_a,
"append"_a =
false);
53 clsDictionary.def(
"definedNames",
54 (Dictionary::StringArray (Dictionary::*)()
const) & Dictionary::definedNames);
55 clsDictionary.def(
"getDef", &Dictionary::getDef);
56 clsDictionary.def(
"makeDef", &Dictionary::makeDef);
57 clsDictionary.def(
"hasSubDictionary", &Dictionary::hasSubDictionary);
58 clsDictionary.def(
"getSubDictionary", &Dictionary::getSubDictionary);
61 clsDictionary.def(
"validate",
62 [](Dictionary
const &
self,
Policy const &pol) {
return self.validate(pol); },
"pol"_a);
63 clsDictionary.def(
"validate", [](Dictionary
const &
self,
Policy const &pol,
64 ValidationError *errs) {
self.validate(pol, errs); },
67 clsDictionary.def(
"loadPolicyFiles", (
int (Dictionary::*)(
bool)) & Dictionary::loadPolicyFiles,
69 clsDictionary.def(
"loadPolicyFiles", [](Dictionary &
self, std::string
const &repository) {
70 return self.loadPolicyFiles(repository);
72 clsDictionary.def(
"loadPolicyFiles", [](Dictionary &
self, std::string
const &repository,
bool strict) {
73 return self.loadPolicyFiles(repository, strict);
76 clsDictionary.def(
"getPrefix", &Dictionary::getPrefix);
78 py::class_<Definition> clsDefinition(mod,
"Definition");
80 clsDefinition.def(py::init<const std::string &>(),
"paramName"_a =
"");
82 clsDefinition.def(
"getName", &Definition::getName);
83 clsDefinition.def(
"getPrefix", &Definition::getPrefix);
84 clsDefinition.def(
"setPrefix", &Definition::setPrefix);
85 clsDefinition.def(
"isChildDefinition", &Definition::isChildDefinition);
86 clsDefinition.def(
"setChildDefinition", &Definition::setChildDefinition);
87 clsDefinition.def(
"isWildcard", &Definition::isWildcard);
88 clsDefinition.def(
"setWildcard", &Definition::setWildcard);
89 clsDefinition.def(
"setName", &Definition::setName);
90 clsDefinition.def(
"getData", &Definition::getData);
91 clsDefinition.def(
"setData", &Definition::setData);
92 clsDefinition.def(
"getType", &Definition::getType);
93 clsDefinition.def(
"getTypeName", &Definition::getTypeName);
94 clsDefinition.def(
"getDefault", &Definition::getDefault);
95 clsDefinition.def(
"getDescription", &Definition::getDescription);
96 clsDefinition.def(
"getMaxOccurs", &Definition::getMaxOccurs);
97 clsDefinition.def(
"getMinOccurs", &Definition::getMinOccurs);
98 clsDefinition.def(
"check", &Definition::check);
std::shared_ptr< Policy > Ptr
definition of the PolicyFile class
PYBIND11_PLUGIN(dictionary)
a container for holding hierarchical configuration data in memory.
definition of the Dictionary class