24#include <pybind11/pybind11.h>
25#include <pybind11/stl.h>
32using namespace pybind11::literals;
38 py::module::import(
"astshim.object");
40 py::class_<KeyMap, std::shared_ptr<KeyMap>, Object>
cls(mod,
"KeyMap");
42 cls.def(py::init<std::string const &>(),
"options"_a =
"");
51 cls.def(
"getD", py::overload_cast<std::string const &, int>(&
KeyMap::getD, py::const_),
"key"_a,
"ind"_a);
52 cls.def(
"getD", py::overload_cast<std::string const &>(&
KeyMap::getD, py::const_),
"key"_a);
53 cls.def(
"getF", py::overload_cast<std::string const &, int>(&
KeyMap::getF, py::const_),
"key"_a,
"ind"_a);
54 cls.def(
"getF", py::overload_cast<std::string const &>(&
KeyMap::getF, py::const_),
"key"_a);
55 cls.def(
"getI", py::overload_cast<std::string const &, int>(&
KeyMap::getI, py::const_),
"key"_a,
"ind"_a);
56 cls.def(
"getI", py::overload_cast<std::string const &>(&
KeyMap::getI, py::const_),
"key"_a);
57 cls.def(
"getS", py::overload_cast<std::string const &, int>(&
KeyMap::getS, py::const_),
"key"_a,
"ind"_a);
58 cls.def(
"getS", py::overload_cast<std::string const &>(&
KeyMap::getS, py::const_),
"key"_a);
59 cls.def(
"getB", py::overload_cast<std::string const &, int>(&
KeyMap::getB, py::const_),
"key"_a,
"ind"_a);
60 cls.def(
"getB", py::overload_cast<std::string const &>(&
KeyMap::getB, py::const_),
"key"_a);
61 cls.def(
"getC", py::overload_cast<std::string const &, int>(&
KeyMap::getC, py::const_),
"key"_a,
"ind"_a);
62 cls.def(
"getC", py::overload_cast<std::string const &>(&
KeyMap::getC, py::const_),
"key"_a);
63 cls.def(
"getA", py::overload_cast<std::string const &, int>(&
KeyMap::getA, py::const_),
"key"_a,
"ind"_a);
64 cls.def(
"getA", py::overload_cast<std::string const &>(&
KeyMap::getA, py::const_),
"key"_a);
66 cls.def(
"putD", py::overload_cast<std::string const &, double, std::string const &>(&
KeyMap::putD),
67 "key"_a,
"value"_a,
"comment"_a =
"");
71 "key"_a,
"vec"_a,
"comment"_a =
"");
72 cls.def(
"putF", py::overload_cast<std::string const &, float, std::string const &>(&
KeyMap::putF),
73 "key"_a,
"value"_a,
"comment"_a =
"");
77 "key"_a,
"vec"_a,
"comment"_a =
"");
78 cls.def(
"putI", py::overload_cast<std::string const &, int, std::string const &>(&
KeyMap::putI),
"key"_a,
79 "value"_a,
"comment"_a =
"");
83 "key"_a,
"vec"_a,
"comment"_a =
"");
84 cls.def(
"putS", py::overload_cast<std::string const &, short int, std::string const &>(&
KeyMap::putS),
85 "key"_a,
"value"_a,
"comment"_a =
"");
89 "key"_a,
"vec"_a,
"comment"_a =
"");
90 cls.def(
"putB", py::overload_cast<std::string const &, char unsigned, std::string const &>(&
KeyMap::putB),
91 "key"_a,
"value"_a,
"comment"_a =
"");
95 "key"_a,
"vec"_a,
"comment"_a =
"");
97 py::overload_cast<std::string const &, std::string const &, std::string const &>(&
KeyMap::putC),
98 "key"_a,
"value"_a,
"comment"_a =
"");
102 "key"_a,
"vec"_a,
"comment"_a =
"");
104 py::overload_cast<std::string const &, Object const &, std::string const &>(&
KeyMap::putA),
105 "key"_a,
"value"_a,
"comment"_a =
"");
109 "key"_a,
"vec"_a,
"comment"_a =
"");
111 cls.def(
"putU", py::overload_cast<std::string const &, std::string const &>(&
KeyMap::putU),
"key"_a,
117 cls.def(
"append", py::overload_cast<std::string const &, int>(&
KeyMap::append),
"key"_a,
"value"_a);
118 cls.def(
"append", py::overload_cast<std::string const &, double>(&
KeyMap::append),
"key"_a,
"value"_a);
119 cls.def(
"append", py::overload_cast<std::string const &, std::string const &>(&
KeyMap::append),
"key"_a,
121 cls.def(
"append", py::overload_cast<std::string const &, Object const &>(&
KeyMap::append),
"key"_a,
127 cls.def(
"replace", py::overload_cast<std::string const &, int, int>(&
KeyMap::replace),
"key"_a,
"ind"_a,
129 cls.def(
"replace", py::overload_cast<std::string const &, int, double>(&
KeyMap::replace),
"key"_a,
131 cls.def(
"replace", py::overload_cast<std::string const &, int, std::string const &>(&
KeyMap::replace),
132 "key"_a,
"ind"_a,
"value"_a);
133 cls.def(
"replace", py::overload_cast<std::string const &, int, Object const &>(&
KeyMap::replace),
"key"_a,
double getD(std::string const &key, int ind) const
Get one double value for a given key.
bool hasKey(std::string const &key) const
Does this map contain the specified key?
int getI(std::string const &key, int ind) const
Get one int value for a given key.
int length(std::string const &key) const
Get the size of the vector for the specified key; return 0 if key not found or value is undefined.
void putC(std::string const &key, std::string const &value, std::string const &comment="")
Add a string.
void putB(std::string const &key, char unsigned value, std::string const &comment="")
Add a char.
void remove(std::string const &key)
Remove the specified entry.
float getF(std::string const &key, int ind) const
Get one float value for a given key.
bool defined(std::string const &key) const
Does this map contain the specified key, and if so, does it have a defined value?
void putS(std::string const &key, short int value, std::string const &comment="")
Add a short int.
void putU(std::string const &key, std::string const &comment="")
Add a new entry, but no value is stored with the entry.
void rename(std::string const &oldKey, std::string const &newKey)
Rename the specified entry.
short int getS(std::string const &key, int ind) const
Get one short int value for a given key.
std::string key(int ind) const
Get the key at the specified index.
int size() const
Get the number of keys.
std::shared_ptr< Object > getA(std::string const &key, int ind) const
Get one Object for a given key; the object is deep copied.
void replace(std::string const &key, int i, double value)
Replace an element of a vector of doubles in a KeyMap.
void putF(std::string const &key, float value, std::string const &comment="")
Add a float.
void append(std::string const &key, double value)
Append an element to a vector of doubles in a KeyMap.
std::string getC(std::string const &key, int ind) const
Get one std::string value for a given key.
void putI(std::string const &key, int value, std::string const &comment="")
Add an int.
char unsigned getB(std::string const &key, int ind) const
Get one char value for a given key.
std::shared_ptr< KeyMap > copy() const
Return a deep copy of this object.
void putA(std::string const &key, Object const &obj, std::string const &comment="")
Add an Object, which is deep copied.
DataType type(std::string const &key)
Get the type suffix for a given key.
void putD(std::string const &key, double value, std::string const &comment="")
Add a double value.
AST wrapper classes and functions.
PYBIND11_MODULE(_cameraGeom, mod)