24 #include <pybind11/pybind11.h> 
   25 #include <pybind11/stl.h> 
   32 using 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 = 
"");
 
   44     cls.def(
"copy", &KeyMap::copy);
 
   47     cls.def(
"hasKey", &KeyMap::hasKey, 
"key"_a);
 
   49     cls.def(
"__len__", &KeyMap::size);
 
   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,
 
  136     cls.def(
"remove", &KeyMap::remove, 
"key"_a);
 
  137     cls.def(
"rename", &KeyMap::rename, 
"oldKey"_a, 
"newKey"_a);