Path 1: 1867 calls (0.67)

Text (693) Padding (575) Table (113) Control (112) LiveRender (110) Panel (66) Constrain (40) Segments (39) ProgressBar (29) Align (26)

ConsoleOptions (1861) None (6)

Segment (31299) None (19)

GeneratorExit (19)

1def render(
2        self, renderable: RenderableType, options: Optional[ConsoleOptions] = None
3    ) -> Iterable[Segment]:
4        """Render an object in to an iterable of `Segment` instances.
5
6        This method contains the logic for rendering objects with the console protocol.
7        You are unlikely to need to use it directly, unless you are extending the library.
8
9        Args:
10            renderable (RenderableType): An object supporting the console protocol, or
11                an object that may be converted to a string.
12            options (ConsoleOptions, optional): An options object, or None to use self.options. Defaults to None.
13
14        Returns:
15            Iterable[Segment]: An iterable of segments that may be rendered.
16        """
17
18        _options = options or self.options
19        if _options.max_width < 1:
20            # No space to render anything. This prevents potential recursion errors.
21            return
22        render_iterable: RenderResult
23
24        renderable = rich_cast(renderable)
25        if hasattr(renderable, "__rich_console__") and not isclass(renderable):
26            render_iterable = renderable.__rich_console__(self, _options)  # type: ignore[union-attr]
27        elif isinstance(renderable, str):
28            text_renderable = self.render_str(
29                renderable, highlight=_options.highlight, markup=_options.markup
30            )
31            render_iterable = text_renderable.__rich_console__(self, _options)
32        else:
33            raise errors.NotRenderableError(
34                f"Unable to render {renderable!r}; "
35                "A str, Segment or object with __rich_console__ method is required"
36            )
37
38        try:
39            iter_render = iter(render_iterable)
40        except TypeError:
41            raise errors.NotRenderableError(
42                f"object {render_iterable!r} is not renderable"
43            )
44        _Segment = Segment
45        _options = _options.reset_height()
46        for render_output in iter_render:
47            if isinstance(render_output, _Segment):
48                yield render_output
49            else:
50                yield from self.render(render_output, _options)
            

Path 2: 424 calls (0.15)

'' (94) 'foo' (43) 'Averlongwordgoeshere' (21) 'bar' (20) 'Coffee' (16) 'banana pancakes' (15) 'Step 0\nStep 1\nStep 2\nStep 3\nStep 4\nStep 5\nStep 6...

ConsoleOptions (424)

Segment (1816) None (1)

GeneratorExit (1)

1def render(
2        self, renderable: RenderableType, options: Optional[ConsoleOptions] = None
3    ) -> Iterable[Segment]:
4        """Render an object in to an iterable of `Segment` instances.
5
6        This method contains the logic for rendering objects with the console protocol.
7        You are unlikely to need to use it directly, unless you are extending the library.
8
9        Args:
10            renderable (RenderableType): An object supporting the console protocol, or
11                an object that may be converted to a string.
12            options (ConsoleOptions, optional): An options object, or None to use self.options. Defaults to None.
13
14        Returns:
15            Iterable[Segment]: An iterable of segments that may be rendered.
16        """
17
18        _options = options or self.options
19        if _options.max_width < 1:
20            # No space to render anything. This prevents potential recursion errors.
21            return
22        render_iterable: RenderResult
23
24        renderable = rich_cast(renderable)
25        if hasattr(renderable, "__rich_console__") and not isclass(renderable):
26            render_iterable = renderable.__rich_console__(self, _options)  # type: ignore[union-attr]
27        elif isinstance(renderable, str):
28            text_renderable = self.render_str(
29                renderable, highlight=_options.highlight, markup=_options.markup
30            )
31            render_iterable = text_renderable.__rich_console__(self, _options)
32        else:
33            raise errors.NotRenderableError(
34                f"Unable to render {renderable!r}; "
35                "A str, Segment or object with __rich_console__ method is required"
36            )
37
38        try:
39            iter_render = iter(render_iterable)
40        except TypeError:
41            raise errors.NotRenderableError(
42                f"object {render_iterable!r} is not renderable"
43            )
44        _Segment = Segment
45        _options = _options.reset_height()
46        for render_output in iter_render:
47            if isinstance(render_output, _Segment):
48                yield render_output
49            else:
50                yield from self.render(render_output, _options)
            

Path 3: 321 calls (0.11)

Group (74) Pretty (43) Renderables (40) Syntax (39) Paragraph (39) Rule (29) Traceback (16) Heading (13) CodeBlock (8) Constrain (5)

