A multi-progressbar implementation to complement multiprocessing.Process
Project description
The progrock.MultiProgress class is used in conjunction with the methods exposed at the module level such as progrock.increment to create a full-screen experience allowing the user to track the progress of individual processes as they perform their work.
Installation
progrock may be installed via the Python package index with the tool of your choice. I prefer pip:
pip install progrock
Documentation
Requirements
There are no requirements outside of the Python standard library.
Screenshot
The following image shows the example code listing in action:
Example
The following example will create a process for each CPU core on the system that it is run on, displaying the MultiProgress screen. The child processes will iterate 100 times, updating their progress bar and then sleeping up to 1 second.
import progrock import random def example_runner(ipc_queue): # Update the processes status in its progress box progrock.set_status(ipc_queue, 'Running') # Increment the progress bar, sleeping up to one second per iteration for iteration in range(1, 101): progrock.increment(ipc_queue) progrock.increment_app(ipc_queue) time.sleep(random.random()) processes = [] # Create the MultiProgress instance steps = multiprocessing.cpu_count() * 100 with MultiProgress('Example', steps=steps) as progress: # Spawn a process per CPU and append it to the list of processes for proc_num in range(0, multiprocessing.cpu_count()): processes.append(progress.new_process(example_runner)) # Wait for the processes to run while any([p.is_alive() for p in processes]): time.sleep(1)
Version History
Available at https://progrock.readthedocs.org
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for progrock-0.3.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 475093188b0014b0691618cc50188c3a5e873572ba56a210f6e29785c529ea4a |
|
MD5 | dcee9bc36b357f78c2984c9bc2974508 |
|
BLAKE2-256 | 4a907b8804230ca145637e3ef895cce9e655ad1297db2638635509dcb35f8b4a |