Во время моих тестов я обнаружил 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