summaryrefslogtreecommitdiff
path: root/venv/lib/python3.11/site-packages/rich/styled.py
diff options
context:
space:
mode:
Diffstat (limited to 'venv/lib/python3.11/site-packages/rich/styled.py')
-rw-r--r--venv/lib/python3.11/site-packages/rich/styled.py42
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)