New submission from Thomas Gläßle <tho...@coldfix.de>: Hi,
This command does not report a warning, while it should: python -c 'import warnings; warnings.warn("This should show up")' -Wi -W'default:::.*' If the regex `.*` is replaced by `__main__` it works as expected. Same applies for regexes in PYTHONWARNINGS and for the `message` part of the argument. The reason can be found in Lib/warnings.py:144 (def _setoption): module = re.escape(module) This point-blank escape makes me think that it was intended that no regexes can be passed to message/module. On the other, the documentation reads as if it should be supported. Specifically, the -W option is documented in [1]. While this page lists only basic examples, it refers to [2] and [3] for more details. [2] states that message/module are regexes. [3] seems to be written to specifically address the syntax of the PYTHONWARNINGS and the -W option and explicitly lists an example with a regex. [1]: https://docs.python.org/3/using/cmdline.html#cmdoption-w [2]: https://docs.python.org/3/library/warnings.html#warning-filter [3]: https://docs.python.org/3/library/warnings.html#describing-warning-filters I would welcome if we could remove `re.escape` to make the implementation fit the documentation, or are there any downsides to this? Best regards, Thomas ---------- components: Library (Lib) messages: 324959 nosy: coldfix priority: normal severity: normal status: open title: -W option does not accept module regexes versions: Python 3.6, Python 3.7, Python 3.8 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue34624> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com