447   if (!TPython::CPPInstance_Check(pyobj)) {
 
  457   void *
obj = TPython::CPPInstance_AsVoidPtr(pyobj);
 
  459   if (!strcmp(tcls->GetName(), 
"string")) {
 
  460     std::string *
str = (std::string*)
obj;
 
  461     return PyUnicode_FromString(
str->c_str());
 
  464   TString tstring = tcls->GetName();
 
  465   if (tstring.BeginsWith(
"pair<") ||
 
  466       tstring.BeginsWith(
"std::pair<")) {
 
  468     PyObject *
v0 = PyObject_GetAttrString(pyobj, 
"first");
 
  469     PyObject *v1 = PyObject_GetAttrString(pyobj, 
"second");
 
  478   if (CPyCppyy::Sequence_Check(pyobj)) {
 
  479     if (!strcmp(tcls->GetName(), 
"CLHEP::Hep3Vector")) {
 
  488   TList *members = tcls->GetListOfDataMembers();
 
  489   const Int_t nmembers = members->GetEntries();
 
  491   PyObject *py_members = PyList_New(nmembers+hdr);
 
  492 #if PYROOT_INSPECTOR_DBG 
  493   std::cerr << 
"==[" << tcls->GetName() << 
"]== (#mbrs:" 
  496             << 
" #py-sz:" << PyList_Size(py_members)
 
  502     const Py_ssize_t nelems = PySequence_Size(pyobj);
 
  503 #if PYROOT_INSPECTOR_DBG 
  504     std::cerr << 
"== sequence (" << nelems << 
")...\n";
 
  506     PyObject *py_elems = PyList_New(nelems);
 
  507     for (Py_ssize_t 
i = 0; 
i < nelems; ++
i) {
 
  508       PyObject *itr = PySequence_GetItem(pyobj, 
i);
 
  510       PyList_SET_ITEM(py_elems, 
i, itr_pyroot);
 
  515     PyList_SET_ITEM(py_members, 0, py_elems);
 
  516 #if PYROOT_INSPECTOR_DBG 
  517     std::cerr << 
"== sequence (" << nelems << 
")... content:\n" 
  518               << ::to_str(py_elems)
 
  520     std::cerr << 
"== sequence (" << nelems << 
")... [done]\n";
 
  525   for (Int_t j = 0; j<nmembers; ++j) {
 
  526     TDataMember *mbr = (TDataMember*)(members->At(j));
 
  527     Int_t 
offset =     mbr->GetOffset();
 
  530 #if PYROOT_INSPECTOR_DBG 
  531     TClass *mbr_cls = TClass::GetClass(mbr->GetTypeName());
 
  532     std::cerr << 
"==[" << j << 
"] - [" << mbr->GetTypeName() << 
"] " 
  533               << 
"[" << mbr->GetName() 
 
  535               << 
"[" << (mbr_cls ? mbr_cls->GetName() : 
"N/A") << 
"]\n";
 
  540     if (persistentOnly && !mbr->IsPersistent())
 
  542     if (mbr->IsaPointer())
 
  544     if (mbr->IsBasic()) {
 
  545       TDataType * mbr_type = mbr->GetDataType();
 
  546       EDataType mbr_dtype = (EDataType)mbr_type->GetType();
 
  547       py_mbr = to_pyobj(
ptr, mbr_dtype);
 
  548     } 
else if (mbr->IsEnum()) {
 
  549 #if PYROOT_INSPECTOR_DBG 
  550       std::cerr << 
"==[" << mbr->GetTypeName() << 
"][" 
  551                 << mbr->GetDataType()->GetType() << 
"][val=" 
  552                 << (*(
int*)
ptr) << 
"][" 
  553                 << mbr->GetName() << 
"] is an enum !!\n";
 
  555       py_mbr = to_pyobj(
ptr, kInt_t);
 
  557       PyObject *pyroot_obj = TPython::CPPInstance_FromVoidPtr
 
  563       Py_XDECREF(pyroot_obj);
 
  566       std::cerr << 
"could not create py-object of type [" 
  567                 << mbr->GetTypeName() << 
"] !\n";
 
  568       Py_DECREF(py_members);
 
  573     PyTuple_SET_ITEM(py_item, 0, 
 
  574                      PyUnicode_FromString(mbr->GetName()));
 
  575     PyTuple_SET_ITEM(py_item, 1, py_mbr);
 
  576     PyList_SET_ITEM(py_members, j+hdr, py_item);
 
  578 #if PYROOT_INSPECTOR_DBG 
  579   std::cerr << 
"==[" << tcls->GetName() << 
"]== (#mbrs:" 
  580             << nmembers << 
")... [done]\n";