summaryrefslogtreecommitdiffstats
path: root/examples/progress-bar/unknown-length.py
blob: e39ac399dc8de365ea76754fc366ef9b81b07eda (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/env python
"""
A very simple progress bar which keep track of the progress as we consume an
iterator.
"""
import time

from prompt_toolkit.shortcuts import ProgressBar


def data():
    """
    A generator that produces items. len() doesn't work here, so the progress
    bar can't estimate the time it will take.
    """
    yield from range(1000)


def main():
    with ProgressBar() as pb:
        for i in pb(data()):
            time.sleep(0.1)


if __name__ == "__main__":
    main()