A Fast, Extensible Progress Bar for Python and CLI
Go to file
Casper da Costa-Luis 11551d316d argh revert to 1.0 2015-06-18 19:20:40 +01:00
tqdm miniter test, more specific exceptions, version 1.1 2015-06-18 18:43:29 +01:00
.coveragerc cleanup 2015-06-08 03:06:41 +05:00
.gitignore cleanup 2015-06-08 03:06:41 +05:00
.travis.yml cleanup 2015-06-08 03:06:41 +05:00
LICENSE Initial commit 2013-10-26 11:50:04 -07:00
Makefile make automates all tests by default, version changed to 2.0 in anticipation of pypi 2015-06-18 15:58:29 +01:00
README.md major and minor efficiency improvements, minor function signature and documentation update 2015-06-18 15:59:37 +01:00
logo.png Add logo to tqdm 2015-06-06 16:12:49 +02:00
setup.cfg cleanup 2015-06-08 03:06:41 +05:00
setup.py argh revert to 1.0 2015-06-18 19:20:40 +01:00
tox.ini use 80 columns again 2015-06-08 03:19:28 +05:00
tqdm.gif New tqdm module structure and add a Makefile 2015-06-06 15:35:28 +02:00

README.md

Logo

tqdm

Build Status Coverage Status

tqdm (read taqadum, تقدّم) means "progress" in arabic.

Instantly make your loops show a progress meter - just wrap any iterable with "tqdm(iterable)", and you're done! Here's what the output looks like:

76%|████████████████████ | 7641/10000 [00:34<00:10, 222.22 it/s]

You can also use trange(N) as a shortcut for tqdm(xrange(N))

Screenshot

Overhead is low -- about 55ns per iteration. By comparison, our esteemed competition, ProgressBar, has an 878ns/iter overhead. It's a matter of taste, but we also like to think our version is much more visually appealing.

Installation

pip install tqdm
# or
pip install -e git+https://github.com/tqdm/tqdm.git#egg=master

Documentation

def tqdm(iterable, desc=None, total=None, leave=False, file=sys.stderr,
         ncols=None, mininterval=0.1, miniters=None):
    """
    Decorate an iterable object, returning an iterator which acts exactly
    like the orignal iterable, but prints a dynamically updating
    progressbar.

    Parameters
    ----------
    iterable  : iterable
        Iterable to decorate with a progressbar.
    desc  : str, optional
        Prefix for the progressbar.
    total  : int, optional
        The number of expected iterations. If not given, len(iterable) is
        used if possible. As a last resort, only basic progress statistics
        are displayed.
    file  : `io.TextIOWrapper` or `io.StringIO`, optional
        Specifies where to output the progress messages.
        Uses file.write(str) and file.flush() methods.
    leave  : bool, optional
        if unset, removes all traces of the progressbar upon termination of
        iteration [default: False].
    ncols  : int, optional
        The width of the entire output message. If sepcified, dynamically
        resizes the progress meter [default: None]. The fallback meter
        width is 10.
    mininterval  : float, optional
        Minimum progress update interval, in seconds [default: 0.1].
    miniters  : int, optional
        Minimum progress update interval, in iterations [default: None].

    Returns
    -------
    out  : decorated iterator.
    """

def trange(*args, **kwargs):
    """
    A shortcut for tqdm(xrange(*args), **kwargs).
    On Python3+ range is used instead of xrange.
    """

Contributions

To run the testing suite please make sure tox (http://tox.testrun.org/) is installed, then type tox from the command line.

Alternatively if you don't want to use tox, a Makefile is provided with the following command:

$ make flake8
$ make test
$ make coverage

License

MIT LICENSE.

Authors

  • noamraph (original author)
  • JackMc
  • arkottke
  • obiwanus
  • fordhurley
  • kmike
  • hadim
  • casperdcl