Как отключить зарегистрированные предупреждения в Pybel?

Я использую Pybel - оболочку Python вокруг API OpenBabel, и я пытаюсь отключить такие предупреждения:

==============================
*** Open Babel Warning  in ParseComplex
  Illegal aromatic element b-

Мои предупреждения постоянно звучали, когда из ЧЭМБЛ была получена дактилоскопическая молекула SMILES.

3 ответа

Вы можете получить дескриптор к журналу openbabel (класс OBMessageHandler) от openbabel модуль. Хитрость заключается в том, чтобы сначала получить доступ к модулю openbabel с модуля pybel, взять OBMessageHandler Класс и создать экземпляр журнала ( документы):

import pybel

ob_log_handler = pybel.ob.OBMessageHandler()

Используя ручку, вы можете установить log_level на 0, чтобы отключить все, кроме критических сообщений ( документов):

ob_log_handler.SetOutputLevel(0)

Вы можете использовать следующие перечисления ( документы здесь), чтобы выбрать уровень ведения журнала. По умолчанию 1, что записывает все предупреждения:

  • 0: критический
  • 1: Предупреждение (поумолчанию)
  • 2: Информация
  • 3: Аудит (когда молекулы разрушаются / воспринимаются)
  • 4: отладка

Если вы хотите избавиться от всех сообщений об ошибках:

      pybel.ob.obErrorLog.StopLogging()

Ответ Aelfinn не сработал для меня, но доступ к SetOutputLevel таким образом сделал:

pybel.ob.obErrorLog.SetOutputLevel(0)

Другие вопросы по тегам