Registry / observability / fastprogress

fastprogress

JSON →
library1.1.6pypypi✓ verified 24d ago

Fastprogress is a Python library providing fast and simple progress bars for Jupyter Notebooks and console applications. It features nested progress bars and plotting options, often used within the fastai ecosystem. The library is actively maintained with frequent minor releases, most recently v1.1.5, and has a cadence of several updates per year.

pip install fastprogress
INSTALL
IMPORT
SIG · FASTPROGRESS
F
fastprogress
observabilitypythonv1.1.6
Install
3.6s avg
Import
523ms
Disk
43MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v1.1.6 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.95 runs
installs and imports cleanly · install 0.0s · import 0.552s · 46.2MB
glibc
py 3.103.95 runs
installs and imports cleanly · install 3.6s · import 0.494s · 51MB
43MB installed
● package 43MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

master_bar
from fastprogress.fastprogress import master_bar
progress_bar
from fastprogress.fastprogress import progress_bar
ConsoleMasterBar
from fastprogress.fastprogress import ConsoleMasterBar
Use for explicit console-only progress bars, bypassing notebook detection.
ConsoleProgressBar
from fastprogress.fastprogress import ConsoleProgressBar
Use for explicit console-only progress bars, bypassing notebook detection.

This example demonstrates a nested progress bar. `master_bar` handles the outer loop, and `progress_bar` handles the inner loop, linked via the `parent` argument. Comments can be updated, and `mb.write()` adds persistent messages.

from fastprogress.fastprogress import master_bar, progress_bar import time mb = master_bar(range(10)) mb.write('Starting main loop...') for i in mb: mb.main_bar.comment = f'Processing outer item {i+1}/10' for j in progress_bar(range(100), parent=mb): time.sleep(0.01) # Simulate some work mb.child.comment = f'Inner loop for item {i+1} complete' mb.write(f'Finished outer loop iteration {i+1}.') mb.write('All loops complete.')
Debug
Known issues
breakingVersion 1.1.0 introduced a breaking change by converting to `fasthtml` for modernization. This change may affect internal behavior and can introduce a dependency on `python-fasthtml` which has been reported to cause installation issues on some platforms due to SQLite C bindings.
fix
Ensure `python-fasthtml` (and its underlying dependencies like SQLite development headers if building from source) can be installed in your environment. Consider pinning to a version <1.1.0 if `fasthtml` integration causes issues.
affects: >=1.1.0
gotchaIf `total` is not explicitly passed to `progress_bar` or `master_bar` for an iterator of unknown length, the progress bar may not display correctly, or it might warn if the generator is empty. `fastprogress` does not auto-infer `total` for all iterables.
fix
Always provide the `total` argument if the length of your iterable is known (e.g., `range(N)` or `len(my_list)`). For truly unknown lengths, you might explicitly pass `total='noinfer'` (supported since 1.0.3) or handle the display logic manually.
affects: All versions
gotchaIn non-interactive environments (e.g., CI/CD pipelines, scripts with redirected `stdout`), the progress bars will not render visually. Only output generated by `mb.write()` will be captured.
fix
Design your scripts to rely on `mb.write()` for critical logging messages that need to be captured in non-interactive contexts. For debugging, ensure you run in a true TTY or Jupyter environment.
affects: All versions
gotchaUsers have reported `ModuleNotFoundError: No module named 'IPython'` or issues with progress bars not displaying correctly in certain Jupyter environments (e.g., VS Code Jupyter notebooks, specific `ipywidgets` configurations). This can lead to progress bars falling back to console behavior.
fix
Ensure `IPython` and `ipywidgets` are correctly installed and configured in your environment (`pip install ipython ipywidgets`). For problematic environments, try explicitly using `ConsoleMasterBar` and `ConsoleProgressBar` or investigate `ipywidgets` installation troubleshooting steps.
affects: All versions
Errors
Common errors & fixes
ModuleNotFoundError: No module named 'fastprogress'
The 'fastprogress' library has not been installed in your Python environment.
fix
pip install fastprogress
ImportError: cannot import name 'master_bar' from 'fastprogress'
The `master_bar` and `progress_bar` functions are located in the `fastprogress.fastprogress` submodule, not directly under `fastprogress`.
fix
from fastprogress.fastprogress import master_bar, progress_bar
UserWarning: Couldn't import ipywidgets properly, progress bar will use console behavior
This warning occurs when `ipywidgets` is not correctly installed or configured in your Jupyter environment, preventing the interactive notebook progress bars from displaying.
fix
pip install ipython ipywidgets && jupyter nbextension enable --py widgetsnbextension
AttributeError: 'NBMasterBar' object has no attribute 'first_bar'
The attribute name `first_bar` on `NBMasterBar` was deprecated or renamed in a `fastprogress` update.
fix
Use `mb.main_bar` instead of `mb.first_bar` to access the main progress bar.
Upgrade
Version history
1.1.6latest on PyPI · released May 10, 2026
Audit
Dependencies
python-fasthtmlrequiredRequired for versions 1.1.0+ due to a modernization effort; can introduce platform-specific install issues (e.g., SQLite C bindings).
fastcore.utilsrequiredInternal dependency for utility functions.
IPythonoptionalRequired for full Jupyter Notebook integration and features like `IPython.display`. Progress bars may fall back to console behavior without it.
Agent activity
23 hits · last 30 days
node
20
OpenAI (training)
2
Resources
fastprogress — pip install fastprogress · libregistry