Делаю индикатор прогресса в течение некоторого затянувшегося процесса консоли с намерением использовать его как это:Является ли это допустимым вариантом использования для менеджера контекста?
pi = ProgressIndicator()
for x in somelongstuff:
do stuff
pi.update()
pi.print_totals()
В основном, это должен вывести какой-то прогресс бар с точками и тире, и что-то вроде «234234 байта обработано» в конце.
Я думал, что было бы неплохо, чтобы использовать его в качестве контекста менеджера:
with ProgressIndicator() as pi:
for x in somelongstuff:
do stuff
pi.update()
Однако есть несколько вещей, которые волнуют меня об этом решении:
- дополнительные отступы делают функцию индикатора более важны, чем на самом деле
- Я не хочу, чтобы
ProgressIndicator
обрабатывал любые исключения, которые могут возникнуть в цикле
Является ли это допустимым вариантом использования для менеджера контекста? Какие другие решения вы можете предложить?