mirror of
https://github.com/Textualize/rich.git
synced 2025-08-04 10:08:40 +00:00
Add default_columns classmethod to Progress class
This commit is contained in:
parent
633faab16d
commit
b0794522a6
2 changed files with 37 additions and 10 deletions
|
@ -588,12 +588,7 @@ class Progress(JupyterMixin):
|
|||
refresh_per_second is None or refresh_per_second > 0
|
||||
), "refresh_per_second must be > 0"
|
||||
self._lock = RLock()
|
||||
self.columns = columns or (
|
||||
TextColumn("[progress.description]{task.description}"),
|
||||
BarColumn(),
|
||||
TextColumn("[progress.percentage]{task.percentage:>3.0f}%"),
|
||||
TimeRemainingColumn(),
|
||||
)
|
||||
self.columns = columns or self.default_columns()
|
||||
self.speed_estimate_period = speed_estimate_period
|
||||
|
||||
self.disable = disable
|
||||
|
@ -613,6 +608,15 @@ class Progress(JupyterMixin):
|
|||
self.print = self.console.print
|
||||
self.log = self.console.log
|
||||
|
||||
@classmethod
|
||||
def default_columns(cls) -> Tuple[ProgressColumn, ...]:
|
||||
return (
|
||||
TextColumn("[progress.description]{task.description}"),
|
||||
BarColumn(),
|
||||
TextColumn("[progress.percentage]{task.percentage:>3.0f}%"),
|
||||
TimeRemainingColumn(),
|
||||
)
|
||||
|
||||
@property
|
||||
def console(self) -> Console:
|
||||
return self.live.console
|
||||
|
@ -1015,10 +1019,7 @@ if __name__ == "__main__": # pragma: no coverage
|
|||
|
||||
with Progress(
|
||||
SpinnerColumn(),
|
||||
TextColumn("[progress.description]{task.description}"),
|
||||
BarColumn(),
|
||||
TextColumn("[progress.percentage]{task.percentage:>3.0f}%"),
|
||||
TimeRemainingColumn(),
|
||||
*Progress.default_columns(),
|
||||
TimeElapsedColumn(),
|
||||
console=console,
|
||||
transient=True,
|
||||
|
|
|
@ -334,6 +334,32 @@ def test_columns() -> None:
|
|||
assert result == expected
|
||||
|
||||
|
||||
def test_using_default_columns() -> None:
|
||||
# can only check types, as the instances do not '==' each other
|
||||
expected_default_types = [
|
||||
TextColumn,
|
||||
BarColumn,
|
||||
TextColumn,
|
||||
TimeRemainingColumn,
|
||||
]
|
||||
|
||||
progress = Progress()
|
||||
assert [type(c) for c in progress.columns] == expected_default_types
|
||||
|
||||
progress = Progress(
|
||||
SpinnerColumn(),
|
||||
*Progress.default_columns(),
|
||||
"Elapsed:",
|
||||
TimeElapsedColumn(),
|
||||
)
|
||||
assert [type(c) for c in progress.columns] == [
|
||||
SpinnerColumn,
|
||||
*expected_default_types,
|
||||
str,
|
||||
TimeElapsedColumn,
|
||||
]
|
||||
|
||||
|
||||
def test_task_create() -> None:
|
||||
task = Task(TaskID(1), "foo", 100, 0, _get_time=lambda: 1)
|
||||
assert task.elapsed is None
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue