Optional progress bar for intensive incremental operations
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 150
- Forks
- 23
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 2
Description
For select operations that may take a non-negligible time to complete (from the perspective of a user), it could be useful to display small indicators of the progression of the operation whilst it is running in either interactive Python or on the command-line (i.e. for cfa, since aggregation is one of the main operations I have in mind that can necessarily be time-consuming for specifically inputs).
Notably, this could be:
- a progress bar for operations that can be broken into incremental steps of progression, e.g. each of the known and registered numbers of iterations through a core loop;
- perhaps a spinner or counter in the case that there is no simple or accurate way to indicate a proportion of progress having been made;
so that the user can know roughly how long they can expect or wait for the completion, or in the latter case at least see visually and be more confident that the operation hasn't stalled.
(As we have seen, Dask has a similar feature for diagnostics etc.:

)
There may be some users that don't want this feature so I suggest we have a global configuration option to disable it, but enable by default.
Implementation options
It wouldn't be difficult to code up a primitive progress bar and spinner, but for something available out-of-the-box and with more options and support, I think it would be better to use a dedicated progress bar library.
There are various such options for Python (there's a good summary here) but I think tqdm seems the best choice at the present time for features, low overhead, support available etc.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the aggregation path used by cfa and the corresponding interactive Python entry points; the issue names no files or tests. Define the scope for progress bars, spinners or counters and the global configuration behavior, then verify the default-enabled and disabled cases across those entry points.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli, data
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100