mirror of
https://github.com/Ladebeze66/projetcbaollm.git
synced 2025-12-18 15:07:50 +01:00
33 lines
882 B
Python
33 lines
882 B
Python
from __future__ import annotations
|
|
|
|
import time
|
|
from types import TracebackType
|
|
from typing import Optional
|
|
|
|
from rich.live import Live
|
|
from rich.panel import Panel
|
|
|
|
|
|
class LivePanelDisplay:
|
|
def __init__(self, msg: str | None = None) -> None:
|
|
self.lines = [msg] if msg else []
|
|
self._panel = Live(Panel("\n".join(self.lines)), refresh_per_second=5)
|
|
|
|
def update(self, msg: str, add_sleep: float | None = None):
|
|
self.lines.append(msg)
|
|
self._panel.update(Panel("\n".join(self.lines)))
|
|
if add_sleep:
|
|
time.sleep(add_sleep)
|
|
|
|
def __enter__(self) -> LivePanelDisplay:
|
|
self._panel.__enter__()
|
|
return self
|
|
|
|
def __exit__(
|
|
self,
|
|
exc_type: Optional[type[BaseException]],
|
|
exc_val: Optional[BaseException],
|
|
exc_tb: Optional[TracebackType],
|
|
) -> None:
|
|
self._panel.stop()
|