#GlasgowInterfaceExplorer now has (or about to have) a first-class progress bar implementation with a nice API that takes into account terminal writes elsewhere in the Python application as well as nested or concurrent progress trackers resulting from applet composition!
check out the docs I wrote for this functionality (feedback welcome!) https://glasgow-embedded.org/latest/library/support/progress.html
support.progress - Glasgow Interface Explorer

@whitequark ooh, fancy! That's so hard to get right without exclusive control of writes to the terminal.
@tedmielczarek I'm using tqdm and overriding stdout/stderr as used by Python early to be piped through tqdm itself; this wouldn't do anything for subprocesses reusing the pty but it doesn't have to be perfect