A column with a 'spinner' animation. Args: spinner_name (str, optional): Name of spinner animation. Defaults to "dots". style (StyleType, optional): Style of spinner. Defaults to "progress.spinner". speed (float, optional): Speed factor of spinner. Defaults to 1.0.
| 564 | |
| 565 | |
| 566 | class SpinnerColumn(ProgressColumn): |
| 567 | """A column with a 'spinner' animation. |
| 568 | |
| 569 | Args: |
| 570 | spinner_name (str, optional): Name of spinner animation. Defaults to "dots". |
| 571 | style (StyleType, optional): Style of spinner. Defaults to "progress.spinner". |
| 572 | speed (float, optional): Speed factor of spinner. Defaults to 1.0. |
| 573 | finished_text (TextType, optional): Text used when task is finished. Defaults to " ". |
| 574 | """ |
| 575 | |
| 576 | def __init__( |
| 577 | self, |
| 578 | spinner_name: str = "dots", |
| 579 | style: Optional[StyleType] = "progress.spinner", |
| 580 | speed: float = 1.0, |
| 581 | finished_text: TextType = " ", |
| 582 | table_column: Optional[Column] = None, |
| 583 | ): |
| 584 | self.spinner = Spinner(spinner_name, style=style, speed=speed) |
| 585 | self.finished_text = ( |
| 586 | Text.from_markup(finished_text) |
| 587 | if isinstance(finished_text, str) |
| 588 | else finished_text |
| 589 | ) |
| 590 | super().__init__(table_column=table_column) |
| 591 | |
| 592 | def set_spinner( |
| 593 | self, |
| 594 | spinner_name: str, |
| 595 | spinner_style: Optional[StyleType] = "progress.spinner", |
| 596 | speed: float = 1.0, |
| 597 | ) -> None: |
| 598 | """Set a new spinner. |
| 599 | |
| 600 | Args: |
| 601 | spinner_name (str): Spinner name, see python -m rich.spinner. |
| 602 | spinner_style (Optional[StyleType], optional): Spinner style. Defaults to "progress.spinner". |
| 603 | speed (float, optional): Speed factor of spinner. Defaults to 1.0. |
| 604 | """ |
| 605 | self.spinner = Spinner(spinner_name, style=spinner_style, speed=speed) |
| 606 | |
| 607 | def render(self, task: "Task") -> RenderableType: |
| 608 | text = ( |
| 609 | self.finished_text |
| 610 | if task.finished |
| 611 | else self.spinner.render(task.get_time()) |
| 612 | ) |
| 613 | return text |
| 614 | |
| 615 | |
| 616 | class TextColumn(ProgressColumn): |
no outgoing calls