Renders an auto-updating live display of any given renderable. Args: renderable (RenderableType, optional): The renderable to live display. Defaults to displaying nothing. console (Console, optional): Optional Console instance. Defaults to an internal Console instance writing to
| 39 | |
| 40 | |
| 41 | class Live(JupyterMixin, RenderHook): |
| 42 | """Renders an auto-updating live display of any given renderable. |
| 43 | |
| 44 | Args: |
| 45 | renderable (RenderableType, optional): The renderable to live display. Defaults to displaying nothing. |
| 46 | console (Console, optional): Optional Console instance. Defaults to an internal Console instance writing to stdout. |
| 47 | screen (bool, optional): Enable alternate screen mode. Defaults to False. |
| 48 | auto_refresh (bool, optional): Enable auto refresh. If disabled, you will need to call `refresh()` or `update()` with refresh flag. Defaults to True |
| 49 | refresh_per_second (float, optional): Number of times per second to refresh the live display. Defaults to 4. |
| 50 | transient (bool, optional): Clear the renderable on exit (has no effect when screen=True). Defaults to False. |
| 51 | redirect_stdout (bool, optional): Enable redirection of stdout, so ``print`` may be used. Defaults to True. |
| 52 | redirect_stderr (bool, optional): Enable redirection of stderr. Defaults to True. |
| 53 | vertical_overflow (VerticalOverflowMethod, optional): How to handle renderable when it is too tall for the console. Defaults to "ellipsis". |
| 54 | get_renderable (Callable[[], RenderableType], optional): Optional callable to get renderable. Defaults to None. |
| 55 | """ |
| 56 | |
| 57 | def __init__( |
| 58 | self, |
| 59 | renderable: Optional[RenderableType] = None, |
| 60 | *, |
| 61 | console: Optional[Console] = None, |
| 62 | screen: bool = False, |
| 63 | auto_refresh: bool = True, |
| 64 | refresh_per_second: float = 4, |
| 65 | transient: bool = False, |
| 66 | redirect_stdout: bool = True, |
| 67 | redirect_stderr: bool = True, |
| 68 | vertical_overflow: VerticalOverflowMethod = "ellipsis", |
| 69 | get_renderable: Optional[Callable[[], RenderableType]] = None, |
| 70 | ) -> None: |
| 71 | assert refresh_per_second > 0, "refresh_per_second must be > 0" |
| 72 | self._renderable = renderable |
| 73 | self.console = console if console is not None else get_console() |
| 74 | self._screen = screen |
| 75 | self._alt_screen = False |
| 76 | |
| 77 | self._redirect_stdout = redirect_stdout |
| 78 | self._redirect_stderr = redirect_stderr |
| 79 | self._restore_stdout: Optional[IO[str]] = None |
| 80 | self._restore_stderr: Optional[IO[str]] = None |
| 81 | |
| 82 | self._lock = RLock() |
| 83 | self.ipy_widget: Optional[Any] = None |
| 84 | self.auto_refresh = auto_refresh |
| 85 | self._started: bool = False |
| 86 | self.transient = True if screen else transient |
| 87 | |
| 88 | self._refresh_thread: Optional[_RefreshThread] = None |
| 89 | self.refresh_per_second = refresh_per_second |
| 90 | |
| 91 | self.vertical_overflow = vertical_overflow |
| 92 | self._get_renderable = get_renderable |
| 93 | self._live_render = LiveRender( |
| 94 | self.get_renderable(), vertical_overflow=vertical_overflow |
| 95 | ) |
| 96 | self._nested = False |
| 97 | |
| 98 | @property |
no outgoing calls