Как отключить зарегистрированные предупреждения в 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)