22 #include <pybind11/pybind11.h> 
   30 using namespace pybind11::literals;
 
   47     ObjectMaker() = 
default;
 
   48     ~ObjectMaker() = 
default;
 
   57     py::module::import(
"astshim.base");
 
   59     py::class_<ObjectMaker, std::shared_ptr<ObjectMaker>> makerCls(mod, 
"ObjectMaker");
 
   60     makerCls.def(py::init<>());
 
   61     makerCls.def(
"__call__", &ObjectMaker::operator());
 
   62     makerCls.def(
"__reduce__",
 
   63                        [makerCls](ObjectMaker 
const &
self) { 
return py::make_tuple(makerCls, py::tuple()); });
 
   65     py::class_<Object, std::shared_ptr<Object>> 
cls(mod, 
"Object");
 
   67     cls.def_static(
"fromString", &Object::fromString);
 
   71     cls.def(
"__repr__", [](Object 
const &
self) { 
return "astshim." + 
self.getClassName(); });
 
   72     cls.def(
"__eq__", &Object::operator==, py::is_operator());
 
   73     cls.def(
"__ne__", &Object::operator!=, py::is_operator());
 
   76     cls.def_property(
"id", &Object::getID, &Object::setID);
 
   77     cls.def_property(
"ident", &Object::getIdent, &Object::setIdent);
 
   78     cls.def_property_readonly(
"objSize", &Object::getObjSize);
 
   79     cls.def_property(
"useDefs", &Object::getUseDefs, &Object::setUseDefs);
 
   81     cls.def(
"copy", &Object::copy);
 
   82     cls.def(
"clear", &Object::clear, 
"attrib"_a);
 
   83     cls.def(
"hasAttribute", &Object::hasAttribute, 
"attrib"_a);
 
   84     cls.def(
"getNObject", &Object::getNObject);
 
   85     cls.def(
"getRefCount", &Object::getRefCount);
 
   86     cls.def(
"lock", &Object::lock, 
"wait"_a);
 
   87     cls.def(
"same", &Object::same, 
"other"_a);
 
   89     cls.def(
"show", py::overload_cast<bool>(&
Object::show, py::const_), 
"showComments"_a = 
true);
 
   91     cls.def(
"test", &Object::test, 
"attrib"_a);
 
   92     cls.def(
"unlock", &Object::unlock, 
"report"_a = 
false);
 
   96     cls.def(
"__reduce__", [makerCls](Object 
const &
self) {
 
   98         auto unpickleArgs = py::make_tuple(state);
 
   99         return py::make_tuple(makerCls(), unpickleArgs);