@@ -131,9 +131,9 @@ py::object getLookupValueFinfoItem(const ObjId& oid, const string& fname,
131131 string tgtType = srcDestType[1 ];
132132
133133 py::object r;
134- if (tgtType == " bool" )
134+ if (tgtType == " bool" )
135135 r = py::cast (LookupField<string, bool >::get (oid, fname, k));
136- else if (tgtType == " vector<Id>" )
136+ else if (tgtType == " vector<Id>" )
137137 r = py::cast (LookupField<string, vector<Id>>::get (oid, fname, k));
138138 else
139139 cerr << " Unsupported types: " << rttType << endl;
@@ -197,6 +197,8 @@ PYBIND11_MODULE(_cmoose, m)
197197 // properties
198198 .def_property_readonly (" numIds" , &Id::numIds)
199199 .def_property_readonly (" path" , &Id::path)
200+ .def_property_readonly (" name" ,
201+ [](const Id& id) { return ObjId (id).name (); })
200202 .def_property_readonly (" id" , &Id::value)
201203 .def_property_readonly (
202204 " cinfo" , [](Id& id) { return id.element ()->cinfo (); },
@@ -222,6 +224,8 @@ PYBIND11_MODULE(_cmoose, m)
222224 .def_property_readonly (" value" ,
223225 [](const ObjId oid) { return oid.id .value (); })
224226 .def_property_readonly (" path" , &ObjId::path)
227+ .def_property_readonly (
228+ " parent" , [](const ObjId& oid) { return Neutral::parent (oid); })
225229 .def_property_readonly (" name" , &ObjId::name)
226230 .def_property_readonly (
227231 " className" ,
@@ -284,8 +288,7 @@ PYBIND11_MODULE(_cmoose, m)
284288 .def (" quit" , &Shell::doQuit);
285289
286290 // Module functions.
287- m.def (
288- " getShell" ,
291+ m.def (" getShell" ,
289292 []() { return reinterpret_cast <Shell*>(Id ().eref ().data ()); },
290293 py::return_value_policy::reference);
291294
@@ -301,7 +304,9 @@ PYBIND11_MODULE(_cmoose, m)
301304 m.def (" loadModelInternal" , &loadModelInternal);
302305 m.def (" getFieldDict" , &mooseGetFieldDict, py::arg (" className" ),
303306 py::arg (" finfoType" ) = " " );
304-
307+ m.def (" copy" , &mooseCopy, py::arg (" orig" ), py::arg (" newParent" ),
308+ py::arg (" newName" ), py::arg (" num" ) = 1 , py::arg (" toGlobal" ) = false ,
309+ py::arg (" copyExtMsgs" ) = false );
305310 // Attributes.
306311 m.attr (" NA" ) = NA;
307312 m.attr (" PI" ) = PI;
0 commit comments