MCPcopy Create free account
hub / github.com/bloomberg/pystack / toConcreteObject

Method toConcreteObject

src/pystack/_pystack/pytypes.cpp:680–718  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

678}
679
680Object::PythonObject
681Object::toConcreteObject() const
682{
683 try {
684 switch (objectType()) {
685 case Object::ObjectType::STRING:
686 if (d_manager->versionIsAtLeast(3, 0)) {
687 return '"' + d_manager->getStringFromAddress(d_addr) + '"';
688 }
689 return normalizeBytesObjectRepresentation(d_manager->getStringFromAddress(d_addr), "");
690 case Object::ObjectType::BYTES:
691 return normalizeBytesObjectRepresentation(d_manager->getBytesFromAddress(d_addr));
692 case Object::ObjectType::NONE:
693 return NoneObject(d_addr);
694 case Object::ObjectType::INT:
695 return toInteger();
696 case Object::ObjectType::INT_BOOL:
697 return toBool();
698 case Object::ObjectType::LONG:
699 return LongObject(d_manager, d_addr);
700 case Object::ObjectType::LONG_BOOL:
701 return LongObject(d_manager, d_addr, true);
702 case Object::ObjectType::FLOAT:
703 return toFloat();
704 case Object::ObjectType::TUPLE:
705 return TupleObject(d_manager, d_addr);
706 case Object::ObjectType::LIST:
707 return ListObject(d_manager, d_addr);
708 case Object::ObjectType::DICT:
709 return DictObject(d_manager, d_addr);
710 case Object::ObjectType::CODE:
711 case Object::ObjectType::OTHER:
712 return GenericObject(d_addr, d_classname);
713 }
714 } catch (InvalidRemoteObject&) {
715 LOG(DEBUG) << std::hex << std::showbase << "Failed to identify object at address: " << d_addr;
716 }
717 return GenericObject(d_addr, d_classname);
718}
719
720std::string
721Object::guessClassName(Structure<py_type_v>& type) const

Callers

nothing calls this directly

Calls 11

NoneObjectClass · 0.85
LongObjectClass · 0.85
TupleObjectClass · 0.85
ListObjectClass · 0.85
DictObjectClass · 0.85
GenericObjectClass · 0.85
LOGClass · 0.85
versionIsAtLeastMethod · 0.80
getStringFromAddressMethod · 0.80
getBytesFromAddressMethod · 0.80

Tested by

no test coverage detected