diff options
Diffstat (limited to 'venv/lib/python3.11/site-packages/rich/styled.py')
-rw-r--r-- | venv/lib/python3.11/site-packages/rich/styled.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/venv/lib/python3.11/site-packages/rich/styled.py b/venv/lib/python3.11/site-packages/rich/styled.py new file mode 100644 index 0000000..27243be --- /dev/null +++ b/venv/lib/python3.11/site-packages/rich/styled.py @@ -0,0 +1,42 @@ +from typing import TYPE_CHECKING + +from .measure import Measurement +from .segment import Segment +from .style import StyleType + +if TYPE_CHECKING: + from .console import Console, ConsoleOptions, RenderResult, RenderableType + + +class Styled: + """Apply a style to a renderable. + + Args: + renderable (RenderableType): Any renderable. + style (StyleType): A style to apply across the entire renderable. + """ + + def __init__(self, renderable: "RenderableType", style: "StyleType") -> None: + self.renderable = renderable + self.style = style + + def __rich_console__( + self, console: "Console", options: "ConsoleOptions" + ) -> "RenderResult": + style = console.get_style(self.style) + rendered_segments = console.render(self.renderable, options) + segments = Segment.apply_style(rendered_segments, style) + return segments + + def __rich_measure__( + self, console: "Console", options: "ConsoleOptions" + ) -> Measurement: + return Measurement.get(console, options, self.renderable) + + +if __name__ == "__main__": # pragma: no cover + from rich import print + from rich.panel import Panel + + panel = Styled(Panel("hello"), "on blue") + print(panel) |