diff --git a/README.rst b/README.rst index cce3023..3f3be76 100644 --- a/README.rst +++ b/README.rst @@ -12,13 +12,14 @@ Easy progress reporting for Python Bars ---- -There are 6 progress bars to choose from: +There are 7 progress bars to choose from: - ``Bar`` - ``ChargingBar`` - ``FillingSquaresBar`` - ``FillingCirclesBar`` - ``IncrementalBar`` +- ``PixelBar`` - ``ShadyBar`` To use them, just call ``next`` to advance and ``finish`` to finish: @@ -108,12 +109,13 @@ For actions with an unknown number of steps you can use a spinner: # Do some work spinner.next() -There are 4 predefined spinners: +There are 5 predefined spinners: - ``Spinner`` - ``PieSpinner`` - ``MoonSpinner`` - ``LineSpinner`` +- ``PixelSpinner`` Other diff --git a/progress/bar.py b/progress/bar.py index 26008e9..5ee968f 100644 --- a/progress/bar.py +++ b/progress/bar.py @@ -80,5 +80,9 @@ class IncrementalBar(Bar): self.writeln(line) +class PixelBar(IncrementalBar): + phases = ('⡀', '⡄', '⡆', '⡇', '⣇', '⣧', '⣷', '⣿') + + class ShadyBar(IncrementalBar): phases = (' ', '░', '▒', '▓', '█') diff --git a/progress/spinner.py b/progress/spinner.py index 5226c34..464c7b2 100644 --- a/progress/spinner.py +++ b/progress/spinner.py @@ -39,3 +39,6 @@ class MoonSpinner(Spinner): class LineSpinner(Spinner): phases = ['⎺', '⎻', '⎼', '⎽', '⎼', '⎻'] + +class PixelSpinner(Spinner): + phases = ['⣾','⣷', '⣯', '⣟', '⡿', '⢿', '⣻', '⣽'] diff --git a/test_progress.py b/test_progress.py index b53922a..0f68b01 100755 --- a/test_progress.py +++ b/test_progress.py @@ -6,8 +6,10 @@ import random import time from progress.bar import (Bar, ChargingBar, FillingSquaresBar, - FillingCirclesBar, IncrementalBar, ShadyBar) -from progress.spinner import Spinner, PieSpinner, MoonSpinner, LineSpinner + FillingCirclesBar, IncrementalBar, PixelBar, + ShadyBar) +from progress.spinner import (Spinner, PieSpinner, MoonSpinner, LineSpinner, + PixelSpinner) from progress.counter import Counter, Countdown, Stack, Pie @@ -23,13 +25,13 @@ for bar_cls in (Bar, ChargingBar, FillingSquaresBar, FillingCirclesBar): for i in bar.iter(range(200)): sleep() -for bar_cls in (IncrementalBar, ShadyBar): +for bar_cls in (IncrementalBar, PixelBar, ShadyBar): suffix = '%(percent)d%% [%(elapsed_td)s / %(eta)d / %(eta_td)s]' bar = bar_cls(bar_cls.__name__, suffix=suffix) for i in bar.iter(range(200)): sleep() -for spin in (Spinner, PieSpinner, MoonSpinner, LineSpinner): +for spin in (Spinner, PieSpinner, MoonSpinner, LineSpinner, PixelSpinner): for i in spin(spin.__name__ + ' ').iter(range(100)): sleep() print()