24#include <pybind11/pybind11.h>
25#include <pybind11/stl.h>
33using namespace pybind11::literals;
36void wrapKeyMap(lsst::utils::python::WrapperCollection &wrappers){
37 using PyKeyMap = py::class_<KeyMap, std::shared_ptr<KeyMap>,
Object> ;
38 wrappers.wrapType(PyKeyMap (wrappers.module,
"KeyMap"), [](
auto &mod,
auto &cls) {
41 cls.def(py::init<std::string const &>(),
"options"_a =
"");
43 cls.def(
"copy", &KeyMap::copy);
44 cls.def(
"defined", &KeyMap::defined,
"key"_a);
45 cls.def(
"key", &KeyMap::key,
"ind"_a);
46 cls.def(
"hasKey", &KeyMap::hasKey,
"key"_a);
47 cls.def(
"length", &KeyMap::length);
48 cls.def(
"__len__", &KeyMap::size);
50 cls.def(
"getD", py::overload_cast<std::string const &, int>(&KeyMap::getD, py::const_),
"key"_a,
"ind"_a);
51 cls.def(
"getD", py::overload_cast<std::string const &>(&KeyMap::getD, py::const_),
"key"_a);
52 cls.def(
"getF", py::overload_cast<std::string const &, int>(&KeyMap::getF, py::const_),
"key"_a,
"ind"_a);
53 cls.def(
"getF", py::overload_cast<std::string const &>(&KeyMap::getF, py::const_),
"key"_a);
54 cls.def(
"getI", py::overload_cast<std::string const &, int>(&KeyMap::getI, py::const_),
"key"_a,
"ind"_a);
55 cls.def(
"getI", py::overload_cast<std::string const &>(&KeyMap::getI, py::const_),
"key"_a);
56 cls.def(
"getS", py::overload_cast<std::string const &, int>(&KeyMap::getS, py::const_),
"key"_a,
"ind"_a);
57 cls.def(
"getS", py::overload_cast<std::string const &>(&KeyMap::getS, py::const_),
"key"_a);
58 cls.def(
"getB", py::overload_cast<std::string const &, int>(&KeyMap::getB, py::const_),
"key"_a,
"ind"_a);
59 cls.def(
"getB", py::overload_cast<std::string const &>(&KeyMap::getB, py::const_),
"key"_a);
60 cls.def(
"getC", py::overload_cast<std::string const &, int>(&KeyMap::getC, py::const_),
"key"_a,
"ind"_a);
61 cls.def(
"getC", py::overload_cast<std::string const &>(&KeyMap::getC, py::const_),
"key"_a);
62 cls.def(
"getA", py::overload_cast<std::string const &, int>(&KeyMap::getA, py::const_),
"key"_a,
"ind"_a);
63 cls.def(
"getA", py::overload_cast<std::string const &>(&KeyMap::getA, py::const_),
"key"_a);
65 cls.def(
"putD", py::overload_cast<std::string const &, double, std::string const &>(&KeyMap::putD),
66 "key"_a,
"value"_a,
"comment"_a =
"");
68 py::overload_cast<std::string const &, std::vector<double> const &, std::string const &>(
70 "key"_a,
"vec"_a,
"comment"_a =
"");
71 cls.def(
"putF", py::overload_cast<std::string const &, float, std::string const &>(&KeyMap::putF),
72 "key"_a,
"value"_a,
"comment"_a =
"");
74 py::overload_cast<std::string const &, std::vector<float> const &, std::string const &>(
76 "key"_a,
"vec"_a,
"comment"_a =
"");
77 cls.def(
"putI", py::overload_cast<std::string const &, int, std::string const &>(&KeyMap::putI),
"key"_a,
78 "value"_a,
"comment"_a =
"");
80 py::overload_cast<std::string const &, std::vector<int> const &, std::string const &>(
82 "key"_a,
"vec"_a,
"comment"_a =
"");
83 cls.def(
"putS", py::overload_cast<std::string const &, short int, std::string const &>(&KeyMap::putS),
84 "key"_a,
"value"_a,
"comment"_a =
"");
86 py::overload_cast<std::string const &, std::vector<short int> const &, std::string const &>(
88 "key"_a,
"vec"_a,
"comment"_a =
"");
89 cls.def(
"putB", py::overload_cast<std::string const &, char unsigned, std::string const &>(&KeyMap::putB),
90 "key"_a,
"value"_a,
"comment"_a =
"");
92 py::overload_cast<std::string const &, std::vector<char unsigned> const &, std::string const &>(
94 "key"_a,
"vec"_a,
"comment"_a =
"");
96 py::overload_cast<std::string const &, std::string const &, std::string const &>(&KeyMap::putC),
97 "key"_a,
"value"_a,
"comment"_a =
"");
99 py::overload_cast<std::string const &, std::vector<std::string> const &, std::string const &>(
101 "key"_a,
"vec"_a,
"comment"_a =
"");
103 py::overload_cast<std::string const &, Object const &, std::string const &>(&KeyMap::putA),
104 "key"_a,
"value"_a,
"comment"_a =
"");
106 py::overload_cast<std::string const &, std::vector<std::shared_ptr<Object const>> const &,
107 std::string const &>(&KeyMap::putA),
108 "key"_a,
"vec"_a,
"comment"_a =
"");
110 cls.def(
"putU", py::overload_cast<std::string const &, std::string const &>(&KeyMap::putU),
"key"_a,
116 cls.def(
"append", py::overload_cast<std::string const &, int>(&KeyMap::append),
"key"_a,
"value"_a);
117 cls.def(
"append", py::overload_cast<std::string const &, double>(&KeyMap::append),
"key"_a,
"value"_a);
118 cls.def(
"append", py::overload_cast<std::string const &, std::string const &>(&KeyMap::append),
"key"_a,
120 cls.def(
"append", py::overload_cast<std::string const &, Object const &>(&KeyMap::append),
"key"_a,
126 cls.def(
"replace", py::overload_cast<std::string const &, int, int>(&KeyMap::replace),
"key"_a,
"ind"_a,
128 cls.def(
"replace", py::overload_cast<std::string const &, int, double>(&KeyMap::replace),
"key"_a,
130 cls.def(
"replace", py::overload_cast<std::string const &, int, std::string const &>(&KeyMap::replace),
131 "key"_a,
"ind"_a,
"value"_a);
132 cls.def(
"replace", py::overload_cast<std::string const &, int, Object const &>(&KeyMap::replace),
"key"_a,
135 cls.def(
"remove", &KeyMap::remove,
"key"_a);
136 cls.def(
"rename", &KeyMap::rename,
"oldKey"_a,
"newKey"_a);
137 cls.def(
"type", &KeyMap::type,
"key"_a);
Abstract base class for all AST objects.
AST wrapper classes and functions.
void wrapKeyMap(WrapperCollection &)