Refactor client SDK progress bar for vfolder upload and download func APIs
The Python client SDK's vfolder upload and download commands display a progress bar when executed in a terminal using tqdm. The issue is that the functional API layer directly uses tqdm, so it may show unwanted stdout outputs when used as a library, though this is controllable using show_progress argument. This is a leak of abstraction.
By the design principle, all terminal manipulation and console outputs should be done inside ai.backend.client.cli (and ai.backend.client.output) only, while ai.backend.client.func should only provide a programming interface without console outputs (but it may include use of logging because logging policy could be controlled by the host program).
- Let's move invocation of
tqdmtoai.backend.client.cliand/orai.backend.client.output. - Let's make a simple progress reporter abstraction so that the functional implementation still could provide the progress information and the CLI output handler could receive it.
Do aiotusclient should be updated? it also uses tqdm directly Link
Do aiotusclient should be updated? it also uses tqdm directly Link
Yes, I think then aiotusclient should be also updated. Let's add a progress-reporter abstraction there (since it's a separate library, it should provide its own class) and connect it with our progress reporter.
If done, ask @leksikov for an initial review.