MCPcopy Create free account
hub / github.com/fabioz/PyDev.Debugger / FrameResolver

Class FrameResolver

_pydevd_bundle/pydevd_resolver.py:722–764  ·  view source on GitHub ↗

This resolves a frame.

Source from the content-addressed store, hash-verified

720# FrameResolver
721# =======================================================================================================================
722class FrameResolver:
723 """
724 This resolves a frame.
725 """
726
727 def resolve(self, obj, attribute):
728 if attribute == "__internals__":
729 return defaultResolver.get_dictionary(obj)
730
731 if attribute == "stack":
732 return self.get_frame_stack(obj)
733
734 if attribute == "f_locals":
735 return obj.f_locals
736
737 return None
738
739 def get_dictionary(self, obj):
740 ret = {}
741 ret["__internals__"] = defaultResolver.get_dictionary(obj)
742 ret["stack"] = self.get_frame_stack(obj)
743 ret["f_locals"] = obj.f_locals
744 return ret
745
746 def get_frame_stack(self, frame):
747 ret = []
748 if frame is not None:
749 ret.append(self.get_frame_name(frame))
750
751 while frame.f_back:
752 frame = frame.f_back
753 ret.append(self.get_frame_name(frame))
754
755 return ret
756
757 def get_frame_name(self, frame):
758 if frame is None:
759 return "None"
760 try:
761 name = basename(frame.f_code.co_filename)
762 return "frame: %s [%s:%s] id:%s" % (frame.f_code.co_name, name, frame.f_lineno, id(frame))
763 except:
764 return "frame object"
765
766
767defaultResolver = DefaultResolver()

Callers 1

pydevd_resolver.pyFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected