CoolFace
Apppublic

Aluode/PerceptionLabPortable

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
constrain.py38 linesDownload Raw Back to rich
1from typing import Optional, TYPE_CHECKING2 3from .jupyter import JupyterMixin4from .measure import Measurement5 6if TYPE_CHECKING:7    from .console import Console, ConsoleOptions, RenderableType, RenderResult8 9 10class Constrain(JupyterMixin):11    """Constrain the width of a renderable to a given number of characters.12 13    Args:14        renderable (RenderableType): A renderable object.15        width (int, optional): The maximum width (in characters) to render. Defaults to 80.16    """17 18    def __init__(self, renderable: "RenderableType", width: Optional[int] = 80) -> None:19        self.renderable = renderable20        self.width = width21 22    def __rich_console__(23        self, console: "Console", options: "ConsoleOptions"24    ) -> "RenderResult":25        if self.width is None:26            yield self.renderable27        else:28            child_options = options.update_width(min(self.width, options.max_width))29            yield from console.render(self.renderable, child_options)30 31    def __rich_measure__(32        self, console: "Console", options: "ConsoleOptions"33    ) -> "Measurement":34        if self.width is not None:35            options = options.update_width(self.width)36        measurement = Measurement.get(console, options, self.renderable)37        return measurement38 
Aluode/PerceptionLabPortable · CoolFace