示例#1
0
    def repr_traceback(self, excinfo):
        traceback = excinfo.traceback
        if self.tbfilter:
            traceback = traceback.filter()

        if is_recursion_error(excinfo):
            traceback, extraline = self._truncate_recursive_traceback(traceback)
        else:
            extraline = None

        last = traceback[-1]
        entries = []
        for index, entry in enumerate(traceback):
            einfo = (last == entry) and excinfo or None
            reprentry = self.repr_traceback_entry(entry, einfo)
            entries.append(reprentry)
        return ReprTraceback(entries, extraline, style=self.style)
示例#2
0
    def repr_traceback(self, excinfo):
        traceback = excinfo.traceback
        if self.tbfilter:
            traceback = traceback.filter()

        if is_recursion_error(excinfo):
            traceback, extraline = self._truncate_recursive_traceback(traceback)
        else:
            extraline = None

        last = traceback[-1]
        entries = []
        for index, entry in enumerate(traceback):
            einfo = (last == entry) and excinfo or None
            reprentry = self.repr_traceback_entry(entry, einfo)
            entries.append(reprentry)
        return ReprTraceback(entries, extraline, style=self.style)
示例#3
0
文件: code.py 项目: purepython/pypy
 def repr_traceback(self, excinfo):
     traceback = excinfo.traceback
     if self.tbfilter:
         traceback = traceback.filter()
     recursionindex = None
     if excinfo.errisinstance(RuntimeError):
         recursionindex = traceback.recursionindex()
     last = traceback[-1]
     entries = []
     extraline = None
     for index, entry in enumerate(traceback):
         einfo = (last == entry) and excinfo or None
         reprentry = self.repr_traceback_entry(entry, einfo)
         entries.append(reprentry)
         if index == recursionindex:
             extraline = "!!! Recursion detected (same locals & position)"
             break
     return ReprTraceback(entries, extraline, style=self.style)
示例#4
0
 def repr_traceback(self, excinfo):
     traceback = excinfo.traceback
     if self.tbfilter:
         traceback = traceback.filter()
     recursionindex = None
     if excinfo.errisinstance(RuntimeError):
         recursionindex = traceback.recursionindex()
     last = traceback[-1]
     entries = []
     extraline = None
     for index, entry in enumerate(traceback):
         einfo = (last == entry) and excinfo or None
         reprentry = self.repr_traceback_entry(entry, einfo)
         entries.append(reprentry)
         if index == recursionindex:
             extraline = "!!! Recursion detected (same locals & position)"
             break
     return ReprTraceback(entries, extraline, style=self.style)
示例#5
0
    def repr_traceback(self, excinfo: ExceptionInfo[BaseException]) -> "ReprTraceback":
        traceback = excinfo.traceback
        if self.tbfilter:
            traceback = traceback.filter()

        if isinstance(excinfo.value, RecursionError):
            traceback, extraline = self._truncate_recursive_traceback(traceback)
        else:
            extraline = None

        last = traceback[-1]
        entries = []
        if self.style == "value":
            reprentry = self.repr_traceback_entry(last, excinfo)
            entries.append(reprentry)
            return ReprTraceback(entries, None, style=self.style)

        for index, entry in enumerate(traceback):
            einfo = (last == entry) and excinfo or None
            reprentry = self.repr_traceback_entry(entry, einfo)
            entries.append(reprentry)
        return ReprTraceback(entries, extraline, style=self.style)