Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
screen.py55 linesDownload Raw Back to rich
1from typing import Optional, TYPE_CHECKING2 3from .segment import Segment4from .style import StyleType5from ._loop import loop_last6 7 8if TYPE_CHECKING:9    from .console import (10        Console,11        ConsoleOptions,12        RenderResult,13        RenderableType,14        Group,15    )16 17 18class Screen:19    """A renderable that fills the terminal screen and crops excess.20 21    Args:22        renderable (RenderableType): Child renderable.23        style (StyleType, optional): Optional background style. Defaults to None.24    """25 26    renderable: "RenderableType"27 28    def __init__(29        self,30        *renderables: "RenderableType",31        style: Optional[StyleType] = None,32        application_mode: bool = False,33    ) -> None:34        from rich.console import Group35 36        self.renderable = Group(*renderables)37        self.style = style38        self.application_mode = application_mode39 40    def __rich_console__(41        self, console: "Console", options: "ConsoleOptions"42    ) -> "RenderResult":43        width, height = options.size44        style = console.get_style(self.style) if self.style else None45        render_options = options.update(width=width, height=height)46        lines = console.render_lines(47            self.renderable or "", render_options, style=style, pad=True48        )49        lines = Segment.set_shape(lines, width, height, style=style)50        new_line = Segment("\n\r") if self.application_mode else Segment.line()51        for last, line in loop_last(lines):52            yield from line53            if not last:54                yield new_line55 
codekingpro/portable-devtools · Team Ai