почему -W на самом деле не принимает регулярные выражения для игнорирования определенного модуля? - PullRequest
0 голосов
/ 02 мая 2019

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

Согласно документам Python аргумент командной строки -W должен принимать регулярное выражение в качестве третьего аргумента (игнорировать предупреждение, поступающее от определенного модуля), но, похоже, это не так.

Фактически, хотя эта команда может подавить все предупреждения

python3 -m pytest . -v \
-Wignore::DeprecationWarning:aiohttp.connector \
-Wignore::DeprecationWarning:aiohttp.cookiejar \
-Wignore::DeprecationWarning:telepot.aio.api

эта команда вместо этого (регулярное выражение 1) не подавляет никаких предупреждений:

python3 -m pytest . -v \
-Wignore::DeprecationWarning:aiohttp.* \
-Wignore::DeprecationWarning:telepot.*

(то же самое, если я заменяю. * На [. *])

Так что это работает, если я напишу подробно полное имя пакета модуля, но не если я использую регулярное выражение для глобальной ссылки для всего пакета (в данном случае aiohttp и telepot)

Есть идеи почему?

Проверено на virtualenv с python 3.7.1, собранным из исходного кода на Ubuntu 16.04

...