SuperZombi
@SuperZombi

Как отображать proglog и в консоль и в интерфейс?

Есть программа, которая использует библиотеку moviepy. Хочу чтобы логгер отображал прогресс и в консоли (как сейчас), и дополнительно в интерфейсе.
В интернете нашел такой код для отображения в интерфейсе:
from proglog import ProgressBarLogger
class MyBarLogger(ProgressBarLogger):
	def callback(self, **changes):
		try:
			index = self.state['bars']['t']['index']
			total = self.state['bars']['t']['total']
			percent = index / total * 100
			# send percent to UI
		except KeyError as e:
			pass
			
my_logger = MyBarLogger()
#...
clip.write_videofile(filename, logger=my_logger)

Но он перестал отображать прогресс в консоли. Подскажите как его вернуть?
  • Вопрос задан
  • 103 просмотра
Решения вопроса 1
SuperZombi
@SuperZombi Автор вопроса
Спустя час изучения библиотеки все таки нашел способ как это сделать. оказывается нужно было просто наследоваться не от класса ProgressBarLogger, а от класса TqdmProgressBarLogger. И теперь все заработало.
Финальный код:

from proglog import TqdmProgressBarLogger
class MyBarLogger(TqdmProgressBarLogger):
  def callback(self, **changes):
    try:
      index = self.state['bars']['t']['index']
      total = self.state['bars']['t']['total']
      percent = index / total * 100
      # send percent to UI
    except KeyError as e:
      pass
      
my_logger = MyBarLogger()
#...
clip.write_videofile(filename, logger=my_logger)


P.S. Сам вопрос задал, сам и ответил. Походу у меня шиза)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы