[Python-Dev] Proposal: go back to enabling DeprecationWarning by default (original) (raw)

Serhiy Storchaka storchaka at gmail.com
Mon Nov 6 02:08:38 EST 2017


06.11.17 04:05, Nick Coghlan пише:

On the 12-weeks-to-3.7-feature-freeze thread, Jose Bueno & I both mistakenly though the async/await deprecation warnings were missing from 3.6.

They weren't missing, we'd just both forgotten those warnings were off by default (7 years after the change to the default settings in 2.7 & 3.2).

Following issues on GitHub related to new Python releases I have found that many projects try to fix deprecation warning, but there are projects that are surprised by ending of deprecation periods and removing features.

So my proposal is simple (and not really new): let's revert back to the way things were in 2.6 and earlier, with DeprecationWarning being visible by default, and app devs having to silence it explicitly during application startup (before they start importing third party modules) if they don't want their users seeing it when running on the latest Python version (e.g. this would be suitable for open source apps that get integrated into Linux distros and use the system Python there).

This will also restore the previously clear semantic and behavioural different between PendingDeprecationWarning (hidden by default) and DeprecationWarning (visible by default).

There was a proposition to make DeprecationWarning visible by default in debug builds and in interactive interpreter.

What if first implement this idea in 3.7 and make DeprecationWarning visible by default in production scripts only in 3.8? This will make less breakage.



More information about the Python-Dev mailing list