Current Path: > > opt > hc_python > > > lib > python3.12 > site-packages > pip > _vendor > rich
Operation : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 Software : Apache Server IP : 162.0.232.56 | Your IP: 216.73.216.111 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
__pycache__ | Directory | - | - | |
__init__.py | File | 6090 bytes | May 23 2025 10:34:25. | |
__main__.py | File | 8477 bytes | May 23 2025 10:34:25. | |
_cell_widths.py | File | 10209 bytes | May 23 2025 10:34:25. | |
_emoji_codes.py | File | 140235 bytes | May 23 2025 10:34:25. | |
_emoji_replace.py | File | 1064 bytes | May 23 2025 10:34:25. | |
_export_format.py | File | 2128 bytes | May 23 2025 10:34:25. | |
_extension.py | File | 265 bytes | May 23 2025 10:34:25. | |
_fileno.py | File | 799 bytes | May 23 2025 10:34:25. | |
_inspect.py | File | 9655 bytes | May 23 2025 10:34:25. | |
_log_render.py | File | 3225 bytes | May 23 2025 10:34:25. | |
_loop.py | File | 1236 bytes | May 23 2025 10:34:25. | |
_null_file.py | File | 1394 bytes | May 23 2025 10:34:25. | |
_palettes.py | File | 7063 bytes | May 23 2025 10:34:25. | |
_pick.py | File | 423 bytes | May 23 2025 10:34:25. | |
_ratio.py | File | 5471 bytes | May 23 2025 10:34:25. | |
_spinners.py | File | 19919 bytes | May 23 2025 10:34:25. | |
_stack.py | File | 351 bytes | May 23 2025 10:34:25. | |
_timer.py | File | 417 bytes | May 23 2025 10:34:25. | |
_win32_console.py | File | 22755 bytes | May 23 2025 10:34:25. | |
_windows.py | File | 1925 bytes | May 23 2025 10:34:25. | |
_windows_renderer.py | File | 2783 bytes | May 23 2025 10:34:25. | |
_wrap.py | File | 3404 bytes | May 23 2025 10:34:25. | |
abc.py | File | 890 bytes | May 23 2025 10:34:25. | |
align.py | File | 10469 bytes | May 23 2025 10:34:25. | |
ansi.py | File | 6921 bytes | May 23 2025 10:34:25. | |
bar.py | File | 3263 bytes | May 23 2025 10:34:25. | |
box.py | File | 10831 bytes | May 23 2025 10:34:25. | |
cells.py | File | 5130 bytes | May 23 2025 10:34:25. | |
color.py | File | 18211 bytes | May 23 2025 10:34:25. | |
color_triplet.py | File | 1054 bytes | May 23 2025 10:34:25. | |
columns.py | File | 7131 bytes | May 23 2025 10:34:25. | |
console.py | File | 100565 bytes | May 23 2025 10:34:25. | |
constrain.py | File | 1288 bytes | May 23 2025 10:34:25. | |
containers.py | File | 5502 bytes | May 23 2025 10:34:25. | |
control.py | File | 6630 bytes | May 23 2025 10:34:25. | |
default_styles.py | File | 8257 bytes | May 23 2025 10:34:25. | |
diagnose.py | File | 998 bytes | May 23 2025 10:34:25. | |
emoji.py | File | 2501 bytes | May 23 2025 10:34:25. | |
errors.py | File | 642 bytes | May 23 2025 10:34:25. | |
file_proxy.py | File | 1683 bytes | May 23 2025 10:34:25. | |
filesize.py | File | 2484 bytes | May 23 2025 10:34:25. | |
highlighter.py | File | 9586 bytes | May 23 2025 10:34:25. | |
json.py | File | 5031 bytes | May 23 2025 10:34:25. | |
jupyter.py | File | 3252 bytes | May 23 2025 10:34:25. | |
layout.py | File | 14004 bytes | May 23 2025 10:34:25. | |
live.py | File | 14270 bytes | May 23 2025 10:34:25. | |
live_render.py | File | 3666 bytes | May 23 2025 10:34:25. | |
logging.py | File | 12458 bytes | May 23 2025 10:34:25. | |
markup.py | File | 8451 bytes | May 23 2025 10:34:25. | |
measure.py | File | 5305 bytes | May 23 2025 10:34:25. | |
padding.py | File | 4908 bytes | May 23 2025 10:34:25. | |
pager.py | File | 828 bytes | May 23 2025 10:34:25. | |
palette.py | File | 3396 bytes | May 23 2025 10:34:25. | |
panel.py | File | 11225 bytes | May 23 2025 10:34:25. | |
pretty.py | File | 36391 bytes | May 23 2025 10:34:25. | |
progress.py | File | 60357 bytes | May 23 2025 10:34:25. | |
progress_bar.py | File | 8162 bytes | May 23 2025 10:34:25. | |
prompt.py | File | 12447 bytes | May 23 2025 10:34:25. | |
protocol.py | File | 1391 bytes | May 23 2025 10:34:25. | |
py.typed | File | 0 bytes | May 23 2025 10:34:25. | |
region.py | File | 166 bytes | May 23 2025 10:34:25. | |
repr.py | File | 4431 bytes | May 23 2025 10:34:25. | |
rule.py | File | 4602 bytes | May 23 2025 10:34:25. | |
scope.py | File | 2843 bytes | May 23 2025 10:34:25. | |
screen.py | File | 1591 bytes | May 23 2025 10:34:25. | |
segment.py | File | 24743 bytes | May 23 2025 10:34:25. | |
spinner.py | File | 4364 bytes | May 23 2025 10:34:25. | |
status.py | File | 4424 bytes | May 23 2025 10:34:25. | |
style.py | File | 27059 bytes | May 23 2025 10:34:25. | |
styled.py | File | 1258 bytes | May 23 2025 10:34:25. | |
syntax.py | File | 35763 bytes | May 23 2025 10:34:25. | |
table.py | File | 40049 bytes | May 23 2025 10:34:25. | |
terminal_theme.py | File | 3370 bytes | May 23 2025 10:34:25. | |
text.py | File | 47552 bytes | May 23 2025 10:34:25. | |
theme.py | File | 3771 bytes | May 23 2025 10:34:25. | |
themes.py | File | 102 bytes | May 23 2025 10:34:25. | |
traceback.py | File | 35170 bytes | May 23 2025 10:34:25. | |
tree.py | File | 9451 bytes | May 23 2025 10:34:25. |
from typing import cast, List, Optional, TYPE_CHECKING, Union from ._spinners import SPINNERS from .measure import Measurement from .table import Table from .text import Text if TYPE_CHECKING: from .console import Console, ConsoleOptions, RenderResult, RenderableType from .style import StyleType class Spinner: """A spinner animation. Args: name (str): Name of spinner (run python -m rich.spinner). text (RenderableType, optional): A renderable to display at the right of the spinner (str or Text typically). Defaults to "". style (StyleType, optional): Style for spinner animation. Defaults to None. speed (float, optional): Speed factor for animation. Defaults to 1.0. Raises: KeyError: If name isn't one of the supported spinner animations. """ def __init__( self, name: str, text: "RenderableType" = "", *, style: Optional["StyleType"] = None, speed: float = 1.0, ) -> None: try: spinner = SPINNERS[name] except KeyError: raise KeyError(f"no spinner called {name!r}") self.text: "Union[RenderableType, Text]" = ( Text.from_markup(text) if isinstance(text, str) else text ) self.name = name 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 self.frame_no_offset: float = 0.0 self._update_speed = 0.0 def __rich_console__( self, console: "Console", options: "ConsoleOptions" ) -> "RenderResult": yield self.render(console.get_time()) def __rich_measure__( self, console: "Console", options: "ConsoleOptions" ) -> Measurement: text = self.render(0) return Measurement.get(console, options, text) def render(self, time: float) -> "RenderableType": """Render the spinner for a given time. Args: time (float): Time in seconds. Returns: RenderableType: A renderable containing animation frame. """ if self.start_time is None: self.start_time = time frame_no = ((time - self.start_time) * self.speed) / ( self.interval / 1000.0 ) + self.frame_no_offset frame = Text( self.frames[int(frame_no) % len(self.frames)], style=self.style or "" ) if self._update_speed: self.frame_no_offset = frame_no self.start_time = time self.speed = self._update_speed self._update_speed = 0.0 if not self.text: return frame elif isinstance(self.text, (str, Text)): return Text.assemble(frame, " ", self.text) else: table = Table.grid(padding=1) table.add_row(frame, self.text) return table def update( self, *, text: "RenderableType" = "", style: Optional["StyleType"] = None, speed: Optional[float] = None, ) -> None: """Updates attributes of a spinner after it has been started. Args: text (RenderableType, optional): A renderable to display at the right of the spinner (str or Text typically). Defaults to "". style (StyleType, optional): Style for spinner animation. Defaults to None. speed (float, optional): Speed factor for animation. Defaults to None. """ if text: self.text = Text.from_markup(text) if isinstance(text, str) else text if style: self.style = style if speed: self._update_speed = speed if __name__ == "__main__": # pragma: no cover from time import sleep from .columns import Columns from .panel import Panel from .live import Live all_spinners = Columns( [ Spinner(spinner_name, text=Text(repr(spinner_name), style="green")) for spinner_name in sorted(SPINNERS.keys()) ], column_first=True, expand=True, ) with Live( Panel(all_spinners, title="Spinners", border_style="blue"), refresh_per_second=20, ) as live: while True: sleep(0.1)
SILENT KILLER Tool