• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

progress/H28-Jul-2021-458286

progress.egg-info/H03-May-2022-172120

LICENSEH A D20-Jul-2020777 1413

MANIFEST.inH A D01-Feb-201945 32

PKG-INFOH A D28-Jul-20215.1 KiB172120

README.rstH A D01-Feb-20193.2 KiB153102

setup.cfgH A D28-Jul-202138 53

setup.pyH A D20-Jul-2020844 3024

test_progress.pyH A D28-Jul-20211.6 KiB5339

README.rst

1Easy progress reporting for Python
2==================================
3
4|pypi|
5
6|demo|
7
8.. |pypi| image:: https://img.shields.io/pypi/v/progress.svg
9   :target: https://pypi.org/project/progress/
10.. |demo| image:: https://raw.github.com/verigak/progress/master/demo.gif
11   :alt: Demo
12
13Bars
14----
15
16There are 7 progress bars to choose from:
17
18- ``Bar``
19- ``ChargingBar``
20- ``FillingSquaresBar``
21- ``FillingCirclesBar``
22- ``IncrementalBar``
23- ``PixelBar``
24- ``ShadyBar``
25
26To use them, just call ``next`` to advance and ``finish`` to finish:
27
28.. code-block:: python
29
30    from progress.bar import Bar
31
32    bar = Bar('Processing', max=20)
33    for i in range(20):
34        # Do some work
35        bar.next()
36    bar.finish()
37
38or use any bar of this class as a context manager:
39
40.. code-block:: python
41
42    from progress.bar import Bar
43
44    with Bar('Processing', max=20) as bar:
45        for i in range(20):
46            # Do some work
47            bar.next()
48
49The result will be a bar like the following: ::
50
51    Processing |#############                   | 42/100
52
53To simplify the common case where the work is done in an iterator, you can
54use the ``iter`` method:
55
56.. code-block:: python
57
58    for i in Bar('Processing').iter(it):
59        # Do some work
60
61Progress bars are very customizable, you can change their width, their fill
62character, their suffix and more:
63
64.. code-block:: python
65
66    bar = Bar('Loading', fill='@', suffix='%(percent)d%%')
67
68This will produce a bar like the following: ::
69
70    Loading |@@@@@@@@@@@@@                   | 42%
71
72You can use a number of template arguments in ``message`` and ``suffix``:
73
74==========  ================================
75Name        Value
76==========  ================================
77index       current value
78max         maximum value
79remaining   max - index
80progress    index / max
81percent     progress * 100
82avg         simple moving average time per item (in seconds)
83elapsed     elapsed time in seconds
84elapsed_td  elapsed as a timedelta (useful for printing as a string)
85eta         avg * remaining
86eta_td      eta as a timedelta (useful for printing as a string)
87==========  ================================
88
89Instead of passing all configuration options on instatiation, you can create
90your custom subclass:
91
92.. code-block:: python
93
94    class FancyBar(Bar):
95        message = 'Loading'
96        fill = '*'
97        suffix = '%(percent).1f%% - %(eta)ds'
98
99You can also override any of the arguments or create your own:
100
101.. code-block:: python
102
103    class SlowBar(Bar):
104        suffix = '%(remaining_hours)d hours remaining'
105        @property
106        def remaining_hours(self):
107            return self.eta // 3600
108
109
110Spinners
111========
112
113For actions with an unknown number of steps you can use a spinner:
114
115.. code-block:: python
116
117    from progress.spinner import Spinner
118
119    spinner = Spinner('Loading ')
120    while state != 'FINISHED':
121        # Do some work
122        spinner.next()
123
124There are 5 predefined spinners:
125
126- ``Spinner``
127- ``PieSpinner``
128- ``MoonSpinner``
129- ``LineSpinner``
130- ``PixelSpinner``
131
132Installation
133============
134
135Download from PyPi
136
137.. code-block:: shell
138
139    pip install progress
140
141
142Other
143=====
144
145There are a number of other classes available too, please check the source or
146subclass one of them to create your own.
147
148
149License
150=======
151
152progress is licensed under ISC
153