summaryrefslogtreecommitdiffstats
path: root/examples/progress-bar/unknown-length.py
blob: 5d2d06fdc07df40dc8c51cdc8cced66e272e285e (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
27
#!/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()