Spaces:
Configuration error
Configuration error
| Easy progress reporting for Python | |
| ================================== | |
| |pypi| | |
| |demo| | |
| .. |pypi| image:: https://img.shields.io/pypi/v/progress.svg | |
| .. |demo| image:: https://raw.github.com/verigak/progress/master/demo.gif | |
| :alt: Demo | |
| Bars | |
| ---- | |
| There are 7 progress bars to choose from: | |
| - ``Bar`` | |
| - ``ChargingBar`` | |
| - ``FillingSquaresBar`` | |
| - ``FillingCirclesBar`` | |
| - ``IncrementalBar`` | |
| - ``PixelBar`` | |
| - ``ShadyBar`` | |
| To use them, just call ``next`` to advance and ``finish`` to finish: | |
| .. code-block:: python | |
| from progress.bar import Bar | |
| bar = Bar('Processing', max=20) | |
| for i in range(20): | |
| # Do some work | |
| bar.next() | |
| bar.finish() | |
| The result will be a bar like the following: :: | |
| Processing |############# | 42/100 | |
| To simplify the common case where the work is done in an iterator, you can | |
| use the ``iter`` method: | |
| .. code-block:: python | |
| for i in Bar('Processing').iter(it): | |
| # Do some work | |
| Progress bars are very customizable, you can change their width, their fill | |
| character, their suffix and more: | |
| .. code-block:: python | |
| bar = Bar('Loading', fill='@', suffix='%(percent)d%%') | |
| This will produce a bar like the following: :: | |
| Loading |@@@@@@@@@@@@@ | 42% | |
| You can use a number of template arguments in ``message`` and ``suffix``: | |
| ========== ================================ | |
| Name Value | |
| ========== ================================ | |
| index current value | |
| max maximum value | |
| remaining max - index | |
| progress index / max | |
| percent progress * 100 | |
| avg simple moving average time per item (in seconds) | |
| elapsed elapsed time in seconds | |
| elapsed_td elapsed as a timedelta (useful for printing as a string) | |
| eta avg * remaining | |
| eta_td eta as a timedelta (useful for printing as a string) | |
| ========== ================================ | |
| Instead of passing all configuration options on instatiation, you can create | |
| your custom subclass: | |
| .. code-block:: python | |
| class FancyBar(Bar): | |
| message = 'Loading' | |
| fill = '*' | |
| suffix = '%(percent).1f%% - %(eta)ds' | |
| You can also override any of the arguments or create your own: | |
| .. code-block:: python | |
| class SlowBar(Bar): | |
| suffix = '%(remaining_hours)d hours remaining' | |
| @property | |
| def remaining_hours(self): | |
| return self.eta // 3600 | |
| Spinners | |
| ======== | |
| For actions with an unknown number of steps you can use a spinner: | |
| .. code-block:: python | |
| from progress.spinner import Spinner | |
| spinner = Spinner('Loading ') | |
| while state != 'FINISHED': | |
| # Do some work | |
| spinner.next() | |
| There are 5 predefined spinners: | |
| - ``Spinner`` | |
| - ``PieSpinner`` | |
| - ``MoonSpinner`` | |
| - ``LineSpinner`` | |
| - ``PixelSpinner`` | |
| Other | |
| ===== | |
| There are a number of other classes available too, please check the source or | |
| subclass one of them to create your own. | |
| License | |
| ======= | |
| progress is licensed under ISC | |