Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
awesome-progress-bar
Advanced tools
It's a progress bar for the terminal. But why it is awesome?
Why does progress bar need to be run in the parallel mode?
The bar should be updated when it is time to. Imagine we are doing something in the for
loop and each iteration we update its state. But each iteration can take different amount
of time. And each iteration can be longer than 1 minute. And without threads the animation
would have non-constant amount of FPS.
total | Amount of iterations |
prefix | A short message before the progress bar. Default is 'Progress' |
suffix | A short message after the progress bar. Default is '' |
fill | A character that will be used as progress bar filler. Default is '=' |
bar_length | The length of the whole string (including prefix, spinner, progress bar, percents and suffix). Default is equal to the minimum between terminal's width and 100 |
update_period | The duration of pause between iterations in seconds. Default is 0.1 . Works
only if use_thread is True |
use_time | If True there will be an information about elapsed time in the center of
the progress bar written in time_format format. Default is True |
time_format | String, that should include 'hh' , 'mm' or/and 'ss' .
'hh' will be replaced with amount of elapsed hours, 'mm' - minutes,
'ss' - seconds. Default is 'mm:ss' |
use_thread | If True ProgressBar will create extra thread. Default is True |
spinner_type | One of ['sb', 'db', 's'] . With 'sb' progress bar will print
spinner consisting of 1 Braille pattern. 'db' - 2 Braille patterns.
's' - a slash. Default is 'sb' |
use_spinner | If True the spinner will be shown. Default is True |
last_char | Something, that will be printed after the progress is done. Default is '\n' |
use_eta | If True the information about approximate remaining time will be printed.
Default is False |
eta_format | The format of ETA. Similar to the time_format. Default is equal to the time_format |
iter(append='') |
Used for tracking the progress.
|
get_time_passed (return_str=True) |
Returns the time spent. If the progress is done returns bar's operating time. If not - returns the time elapsed from the progress start. Parameters:
|
stop() |
Stops the bar in the thread mode.
If the bar doesn't call the |
wait() |
Blocks the program until bar is dead.
The bar updates every update_period seconds in the thread mode. Hence, there can
be a small delay between last calling |
* stop()
and wait()
are needed only in the thread mode.
from awesome_progress_bar import ProgressBar
import time
total = 133
bar = ProgressBar(total, bar_length=50)
try:
for x in range(total):
time.sleep(0.1)
bar.iter(' Appended')
except:
bar.stop()
bar.wait()
print('Bar is done')
# Progress: |=========== 00:15 ============| 100.00% Appended
# Bar is done
from awesome_progress_bar import ProgressBar
bar = ProgressBar(100, prefix='Prefix', suffix='Suffix', use_eta=True, bar_length=70)
# Prefix: в ‡ |==> 00:00/00:14 | 5.26% Suffix
bar = ProgressBar(100, fill='#', use_time=False, bar_length=50, use_spinner=False)
# Progress: |##########> | 33.83%
bar = ProgressBar(100, time_format='hhh mmmin sss', bar_length=70, spinner_type='s')
# Progress: - |=======> 00h 00min 02s | 16.54%
bar = ProgressBar(100, bar_length=70, spinner_type='db')
# Progress: вў€вЎ± |===========> 00:04 | 24.81%
See more here.
Feel free to suggest ideas to improve this package in the GitHub's Issues section.
FAQs
Progress bar for terminal
We found that awesome-progress-bar demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.