Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/michael-genson/progresslogger
Simple, lightweight logger for your Python loops.
https://github.com/michael-genson/progresslogger
Last synced: about 17 hours ago
JSON representation
Simple, lightweight logger for your Python loops.
- Host: GitHub
- URL: https://github.com/michael-genson/progresslogger
- Owner: michael-genson
- License: gpl-3.0
- Created: 2022-03-20T21:10:59.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-08-17T21:44:37.000Z (over 2 years ago)
- Last Synced: 2024-11-03T08:52:31.477Z (16 days ago)
- Language: Python
- Homepage:
- Size: 27.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Progress Logger
## `pip install progresslogger`Progress Logger is a simple, lightweight logger for your Python loops. Quickly see the current status of long loops, its estimated time remaining, and more useful stats!
---
### Simple Usage
Progress Logger works great right out of the box, with no customization required. When imported, it will overwrite the built-in `enumerate()` function. That's it!
```
from progresslogger import *my_list = ['a', 'b', 'c', 'd', 'e']
for i, letter in enumerate(my_list):
execute_code(letter)
```
Output:
```
>>> Starting progress logger for 5 items.
>>> Iteration 1 of 5 (20.0%) complete. Approximately 4 seconds remaining.
>>> Iteration 2 of 5 (40.0%) complete. Approximately 3 seconds remaining.
>>> ...
>>> Loop complete! Average iteration time: 1.0 seconds
```---
### Advanced Usage
You may customize your logger and pass it directly to the `enumerate()` function:
```
my_logger = ProgressLogger(show_next_value=True)
for i, letter in enumerate(my_list, my_logger):
execute_code(letter)
```
Output:
```
>>> Starting progress logger for 5 items. Next value: "a".
>>> Iteration 1 of 5 (20.0%) complete. Approximately 4 seconds remaining. Next value: "b".
>>> Iteration 2 of 5 (40.0%) complete. Approximately 3 seconds remaining. Next value: "c".
>>> ...
```
If you'd like to retain the built-in `enumerate()` function, or you'd like to have both, you can use `from progresslogger import ProgressLogger` or `import progresslogger` and use `progresslogger.enumerate(...)`.
You may wish to insert the log in the middle of a loop, or otherwise implement your logger yourself. Simply initialize `ProgressLogger` before the loop, and call `my_logger.log()` once each loop:
```
my_logger = ProgressLogger(my_list) # be sure to pass your collection when initializing your logger
for letter in my_list:
my_logger.log()
execute_code(letter)
```