From 92665ef189c9d25770c3f64c4f59ded0ff94dcea Mon Sep 17 00:00:00 2001 From: Alex Willmer Date: Thu, 16 Mar 2017 20:31:35 +0000 Subject: [PATCH 1/2] Add PixelBar, based on braille characters --- README.rst | 3 ++- progress/bar.py | 4 ++++ test_progress.py | 5 +++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/README.rst b/README.rst index cce3023..94d65d7 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: 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/test_progress.py b/test_progress.py index ae7bb19..7d59093 100755 --- a/test_progress.py +++ b/test_progress.py @@ -6,7 +6,8 @@ import random import time from progress.bar import (Bar, ChargingBar, FillingSquaresBar, - FillingCirclesBar, IncrementalBar, ShadyBar) + FillingCirclesBar, IncrementalBar, PixelBar, + ShadyBar) from progress.spinner import Spinner, PieSpinner, MoonSpinner, LineSpinner from progress.counter import Counter, Countdown, Stack, Pie @@ -23,7 +24,7 @@ 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_td)s]' bar = bar_cls(bar_cls.__name__, suffix=suffix) for i in bar.iter(range(200)): From 7ecf7594a46ef3dd447b2fe01b3f35c2e7d632e7 Mon Sep 17 00:00:00 2001 From: Alex Willmer Date: Thu, 16 Mar 2017 20:33:50 +0000 Subject: [PATCH 2/2] Add PixelSpinner, based on braille characters --- README.rst | 3 ++- progress/spinner.py | 3 +++ test_progress.py | 5 +++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/README.rst b/README.rst index 94d65d7..3f3be76 100644 --- a/README.rst +++ b/README.rst @@ -109,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/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 7d59093..958d9bf 100755 --- a/test_progress.py +++ b/test_progress.py @@ -8,7 +8,8 @@ import time from progress.bar import (Bar, ChargingBar, FillingSquaresBar, FillingCirclesBar, IncrementalBar, PixelBar, ShadyBar) -from progress.spinner import Spinner, PieSpinner, MoonSpinner, LineSpinner +from progress.spinner import (Spinner, PieSpinner, MoonSpinner, LineSpinner, + PixelSpinner) from progress.counter import Counter, Countdown, Stack, Pie @@ -30,7 +31,7 @@ for bar_cls in (IncrementalBar, PixelBar, ShadyBar): 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()