Как отключить вывод предупреждений на python?

Я работаю с телеграм-ботами, библиотека telebot. Разрабатываю систему, которая позволяет создавать "зеркало" телеграм-бота. Столкнулся с проблемой - если пользователь добавляет бота, который уже используется в другом сервисе, то консоль начинает спамить предупреждением об этом. Бот работает по технологии bot-polling, которая конфликтует с вебхуками.

    raise ApiTelegramException(method_name, result, result_json)
telebot.apihelper.ApiTelegramException: A request to the Telegram API was unsuccessful. Error code: 409. Description: Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first

И это предупреждение никак не отлавливается. Tru - Except их игнорирует.

logging.basicConfig(level=logging.ERROR) не работает

warnings.filterwarnings("ignore") аналогично

Перенаправление вывода тоже

class DevNull:
    def write(self, msg):
        pass
sys.stderr = DevNull()

Я пробовал удалять вебхуки, но другие подключённые сервисы их восстанавливают. Единственный вариант - вручную искать по номеру потока проблемных ботов и удалять их.

Подскажите, как можно отключить вывод таких сообщений или автоматически определить, в каких потоках они происходят. Выполнение кода эти сообщения не прерывают, бот продолжает работать, хотя и получается мешанина ответов из двух сервисов.


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

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

Для каждого бота нужен отдельный хук. Хотя у вас это не описано, но подозреваю, что вы используете один хук на оба бота.

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

Просто добавь следующий код перед кодом бота:

import warnings
warnings.filterwarnings("ignore") 
→ Ссылка