ConsoleOptions (321)

Segment (10963) None (5)

GeneratorExit (5)

1def render(
2        self, renderable: RenderableType, options: Optional[ConsoleOptions] = None
3    ) -> Iterable[Segment]:
4        """Render an object in to an iterable of `Segment` instances.
5
6        This method contains the logic for rendering objects with the console protocol.
7        You are unlikely to need to use it directly, unless you are extending the library.
8
9        Args:
10            renderable (RenderableType): An object supporting the console protocol, or
11                an object that may be converted to a string.
12            options (ConsoleOptions, optional): An options object, or None to use self.options. Defaults to None.
13
14        Returns:
15            Iterable[Segment]: An iterable of segments that may be rendered.
16        """
17
18        _options = options or self.options
19        if _options.max_width < 1:
20            # No space to render anything. This prevents potential recursion errors.
21            return
22        render_iterable: RenderResult
23
24        renderable = rich_cast(renderable)
25        if hasattr(renderable, "__rich_console__") and not isclass(renderable):
26            render_iterable = renderable.__rich_console__(self, _options)  # type: ignore[union-attr]
27        elif isinstance(renderable, str):
28            text_renderable = self.render_str(
29                renderable, highlight=_options.highlight, markup=_options.markup
30            )
31            render_iterable = text_renderable.__rich_console__(self, _options)
32        else:
33            raise errors.NotRenderableError(
34                f"Unable to render {renderable!r}; "
35                "A str, Segment or object with __rich_console__ method is required"
36            )
37
38        try:
39            iter_render = iter(render_iterable)
40        except TypeError:
41            raise errors.NotRenderableError(
42                f"object {render_iterable!r} is not renderable"
43            )
44        _Segment = Segment
45        _options = _options.reset_height()
46        for render_output in iter_render:
47            if isinstance(render_output, _Segment):
48                yield render_output
49            else:
50                yield from self.render(render_output, _options)
            

Path 4: 136 calls (0.05)

Control (118) LiveRender (5) Table (5) UnknownElement (4) Padding (4)

ConsoleOptions (136)

1def render(
2        self, renderable: RenderableType, options: Optional[ConsoleOptions] = None
3    ) -> Iterable[Segment]:
4        """Render an object in to an iterable of `Segment` instances.
5
6        This method contains the logic for rendering objects with the console protocol.
7        You are unlikely to need to use it directly, unless you are extending the library.
8
9        Args:
10            renderable (RenderableType): An object supporting the console protocol, or
11                an object that may be converted to a string.
12            options (ConsoleOptions, optional): An options object, or None to use self.options. Defaults to None.
13
14        Returns:
15            Iterable[Segment]: An iterable of segments that may be rendered.
16        """
17
18        _options = options or self.options
19        if _options.max_width < 1:
20            # No space to render anything. This prevents potential recursion errors.
21            return
22        render_iterable: RenderResult
23
24        renderable = rich_cast(renderable)
25        if hasattr(renderable, "__rich_console__") and not isclass(renderable):
26            render_iterable = renderable.__rich_console__(self, _options)  # type: ignore[union-attr]
27        elif isinstance(renderable, str):
28            text_renderable = self.render_str(
29                renderable, highlight=_options.highlight, markup=_options.markup
30            )
31            render_iterable = text_renderable.__rich_console__(self, _options)
32        else:
33            raise errors.NotRenderableError(
34                f"Unable to render {renderable!r}; "
35                "A str, Segment or object with __rich_console__ method is required"
36            )
37
38        try:
39            iter_render = iter(render_iterable)
40        except TypeError:
41            raise errors.NotRenderableError(
42                f"object {render_iterable!r} is not renderable"
43            )
44        _Segment = Segment
45        _options = _options.reset_height()
46        for render_output in iter_render:
47            if isinstance(render_output, _Segment):
48                yield render_output
49            else:
50                yield from self.render(render_output, _options)
            

Path 5: 46 calls (0.02)

Padding (41) Text (1) 'bar' (1) 'baz' (1) 'banana pancakes' (1) '' (1)

ConsoleOptions (46)

None (46)

