Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

cli-progressbar

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cli-progressbar

lightweight library to print progress bar in cli

  • 1.1.0
  • PyPI
  • Socket score

Maintainers
1

Cli Progressbar

It’s a lightweight and easy to use progress-bar for command-line/terminal applications.

Install

pip install cli-progressbar

Features

  • Simple, Lightweight and Easy to use.
  • Single progress bar mode.
  • Multiple progress bar mode.
  • Custom bar characters.
  • iterate function to auto handle progress bar in for loops.

Usage

Single mode


.. code:: python

   from cli_progressbar import Progress

   # define progressbar instance
   progressbar = Progress(85)

   # start function pass 0 to update function and print progressbar
   # you can pass an string to show as status 
   progressbar.start('start status')

   users = find_users()  # return a list of users

   # you can fill goal like this
   progressbar.goal = len(users)

   for i, user in enumerate(users):
       # this function will update progressbar with new data and status
       progressbar.update(i, 'processing status')
       
       # Do your stuff

   # stop function pass goal itself to update function
   progressbar.stop('stop status')

But it’s boaring… so use ``iterate`` function:

.. code:: python

   from cli_progressbar import Progress

   progressbar = Progress()
   progressbar.start('start status')

   users = find_users()
   for user in progressbar.iterate(users, 'processing status'):
       # Do your stuff

   progressbar.stop('stop status')

**iterate** function also support dynamic status, by passing a function
and each element of list as it input.

.. code:: python

   for user in progressbar.iterate(users, lambda user: 'processing ' + user):
       # Do your stuff

Multiple mode

.. code:: python

from cli_progressbar import Progress, MultiProgressManager

define multi progress instance

manager = MultiProgressManager()

now define any progress bar you need

progress_1 = Progress() progress_2 = Progress()

now add them to multi progress manager

manager.append(progress_1) manager.append(progress_2)

Done! It's ready to use like a single progress!

progress_1.start('start progress 1') progress_2.start('start progress 2') for i in progress_1.iterate(range(8), 'state progress 1'): for j in progress_2.iterate(range(5), 'state progress 2'): # Do your stuff

progress_1.stop('stop progress 1') progress_2.stop('stop progress 2')

But maybe you want it more simple, so I have an easier solution!

.. code:: python

from cli_progressbar import MultiProgressManager

define multi progress instance; but this time, pass 2 arguments

manager = MultiProgressManager( progress_count=2, # default: 0 progress_prefix='progress_' # default: progress_ )

now you can access 2 progressbar, just request them from manager

manager.progress_1.start('start progress 1') manager.progress_2.start('start progress 2') for i in manager.progress_1.iterate(range(8), 'state progress 1'): for j in manager.progress_2.iterate(range(5), 'state progress 2'): # Do your stuff

manager.progress_1.stop('stop progress 1') manager.progress_2.stop('stop progress 2')

Parameters

  • goal to change goal in between of process, it’s useful for dynamic tasks
  • bar_len length of progress bar (default: 60)
  • fill bar fill symbol (default: █)
  • zfill bar zero fill symbol (default: -)
  • decimals positive number of decimals in percent complete (default: 1)

Any Questions? Report a Bug? Enhancements?

Please open a new issue on GitHub <https://github.com/mrunderline/cli-progressbar/issues>__

License

CLI-ProgressBar is OpenSource and licensed under the terms of The MIT License (X11) <http://opensource.org/licenses/MIT>. You’re welcome to contribute <https://github.com/mrunderline/cli-progressbar/blob/master/CONTRIBUTE.md>!

Version 1.1.0

  • Add MultiProgressManager class

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc