50 {
51 py::module::import("lsst.daf.base.persistable");
52
53 py::class_<std::type_info>(mod, "TypeInfo")
54 .def("__eq__",
56 .def("__ne__",
60
61 py::class_<PropertySet, std::shared_ptr<PropertySet>> cls(mod, "PropertySet");
62
63 cls.def(py::init<bool>(), "flat"_a = false);
64
65 cls.def("deepCopy", &PropertySet::deepCopy);
66 cls.def("nameCount", &PropertySet::nameCount, "topLevelOnly"_a = true);
67 cls.def("names", &PropertySet::names, "topLevelOnly"_a = true);
68 cls.def("paramNames", &PropertySet::paramNames, "topLevelOnly"_a = true);
69 cls.def("propertySetNames", &PropertySet::propertySetNames, "topLevelOnly"_a = true);
70 cls.def("exists", &PropertySet::exists);
71 cls.def("isArray", &PropertySet::isArray);
72 cls.def("isUndefined", &PropertySet::isUndefined);
73 cls.def("isPropertySetPtr", &PropertySet::isPropertySetPtr);
74 cls.def("valueCount",
75 py::overload_cast<>(&PropertySet::valueCount, py::const_));
76 cls.def("valueCount",
77 py::overload_cast<std::string const&>(&PropertySet::valueCount,
78 py::const_));
79 cls.def("typeOf", &PropertySet::typeOf, py::return_value_policy::reference);
80 cls.def("toString", &PropertySet::toString, "topLevelOnly"_a = false, "indent"_a = "");
81 cls.def(
82 "copy",
83 py::overload_cast<std::string const &, PropertySet const &, std::string const &, bool>(
84 &PropertySet::copy
85 ),
86 "dest"_a, "source"_a, "name"_a, "asScalar"_a=false
87 );
88 cls.def("combine", py::overload_cast<PropertySet const &>(&PropertySet::combine));
89 cls.def("remove", &PropertySet::remove);
90 cls.def("getAsBool", &PropertySet::getAsBool);
91 cls.def("getAsInt", &PropertySet::getAsInt);
92 cls.def("getAsInt64", &PropertySet::getAsInt64);
93 cls.def("getAsUInt64", &PropertySet::getAsUInt64);
94 cls.def("getAsDouble", &PropertySet::getAsDouble);
95 cls.def("getAsString", &PropertySet::getAsString);
96 cls.def("getAsPropertySetPtr", &PropertySet::getAsPropertySetPtr);
97 cls.def("getAsPersistablePtr", &PropertySet::getAsPersistablePtr);
98
99 declareAccessors<bool>(cls, "Bool");
100 declareAccessors<short>(cls, "Short");
101 declareAccessors<int>(cls, "Int");
102 declareAccessors<long>(cls, "Long");
103 declareAccessors<long long>(cls, "LongLong");
104 declareAccessors<unsigned long long>(cls, "UnsignedLongLong");
105 declareAccessors<float>(cls, "Float");
106 declareAccessors<double>(cls, "Double");
107 declareAccessors<std::nullptr_t>(cls, "Undef");
108 declareAccessors<std::string>(cls, "String");
109 declareAccessors<DateTime>(cls, "DateTime");
110 declareAccessors<std::shared_ptr<PropertySet>>(cls, "PropertySet");
111}