1def render(
2        self, renderable: RenderableType, options: Optional[ConsoleOptions] = None
3    ) -> Iterable[Segment]:
4        """Render an object in to an iterable of `Segment` instances.
5
6        This method contains the logic for rendering objects with the console protocol.
7        You are unlikely to need to use it directly, unless you are extending the library.
8
9        Args:
10            renderable (RenderableType): An object supporting the console protocol, or
11                an object that may be converted to a string.
12            options (ConsoleOptions, optional): An options object, or None to use self.options. Defaults to None.
13
14        Returns:
15            Iterable[Segment]: An iterable of segments that may be rendered.
16        """
17
18        _options = options or self.options
19        if _options.max_width < 1:
20            # No space to render anything. This prevents potential recursion errors.
21            return
22        render_iterable: RenderResult
23
24        renderable = rich_cast(renderable)
25        if hasattr(renderable, "__rich_console__") and not isclass(renderable):
26            render_iterable = renderable.__rich_console__(self, _options)  # type: ignore[union-attr]
27        elif isinstance(renderable, str):
28            text_renderable = self.render_str(
29                renderable, highlight=_options.highlight, markup=_options.markup
30            )
31            render_iterable = text_renderable.__rich_console__(self, _options)
32        else:
33            raise errors.NotRenderableError(
34                f"Unable to render {renderable!r}; "
35                "A str, Segment or object with __rich_console__ method is required"
36            )
37
38        try:
39            iter_render = iter(render_iterable)
40        except TypeError:
41            raise errors.NotRenderableError(
42                f"object {render_iterable!r} is not renderable"
43            )
44        _Segment = Segment
45        _options = _options.reset_height()
46        for render_output in iter_render:
47            if isinstance(render_output, _Segment):
48                yield render_output
49            else:
50                yield from self.render(render_output, _options)
            

Path 6: 4 calls (0.0)

ScreenUpdate (4)

None (3) ConsoleOptions (1)

Segment (51)

1def render(
2        self, renderable: RenderableType, options: Optional[ConsoleOptions] = None
3    ) -> Iterable[Segment]:
4        """Render an object in to an iterable of `Segment` instances.
5
6        This method contains the logic for rendering objects with the console protocol.
7        You are unlikely to need to use it directly, unless you are extending the library.
8
9        Args:
10            renderable (RenderableType): An object supporting the console protocol, or
11                an object that may be converted to a string.
12            options (ConsoleOptions, optional): An options object, or None to use self.options. Defaults to None.
13
14        Returns:
15            Iterable[Segment]: An iterable of segments that may be rendered.
16        """
17
18        _options = options or self.options
19        if _options.max_width < 1:
20            # No space to render anything. This prevents potential recursion errors.
21            return
22        render_iterable: RenderResult
23
24        renderable = rich_cast(renderable)
25        if hasattr(renderable, "__rich_console__") and not isclass(renderable):
26            render_iterable = renderable.__rich_console__(self, _options)  # type: ignore[union-attr]
27        elif isinstance(renderable, str):
28            text_renderable = self.render_str(
29                renderable, highlight=_options.highlight, markup=_options.markup
30            )
31            render_iterable = text_renderable.__rich_console__(self, _options)
32        else:
33            raise errors.NotRenderableError(
34                f"Unable to render {renderable!r}; "
35                "A str, Segment or object with __rich_console__ method is required"
36            )
37
38        try:
39            iter_render = iter(render_iterable)
40        except TypeError:
41            raise errors.NotRenderableError(
42                f"object {render_iterable!r} is not renderable"
43            )
44        _Segment = Segment
45        _options = _options.reset_height()
46        for render_output in iter_render:
47            if isinstance(render_output, _Segment):
48                yield render_output
49            else:
50                yield from self.render(render_output, _options)
            

Path 7: 1 calls (0.0)

[] (1)

ConsoleOptions (1)

NotRenderableError (1)

1def render(
2        self, renderable: RenderableType, options: Optional[ConsoleOptions] = None
3    ) -> Iterable[Segment]:
4        """Render an object in to an iterable of `Segment` instances.
5
6        This method contains the logic for rendering objects with the console protocol.
7        You are unlikely to need to use it directly, unless you are extending the library.
8
9        Args:
10            renderable (RenderableType): An object supporting the console protocol, or
11                an object that may be converted to a string.
12            options (ConsoleOptions, optional): An options object, or None to use self.options. Defaults to None.
13
14        Returns:
15            Iterable[Segment]: An iterable of segments that may be rendered.
16        """
17
18        _options = options or self.options
19        if _options.max_width < 1:
20            # No space to render anything. This prevents potential recursion errors.
21            return
22        render_iterable: RenderResult
23
24        renderable = rich_cast(renderable)
25        if hasattr(renderable, "__rich_console__") and not isclass(renderable):
26            render_iterable = renderable.__rich_console__(self, _options)  # type: ignore[union-attr]
27        elif isinstance(renderable, str):
28            text_renderable = self.render_str(
29                renderable, highlight=_options.highlight, markup=_options.markup
30            )
31            render_iterable = text_renderable.__rich_console__(self, _options)
32        else:
33            raise errors.NotRenderableError(
34                f"Unable to render {renderable!r}; "
35                "A str, Segment or object with __rich_console__ method is required"
36            )
37
38        try:
39            iter_render = iter(render_iterable)
40        except TypeError:
41            raise errors.NotRenderableError(
42                f"object {render_iterable!r} is not renderable"
43            )
44        _Segment = Segment
45        _options = _options.reset_height()
46        for render_output in iter_render:
47            if isinstance(render_output, _Segment):
48                yield render_output
49            else:
50                yield from self.render(render_output, _options)
            

