1 #include "pybind11/pybind11.h"
2 #include "pybind11/stl.h"
11 using namespace pybind11::literals;
18 template <
typename T,
typename C>
23 "name"_a,
"defaultValue"_a);
26 cls.def(getArrayName.
c_str(),
30 cls.def(setName.
c_str(), (void (PropertySet::*)(
std::string const&, T
const&)) & PropertySet::set<T>,
32 cls.def(setName.
c_str(),
37 cls.def(addName.
c_str(), (void (PropertySet::*)(
std::string const&, T
const&)) & PropertySet::add<T>,
39 cls.def(addName.
c_str(),
44 cls.attr(typeName.
c_str()) = py::cast(PropertySet::typeOfT<T>(), py::return_value_policy::reference);
50 py::module::import(
"lsst.daf.base.persistable");
52 py::class_<std::type_info>(mod,
"TypeInfo")
60 py::class_<PropertySet, std::shared_ptr<PropertySet>> cls(mod,
"PropertySet");
62 cls.def(py::init<bool>(),
"flat"_a =
false);
64 cls.def(
"deepCopy", &PropertySet::deepCopy);
65 cls.def(
"nameCount", &PropertySet::nameCount,
"topLevelOnly"_a =
true);
66 cls.def(
"names", &PropertySet::names,
"topLevelOnly"_a =
true);
67 cls.def(
"paramNames", &PropertySet::paramNames,
"topLevelOnly"_a =
true);
68 cls.def(
"propertySetNames", &PropertySet::propertySetNames,
"topLevelOnly"_a =
true);
69 cls.def(
"exists", &PropertySet::exists);
70 cls.def(
"isArray", &PropertySet::isArray);
71 cls.def(
"isUndefined", &PropertySet::isUndefined);
72 cls.def(
"isPropertySetPtr", &PropertySet::isPropertySetPtr);
74 py::overload_cast<>(&PropertySet::valueCount, py::const_));
76 py::overload_cast<std::string const&>(&PropertySet::valueCount,
78 cls.def(
"typeOf", &PropertySet::typeOf, py::return_value_policy::reference);
79 cls.def(
"toString", &PropertySet::toString,
"topLevelOnly"_a =
false,
"indent"_a =
"");
80 cls.def(
"copy", &PropertySet::copy,
"dest"_a,
"source"_a,
"name"_a,
"asScalar"_a=
false);
81 cls.def(
"combine", &PropertySet::combine);
82 cls.def(
"remove", &PropertySet::remove);
83 cls.def(
"getAsBool", &PropertySet::getAsBool);
84 cls.def(
"getAsInt", &PropertySet::getAsInt);
85 cls.def(
"getAsInt64", &PropertySet::getAsInt64);
86 cls.def(
"getAsUInt64", &PropertySet::getAsUInt64);
87 cls.def(
"getAsDouble", &PropertySet::getAsDouble);
88 cls.def(
"getAsString", &PropertySet::getAsString);
89 cls.def(
"getAsPropertySetPtr", &PropertySet::getAsPropertySetPtr);
90 cls.def(
"getAsPersistablePtr", &PropertySet::getAsPersistablePtr);
92 declareAccessors<bool>(cls,
"Bool");
93 declareAccessors<short>(cls,
"Short");
94 declareAccessors<int>(cls,
"Int");
95 declareAccessors<long>(cls,
"Long");
96 declareAccessors<long long>(cls,
"LongLong");
97 declareAccessors<unsigned long long>(cls,
"UnsignedLongLong");
98 declareAccessors<float>(cls,
"Float");
99 declareAccessors<double>(cls,
"Double");
100 declareAccessors<nullptr_t>(cls,
"Undef");
101 declareAccessors<std::string>(cls,
"String");
102 declareAccessors<DateTime>(cls,
"DateTime");
103 declareAccessors<std::shared_ptr<PropertySet>>(cls,
"PropertySet");
table::Key< std::string > name
Interface for DateTime class.
ItemVariant const * other
std::string const & getName() const noexcept
Return a filter's name.
PYBIND11_MODULE(propertySet, mod)
A base class for image defects.