This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author asmeurer
Recipients abarry, asmeurer, ncoghlan, r.david.murray, rhettinger, serhiy.storchaka
Date 2019-06-05.20:09:45
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <>
I agree with Raymond that third party libraries are not ready for this. 

My biggest issue is that the way Python warns about this makes it very difficult for library authors to fix this. Most won't even notice. The problem is the warnings are only shown once, when the file is compiled. So if you run the code in any way that causes Python to compile it, a further run of 'python -Wd' will show nothing. I don't know if it's reasonable, but it would be nice if Python recompiled when given -Wd, or somehow saved the warning so it could be shown if that flag is given later.

As an anecdote, for SymPy's CI, we went through five (if I am counting correctly) iterations of trying to test this. Each of the first four were subtly incorrect, until we finally managed to find the correct one (for reference, 'python -We:invalid -m compileall -f -q module/').  So most library authors who will attempt to add tests against this will get it wrong. Simply adding -Wd as you would expect is wrong. If the code is already compiled (which it probably is, e.g., if you ran, it won't show the warnings. At the very least the "correct" way to test this should be documented. 

Things would probably be improved if the warnings were always shown, as at least then devs will see the error once (although most will probably be confused when the warning doesn't repeat).

Another problem is the information in the warnings. It seems the line number of the string is now shown, which is an improvement ( It would be nice if it showed the actual line and column number in the file of the invalid escape. This is especially annoying when an escape appears in a docstring. It just shows """ as the offending line. 

We have a lot of LaTeX in our docstrings in SymPy, so we had quite a few of these to fix. SymPy doesn't have invalid escapes anymore because I was proactive about it, but from what I've seen, most library authors haven't been.

By the way, this looks like a bug (python 3.8b1):

$ cat

$ python -We:invalid
  File "", line 2
SyntaxError: invalid escape sequence \p

It might not be possible to see in what I pasted, but it filled my terminal with spaces.
Date User Action Args
2019-06-05 20:09:45asmeurersetrecipients: + asmeurer, rhettinger, ncoghlan, r.david.murray, serhiy.storchaka, abarry
2019-06-05 20:09:45asmeurersetmessageid: <>
2019-06-05 20:09:45asmeurerlinkissue32912 messages
2019-06-05 20:09:45asmeurercreate