Path 8: 1 calls (0.0)

BrokenRenderable (1)

ConsoleOptions (1)

NotRenderableError (1)

1def render(
2        self, renderable: RenderableType, options: Optional[ConsoleOptions] = None
3    ) -> Iterable[Segment]:
4        """Render an object in to an iterable of `Segment` instances.
5
6        This method contains the logic for rendering objects with the console protocol.
7        You are unlikely to need to use it directly, unless you are extending the library.
8
9        Args:
10            renderable (RenderableType): An object supporting the console protocol, or
11                an object that may be converted to a string.
12            options (ConsoleOptions, optional): An options object, or None to use self.options. Defaults to None.
13
14        Returns:
15            Iterable[Segment]: An iterable of segments that may be rendered.
16        """
17
18        _options = options or self.options
19        if _options.max_width < 1:
20            # No space to render anything. This prevents potential recursion errors.
21            return
22        render_iterable: RenderResult
23
24        renderable = rich_cast(renderable)
25        if hasattr(renderable, "__rich_console__") and not isclass(renderable):
26            render_iterable = renderable.__rich_console__(self, _options)  # type: ignore[union-attr]
27        elif isinstance(renderable, str):
28            text_renderable = self.render_str(
29                renderable, highlight=_options.highlight, markup=_options.markup
30            )
31            render_iterable = text_renderable.__rich_console__(self, _options)
32        else:
33            raise errors.NotRenderableError(
34                f"Unable to render {renderable!r}; "
35                "A str, Segment or object with __rich_console__ method is required"
36            )
37
38        try:
39            iter_render = iter(render_iterable)
40        except TypeError:
41            raise errors.NotRenderableError(
42                f"object {render_iterable!r} is not renderable"
43            )
44        _Segment = Segment
45        _options = _options.reset_height()
46        for render_output in iter_render:
47            if isinstance(render_output, _Segment):
48                yield render_output
49            else:
50                yield from self.render(render_output, _options)
            

Path 9: 1 calls (0.0)

'hello' (1)

ConsoleOptions (1)

GeneratorExit (1)

1def render(
2        self, renderable: RenderableType, options: Optional[ConsoleOptions] = None
3    ) -> Iterable[Segment]:
4        """Render an object in to an iterable of `Segment` instances.
5
6        This method contains the logic for rendering objects with the console protocol.
7        You are unlikely to need to use it directly, unless you are extending the library.
8
9        Args:
10            renderable (RenderableType): An object supporting the console protocol, or
11                an object that may be converted to a string.
12            options (ConsoleOptions, optional): An options object, or None to use self.options. Defaults to None.
13
14        Returns:
15            Iterable[Segment]: An iterable of segments that may be rendered.
16        """
17
18        _options = options or self.options
19        if _options.max_width < 1:
20            # No space to render anything. This prevents potential recursion errors.
21            return
22        render_iterable: RenderResult
23
24        renderable = rich_cast(renderable)
25        if hasattr(renderable, "__rich_console__") and not isclass(renderable):
26            render_iterable = renderable.__rich_console__(self, _options)  # type: ignore[union-attr]
27        elif isinstance(renderable, str):
28            text_renderable = self.render_str(
29                renderable, highlight=_options.highlight, markup=_options.markup
30            )
31            render_iterable = text_renderable.__rich_console__(self, _options)
32        else:
33            raise errors.NotRenderableError(
34                f"Unable to render {renderable!r}; "
35                "A str, Segment or object with __rich_console__ method is required"
36            )
37
38        try:
39            iter_render = iter(render_iterable)
40        except TypeError:
41            raise errors.NotRenderableError(
42                f"object {render_iterable!r} is not renderable"
43            )
44        _Segment = Segment
45        _options = _options.reset_height()
46        for render_output in iter_render:
47            if isinstance(render_output, _Segment):
48                yield render_output
49            else:
50                yield from self.render(render_output, _options)