Фильтр предупреждений Python не улавливает InsecurePlatformWarning

С момента этого сообщения

lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: настоящий объект SSLContext недоступен. Это не позволяет urllib3 правильно настроить SSL и может привести к сбою определенных SSL-соединений. Для получения дополнительной информации см. https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning. Предупреждение о небезопасной платформе

заполняет мои журналы (да, я знаю, что это важно, в конце концов я решу настоящую проблему! Обещаю!), я хочу добавить фильтр, чтобы он появлялся только один раз. Поэтому я добавил это:

warnings.simplefilter(action='once', category=InsecurePlatformWarning, append=True)

но он ничего не фильтрует. Когда я делаю это:

warnings.simplefilter(action='once', append=True)

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

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

Спасибо!


person Gil Zellner    schedule 09.07.2015    source источник


Ответы (1)


Попробуйте удалить append=True:

warnings.simplefilter(action='once', category=InsecurePlatformWarning)

Код urllib3 уже имеет конфигурацию ведения журнала по умолчанию. Если вы используете append=True, то конфигурация по умолчанию переопределяет вашу.

person Alasdair    schedule 09.07.2015