1from typing
import cast, List, Optional, TYPE_CHECKING, Union
3from ._spinners
import SPINNERS
4from .measure
import Measurement
5from .table
import Table
9 from .console
import Console, ConsoleOptions, RenderResult, RenderableType
10 from .style
import StyleType
14 """A spinner animation.
17 name (str): Name of spinner (run python -m rich.spinner).
18 text (RenderableType, optional): A renderable to display at the right of the spinner (str or Text typically). Defaults to "".
19 style (StyleType, optional): Style for spinner animation. Defaults to None.
20 speed (float, optional): Speed factor for animation. Defaults to 1.0.
23 KeyError: If name isn't one of the supported spinner animations.
29 text:
"RenderableType" =
"",
31 style: Optional[
"StyleType"] =
None,
35 spinner = SPINNERS[name]
37 raise KeyError(f
"no spinner called {name!r}")
38 self.
text:
"Union[RenderableType, Text]" = (
41 self.
frames = cast(List[str], spinner[
"frames"])[:]
42 self.
interval = cast(float, spinner[
"interval"])
50 self, console:
"Console", options:
"ConsoleOptions"
55 self, console:
"Console", options:
"ConsoleOptions"
60 def render(self, time: float) ->
"RenderableType":
61 """Render the spinner for a given time.
64 time (float): Time in seconds.
67 RenderableType: A renderable containing animation frame.
97 text:
"RenderableType" =
"",
98 style: Optional[
"StyleType"] =
None,
99 speed: Optional[float] =
None,
101 """Updates attributes of a spinner after it has been started.
104 text (RenderableType, optional): A renderable to display at the right of the spinner (str or Text typically). Defaults to "".
105 style (StyleType, optional): Style for spinner animation. Defaults to None.
106 speed (float, optional): Speed factor for animation. Defaults to None.
116if __name__ ==
"__main__":
117 from time
import sleep
119 from .columns
import Columns
120 from .panel
import Panel
121 from .live
import Live
125 Spinner(spinner_name, text=
Text(repr(spinner_name), style=
"green"))
133 Panel(all_spinners, title=
"Spinners", border_style=
"blue"),
134 refresh_per_second=20,
None update(self, *"RenderableType" text="", Optional["StyleType"] style=None, Optional[float] speed=None)
Measurement __rich_measure__(self, "Console" console, "ConsoleOptions" options)
None __init__(self, str name, "RenderableType" text="", *Optional["StyleType"] style=None, float speed=1.0)
"RenderResult" __rich_console__(self, "Console" console, "ConsoleOptions" options)
"RenderableType" render(self, float time)