Вложенный tqdm, pretty print

Как сделать так, чтобы K уровней tqdm-ов выписывалось ровно в K строчек?

Пример:

from tqdm import tqdm
from time import sleep

for _ in tqdm(range(5), "All", ncols=80, position=0):
    for _ in tqdm(range(100), "Sub", ncols=80, position=1, leave=False):
        sleep(0.01)

Выводит:

введите сюда описание изображения

А ожидаю только 2 строчки All и Sub.

Перепробовал разные комбинации параметров. Иногда в песочнице в браузере работает, а на винде локально -- нет. Модуль colorama не помог тоже.


Ответы (2 шт):

Автор решения: CrazyElf

Попробуйте так:

from tqdm.auto import tqdm
from time import sleep

for _ in tqdm(range(5), "All", position=0):
    for _ in tqdm(range(100), "Sub", position=1, leave=False):
        sleep(0.01)

Т.е. во-первых используйте tqdm.auto, он лучше определяет как оптимально общаться с конкретно вашим типом устройства вывода. И во-вторых уберите параметр ncols, он может мешать нормальному позиционированию элементов прогресс-бара.

→ Ссылка
Автор решения: Стас

Короче PyCharm-овский терминал на винде не поддерживает такое. Чтобы получить правильный вывод, надо поставить "Emulate terminal in output console" флажок или ждать, когда добавят поддержку. С этим флажком достаточно только leave=False во втором поставить.

→ Ссылка