From 0679775478d570de1708d4c182a01199737f9b48 Mon Sep 17 00:00:00 2001 From: Hadrien Mary Date: Thu, 18 Jun 2015 19:37:44 +0200 Subject: [PATCH] Add option to disable progress bar. Should fix GH-1 --- README.md | 4 +++- tqdm/_tqdm.py | 21 ++++++++++++--------- tqdm/tests/tests_tqdm.py | 10 +++++++++- 3 files changed, 24 insertions(+), 11 deletions(-) mode change 100755 => 100644 tqdm/_tqdm.py diff --git a/README.md b/README.md index 3ba1e84a..6fa91832 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ pip install -e git+https://github.com/tqdm/tqdm.git#egg=master ```python def tqdm(iterable, desc=None, total=None, leave=False, file=sys.stderr, - ncols=None, mininterval=0.1, miniters=None): + ncols=None, mininterval=0.1, miniters=None, disable=False): """ Decorate an iterable object, returning an iterator which acts exactly like the orignal iterable, but prints a dynamically updating @@ -63,6 +63,8 @@ def tqdm(iterable, desc=None, total=None, leave=False, file=sys.stderr, Minimum progress update interval, in seconds [default: 0.1]. miniters : int, optional Minimum progress update interval, in iterations [default: None]. + disable : bool + Disable the progress bar if True [default: False]. Returns ------- diff --git a/tqdm/_tqdm.py b/tqdm/_tqdm.py old mode 100755 new mode 100644 index 6396a3e3..15d6fb33 --- a/tqdm/_tqdm.py +++ b/tqdm/_tqdm.py @@ -52,9 +52,9 @@ def format_meter(n, total, elapsed, ncols=None, prefix=''): N_BARS = max(1, ncols - len(l_bar) - len(r_bar)) if ncols else 10 bar_length, frac_bar_length = divmod(int(frac * N_BARS * 8), 8) - try: + try: # pragma: no cover unich = unichr - except NameError: + except NameError: # pragma: no cover unich = chr bar = unich(0x2588)*bar_length @@ -83,7 +83,7 @@ class StatusPrinter(object): def tqdm(iterable, desc=None, total=None, leave=False, file=sys.stderr, - ncols=None, mininterval=0.1, miniters=None): + ncols=None, mininterval=0.1, miniters=None, disable=False): """ Decorate an iterable object, returning an iterator which acts exactly like the orignal iterable, but prints a dynamically updating @@ -113,19 +113,24 @@ def tqdm(iterable, desc=None, total=None, leave=False, file=sys.stderr, Minimum progress update interval, in seconds [default: 0.1]. miniters : int, optional Minimum progress update interval, in iterations [default: None]. + disable : bool + Disable the progress bar if True [default: False]. Returns ------- out : decorated iterator. """ + + if disable: + for obj in iterable: + yield obj + return + if total is None: try: total = len(iterable) except (TypeError, AttributeError): total = None - # not good for slow iterators - # elif not miniters: - # miniters = int(total/100) if miniters is None: miniters = 0 @@ -151,10 +156,8 @@ def tqdm(iterable, desc=None, total=None, leave=False, file=sys.stderr, if cur_t - last_print_t >= mininterval: sp.print_status(format_meter( n, total, cur_t-start_t, ncols, prefix)) - if dynamic_miniters: miniters = max(miniters, n - last_print_n + 1) - last_print_n = n last_print_t = cur_t @@ -176,7 +179,7 @@ def trange(*args, **kwargs): """ try: f = xrange - except NameError: + except NameError: # pragma: no cover f = range return tqdm(f(*args), **kwargs) diff --git a/tqdm/tests/tests_tqdm.py b/tqdm/tests/tests_tqdm.py index 6793c374..278238dd 100644 --- a/tqdm/tests/tests_tqdm.py +++ b/tqdm/tests/tests_tqdm.py @@ -50,7 +50,7 @@ def test_iterate_over_csv_rows(): test_csv_file = StringIO() writer = csv.writer(test_csv_file) for i in range(3): - writer.writerow(['test']*3) + writer.writerow(['test'] * 3) test_csv_file.seek(0) # Test that nothing fails if we iterate over rows @@ -118,3 +118,11 @@ def test_min_iters(): our_file.write('blank\n') our_file.seek(0) assert '\nblank\nblank\n' in our_file.read() + + +def test_disable(): + our_file = StringIO() + for i in tqdm(range(3), file=our_file, disable=True): + pass + our_file.seek(0) + assert our_file.read() == ""