[PR #1552] [MERGED] Add alive-progress #1350

Closed
opened 2025-11-06 13:14:29 -06:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/vinta/awesome-python/pull/1552
Author: @rsalmei
Created: 6/6/2020
Status: Merged
Merged: 6/6/2020
Merged by: @vinta

Base: masterHead: rsa-add-alive-progress


📝 Commits (2)

📊 Changes

1 file changed (+1 additions, -0 deletions)

View changed files

📝 README.md (+1 -0)

📄 Description

What is this Python project?

It's a new kind of progress bar, with real-time throughput, eta and very cool animations!

It has now more than 600️, take a look: https://github.com/rsalmei/alive-progress

What's the difference between this Python project and similar ones?

This project has the following features:

  • a cool live spinner, which makes it clear the process did not hang and your terminal/connection is healthy;
  • a visual feedback of the current speed/throughput, as the spinner runs faster or slower according to the actual processing speed;
  • an efficient multi-threaded bar, which updates itself at a fraction of the actual speed (1,000,000 iterations per second equates to roughly 60fps refresh rate) to keep CPU usage low and avoid terminal spamming; (📌 new: you can now calibrate this!)
  • an expected time of arrival (ETA), that shows the remaining processing time in a friendly way, not anything like eta: 1584s, it will nicely show eta: 0:26:24 as you would expect (but anything less than a minute is indeed eta: 42s);
  • a print() hook, which allows print statements in the midst of an alive-bar context without any hassle, automatically cleaning the screen, and even enriching with the current position when it occurred;
  • after your processing has finished, a nice receipt is printed with the statistics of that run, including the elapsed time and observed throughput;
  • it tracks the actual count to detect under and overflows, so it will look different if you send in less or more than expected;
  • it automatically detects if there's an allocated tty, and if there isn't, only the final receipt is printed, so you can safely include the alive-bar in any code, and rest assure your log file won't get 60fps progress lines;
  • you can pause the alive-bar! I think that's an unprecedented feature for a progress bar! It's incredible to be able to manually operate on some items while inside a running progress bar context, and get the bar back like it had never stopped whenever you want;
  • it is customizable, with a growing smorgasbord of different bar and spinner styles, as well as several factories to easily generate yours!

alive-progress

--

Anyone who agrees with this pull request could vote for it by adding a 👍 to it, and usually, the maintainer will merge it when votes reach 20.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/vinta/awesome-python/pull/1552 **Author:** [@rsalmei](https://github.com/rsalmei) **Created:** 6/6/2020 **Status:** ✅ Merged **Merged:** 6/6/2020 **Merged by:** [@vinta](https://github.com/vinta) **Base:** `master` ← **Head:** `rsa-add-alive-progress` --- ### 📝 Commits (2) - [`0976031`](https://github.com/vinta/awesome-python/commit/097603169fe5a7149b44628be278a97b1838da10) add cool alive-progress bar - [`b1e4d96`](https://github.com/vinta/awesome-python/commit/b1e4d962d7f43400a79307c3917fbfa9017c304f) new project description ### 📊 Changes **1 file changed** (+1 additions, -0 deletions) <details> <summary>View changed files</summary> 📝 `README.md` (+1 -0) </details> ### 📄 Description ## What is this Python project? It's a new kind of progress bar, with real-time throughput, eta and very cool animations! It has now more than 600⭐️, take a look: https://github.com/rsalmei/alive-progress ## What's the difference between this Python project and similar ones? This project has the following features: - a cool live spinner, which makes it clear the process did not hang and your terminal/connection is healthy; - a visual feedback of the current speed/throughput, as the spinner runs faster or slower according to the actual processing speed; - an efficient multi-threaded bar, which updates itself at a fraction of the actual speed (1,000,000 iterations per second equates to roughly 60fps refresh rate) to keep CPU usage low and avoid terminal spamming; (📌 new: you can now calibrate this!) - an expected time of arrival (ETA), that shows the remaining processing time in a friendly way, not anything like eta: 1584s, it will nicely show eta: 0:26:24 as you would expect (but anything less than a minute is indeed eta: 42s); - a print() hook, which allows print statements in the midst of an alive-bar context without any hassle, automatically cleaning the screen, and even enriching with the current position when it occurred; - after your processing has finished, a nice receipt is printed with the statistics of that run, including the elapsed time and observed throughput; - it tracks the actual count to detect under and overflows, so it will look different if you send in less or more than expected; - it automatically detects if there's an allocated tty, and if there isn't, only the final receipt is printed, so you can safely include the alive-bar in any code, and rest assure your log file won't get 60fps progress lines; - you can pause the alive-bar! I think that's an unprecedented feature for a progress bar! It's incredible to be able to manually operate on some items while inside a running progress bar context, and get the bar back like it had never stopped whenever you want; - it is customizable, with a growing smorgasbord of different bar and spinner styles, as well as several factories to easily generate yours! ![alive-progress](https://raw.githubusercontent.com/rsalmei/alive-progress/master/img/alive-demo.gif) -- Anyone who agrees with this pull request could vote for it by adding a :+1: to it, and usually, the maintainer will merge it when votes reach **20**. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2025-11-06 13:14:29 -06:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/awesome-python#1350