From 6b5b80d68f86d60be8ae1c8cc200b0a26cdcada7 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Thu, 10 Dec 2020 17:20:37 +0000 Subject: [PATCH] type fixes, docs --- rich/console.py | 17 +++++++++++++++-- rich/progress.py | 4 ++-- rich/spinner.py | 7 +++---- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/rich/console.py b/rich/console.py index 8d4b8501..481f597d 100644 --- a/rich/console.py +++ b/rich/console.py @@ -768,9 +768,22 @@ class Console: speed: float = 1.0, refresh_per_second: float = 12.5, ) -> "Status": + """Display a status and spinner. + + Args: + status (RenderableType): A status renderable (str or Text typically). + console (Console, optional): Console instance to use, or None for global console. Defaults to None. + spinner (str, optional): Name of spinner animation (see python -m rich.spinner). Defaults to "dots". + spinner_style (StyleType, optional): Style of spinner. Defaults to "status.spinner". + speed (float, optional): Speed factor for spinner animation. Defaults to 1.0. + refresh_per_second (float, optional): Number of refreshes per second. Defaults to 12.5. + + Returns: + Status: A Status object that may be used as a context manager. + """ from .status import Status - status = Status( + status_renderable = Status( status, console=self, spinner=spinner, @@ -778,7 +791,7 @@ class Console: speed=speed, refresh_per_second=refresh_per_second, ) - return status + return status_renderable def show_cursor(self, show: bool = True) -> None: """Show or hide the cursor. diff --git a/rich/progress.py b/rich/progress.py index 7dd1d5d9..b38e67ae 100644 --- a/rich/progress.py +++ b/rich/progress.py @@ -202,7 +202,7 @@ class RenderableColumn(ProgressColumn): super().__init__() def render(self, task: "Task") -> RenderableType: - return Text("") if self.renderable is None else self.renderable + return self.renderable class SpinnerColumn(ProgressColumn): @@ -248,7 +248,7 @@ class SpinnerColumn(ProgressColumn): def render(self, task: "Task") -> Text: if task.finished: return self.finished_text - text = self.spinner.render(task._get_time()) + text = self.spinner.render(task.get_time()) return text diff --git a/rich/spinner.py b/rich/spinner.py index 9e694730..b236e0bb 100644 --- a/rich/spinner.py +++ b/rich/spinner.py @@ -1,5 +1,4 @@ -import typing -from typing import Optional, TYPE_CHECKING +from typing import cast, List, Optional, TYPE_CHECKING from ._spinners import SPINNERS from .console import Console @@ -31,8 +30,8 @@ class Spinner: except KeyError: raise KeyError(f"no spinner called {name!r}") self.text = text - self.frames = spinner["frames"][:] - self.interval = spinner["interval"] + self.frames = cast(List[str], spinner["frames"])[:] + self.interval = cast(float, spinner["interval"]) self.start_time: Optional[float] = None self.style = style self.speed = speed