(self, stack: Stack)
| 766 | |
| 767 | @group() |
| 768 | def _render_stack(self, stack: Stack) -> RenderResult: |
| 769 | path_highlighter = PathHighlighter() |
| 770 | theme = self.theme |
| 771 | |
| 772 | def render_locals(frame: Frame) -> Iterable[ConsoleRenderable]: |
| 773 | if frame.locals: |
| 774 | yield render_scope( |
| 775 | frame.locals, |
| 776 | title="locals", |
| 777 | indent_guides=self.indent_guides, |
| 778 | max_length=self.locals_max_length, |
| 779 | max_string=self.locals_max_string, |
| 780 | max_depth=self.locals_max_depth, |
| 781 | overflow=self.locals_overflow, |
| 782 | ) |
| 783 | |
| 784 | exclude_frames: Optional[range] = None |
| 785 | if self.max_frames != 0: |
| 786 | exclude_frames = range( |
| 787 | self.max_frames // 2, |
| 788 | len(stack.frames) - self.max_frames // 2, |
| 789 | ) |
| 790 | |
| 791 | excluded = False |
| 792 | for frame_index, frame in enumerate(stack.frames): |
| 793 | if exclude_frames and frame_index in exclude_frames: |
| 794 | excluded = True |
| 795 | continue |
| 796 | |
| 797 | if excluded: |
| 798 | assert exclude_frames is not None |
| 799 | yield Text( |
| 800 | f"\n... {len(exclude_frames)} frames hidden ...", |
| 801 | justify="center", |
| 802 | style="traceback.error", |
| 803 | ) |
| 804 | excluded = False |
| 805 | |
| 806 | first = frame_index == 0 |
| 807 | frame_filename = frame.filename |
| 808 | suppressed = any(frame_filename.startswith(path) for path in self.suppress) |
| 809 | |
| 810 | if os.path.exists(frame.filename): |
| 811 | text = Text.assemble( |
| 812 | path_highlighter(Text(frame.filename, style="pygments.string")), |
| 813 | (":", "pygments.text"), |
| 814 | (str(frame.lineno), "pygments.number"), |
| 815 | " in ", |
| 816 | (frame.name, "pygments.function"), |
| 817 | style="pygments.text", |
| 818 | ) |
| 819 | else: |
| 820 | text = Text.assemble( |
| 821 | "in ", |
| 822 | (frame.name, "pygments.function"), |
| 823 | (":", "pygments.text"), |
| 824 | (str(frame.lineno), "pygments.number"), |
| 825 | style="pygments.text", |
no test coverage detected