Metadata-Version: 1.1
Name: cli_progressbar
Version: 1.1.0
Summary: lightweight library to print progress bar in cli
Home-page: https://github.com/mrunderline/cli-progressbar
Author: Ali Madihi (mrunderline)
Author-email: alimadihib@gmail.com
License: MIT
Description: 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: cli,progressbar,console
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Topic :: Utilities
