Merge branch 'master' into unicode

Conflicts:
	README.md
	tqdm/_tqdm.py
This commit is contained in:
Casper da Costa-Luis 2015-06-18 23:05:55 +01:00 committed by Casper da Costa-Luis
commit 0c19feaf0c
4 changed files with 26 additions and 12 deletions

View File

@ -1,3 +1,4 @@
sudo: false
language: python
python: 2.7
env:

View File

@ -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, ascii=None):
ncols=None, mininterval=0.1, miniters=None, ascii=None, disable=False):
"""
Decorate an iterable object, returning an iterator which acts exactly
like the orignal iterable, but prints a dynamically updating
@ -66,6 +66,8 @@ def tqdm(iterable, desc=None, total=None, leave=False, file=sys.stderr,
ascii : bool, optional
If not set, use unicode (▏▎▋█ █) to fill the meter
[default: False]. The fallback is to use ASCII characters (1-9 #).
disable : bool
Disable the progress bar if True [default: False].
Returns
-------

23
tqdm/_tqdm.py Executable file → Normal file
View File

@ -90,9 +90,9 @@ def format_meter(n, total, elapsed, ncols=None, prefix='', ascii=False):
else:
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
@ -122,7 +122,7 @@ class StatusPrinter(object):
def tqdm(iterable, desc=None, total=None, leave=False, file=sys.stderr,
ncols=None, mininterval=0.1, miniters=None, ascii=None):
ncols=None, mininterval=0.1, miniters=None, ascii=None, disable=False):
"""
Decorate an iterable object, returning an iterator which acts exactly
like the orignal iterable, but prints a dynamically updating
@ -155,19 +155,24 @@ def tqdm(iterable, desc=None, total=None, leave=False, file=sys.stderr,
ascii : bool, optional
If not set, use unicode (smooth blocks) to fill the meter
[default: False]. The fallback is to use ASCII characters (1-9 #).
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
@ -196,10 +201,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, ascii))
if dynamic_miniters:
miniters = max(miniters, n - last_print_n + 1)
last_print_n = n
last_print_t = cur_t
@ -219,9 +222,9 @@ def trange(*args, **kwargs):
A shortcut for tqdm(xrange(*args), **kwargs).
On Python3+ range is used instead of xrange.
"""
try:
try: # pragma: no cover
f = xrange
except NameError:
except NameError: # pragma: no cover
f = range
return tqdm(f(*args), **kwargs)

View File

@ -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() == ""