Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/rich/styled.py: 53%
17 statements
« prev ^ index » next coverage.py v7.0.1, created at 2022-12-25 06:11 +0000
« prev ^ index » next coverage.py v7.0.1, created at 2022-12-25 06:11 +0000
1from typing import TYPE_CHECKING
3from .measure import Measurement
4from .segment import Segment
5from .style import StyleType
7if TYPE_CHECKING:
8 from .console import Console, ConsoleOptions, RenderResult, RenderableType
11class Styled:
12 """Apply a style to a renderable.
14 Args:
15 renderable (RenderableType): Any renderable.
16 style (StyleType): A style to apply across the entire renderable.
17 """
19 def __init__(self, renderable: "RenderableType", style: "StyleType") -> None:
20 self.renderable = renderable
21 self.style = style
23 def __rich_console__(
24 self, console: "Console", options: "ConsoleOptions"
25 ) -> "RenderResult":
26 style = console.get_style(self.style)
27 rendered_segments = console.render(self.renderable, options)
28 segments = Segment.apply_style(rendered_segments, style)
29 return segments
31 def __rich_measure__(
32 self, console: "Console", options: "ConsoleOptions"
33 ) -> Measurement:
34 return Measurement.get(console, options, self.renderable)
37if __name__ == "__main__": # pragma: no cover
38 from rich import print
39 from rich.panel import Panel
41 panel = Styled(Panel("hello"), "on blue")
42 print(panel)