On 10. 05. 21 10:53, Inada Naoki wrote:
Hi, folks.
Now Python 3.11 development is open and I am removing some deprecated stuffs carefully.
I am considering `configparser.ParseError.filename` property that is deprecated since Python 3.2. https://github.com/python/cpython/blob/8e8307d70bb9dc18cfeeed3277c076309b275...
My random thoughts about it:
* It has been deprecated long enough. * But the maintenance burden is low enough. * If we don't remove long deprecated stuff like this, Python 4.0 will be a big breaking change.
My proposal:
* Change DeprecationWarning to FutureWarning and wait one more version. * DeprecationWarning is suppressed by default to hide noise from end users. * But sudden breaking change is more annoying to end users.
I am not proposing to change PEP 387 "Backwards Compatibility Policy". This is just a new convention.
Test tools should treat DeprecationWarning as error by default [0][1]. So even if end users don't really see it, I don't consider it "hidden". Waiting one more release sounds reasonable to me, but for a slightly different reason: the warning should list the version the feature will be removed in: "3.12" rather than "future versions". Another idea: would it be worth it to create "What's new" pages for 3.12 and 3.13 already and fill them with planned removals? (Of course they'd need to be de-emphasized in the table of contents.) [0]: https://www.python.org/dev/peps/pep-0565/#recommended-filter-settings-for-te... [1]: https://docs.pytest.org/en/latest/how-to/capture-warnings.html#deprecationwa...