]>
jfr.im git - dlqueue.git/blob - venv/lib/python3.11/site-packages/pip/_vendor/rich/status.py
1 from types
import TracebackType
2 from typing
import Optional
, Type
4 from .console
import Console
, RenderableType
5 from .jupyter
import JupyterMixin
7 from .spinner
import Spinner
8 from .style
import StyleType
11 class Status(JupyterMixin
):
12 """Displays a status indicator with a 'spinner' animation.
15 status (RenderableType): A status renderable (str or Text typically).
16 console (Console, optional): Console instance to use, or None for global console. Defaults to None.
17 spinner (str, optional): Name of spinner animation (see python -m rich.spinner). Defaults to "dots".
18 spinner_style (StyleType, optional): Style of spinner. Defaults to "status.spinner".
19 speed (float, optional): Speed factor for spinner animation. Defaults to 1.0.
20 refresh_per_second (float, optional): Number of refreshes per second. Defaults to 12.5.
25 status
: RenderableType
,
27 console
: Optional
[Console
] = None,
28 spinner
: str = "dots",
29 spinner_style
: StyleType
= "status.spinner",
31 refresh_per_second
: float = 12.5,
34 self
.spinner_style
= spinner_style
36 self
._spinner
= Spinner(spinner
, text
=status
, style
=spinner_style
, speed
=speed
)
40 refresh_per_second
=refresh_per_second
,
45 def renderable(self
) -> Spinner
:
49 def console(self
) -> "Console":
50 """Get the Console used by the Status objects."""
51 return self
._live
.console
55 status
: Optional
[RenderableType
] = None,
57 spinner
: Optional
[str] = None,
58 spinner_style
: Optional
[StyleType
] = None,
59 speed
: Optional
[float] = None,
64 status (Optional[RenderableType], optional): New status renderable or None for no change. Defaults to None.
65 spinner (Optional[str], optional): New spinner or None for no change. Defaults to None.
66 spinner_style (Optional[StyleType], optional): New spinner style or None for no change. Defaults to None.
67 speed (Optional[float], optional): Speed factor for spinner animation or None for no change. Defaults to None.
69 if status
is not None:
71 if spinner_style
is not None:
72 self
.spinner_style
= spinner_style
75 if spinner
is not None:
76 self
._spinner
= Spinner(
77 spinner
, text
=self
.status
, style
=self
.spinner_style
, speed
=self
.speed
79 self
._live
.update(self
.renderable
, refresh
=True)
82 text
=self
.status
, style
=self
.spinner_style
, speed
=self
.speed
85 def start(self
) -> None:
86 """Start the status animation."""
89 def stop(self
) -> None:
90 """Stop the spinner animation."""
93 def __rich__(self
) -> RenderableType
:
94 return self
.renderable
96 def __enter__(self
) -> "Status":
102 exc_type
: Optional
[Type
[BaseException
]],
103 exc_val
: Optional
[BaseException
],
104 exc_tb
: Optional
[TracebackType
],
109 if __name__
== "__main__": # pragma: no cover
111 from time
import sleep
113 from .console
import Console
116 with console
.status("[magenta]Covid detector booting up") as status
:
118 console
.log("Importing advanced AI")
120 console
.log("Advanced Covid AI Ready")
122 status
.update(status
="[bold blue] Scanning for Covid", spinner
="earth")
124 console
.log("Found 10,000,000,000 copies of Covid32.exe")
127 status
="[bold red]Moving Covid32.exe to Trash",
128 spinner
="bouncingBall",
129 spinner_style
="yellow",
132 console
.print("[bold green]Covid deleted successfully")