I sympathize with the OP, but I think never removing deprecated names is the wrong solution.

If never removing those names is the appropriate action, then they never should have been changed in the first place. That is, we should be ( and I think are) very careful about gratuitously changing things.

Frankly, changing names in your code is a light lift. If you really want your code to not be touched, keep using an older version of Python.

BTW, tools can help a lot here. I make heavy use of Pytest, and it recently changed its default warning policy so that I get the depreciation warnings early and often. It’s just not that hard to keep up if the code is seeing any maintenance at all.


It’s a simple reality that code needs to be maintained.

 Mass-replacing "failUnless" with
"assertTrue" just because someone decided it's a better name

If there really was no better reason than that, the change never should have been made. But once made, keeping multiple names around forever is not a good option.

-CHB
--
Christopher Barker, PhD (Chris)

Python Language Consulting
  - Teaching
  - Scientific Software Development
  - Desktop GUI and Web Development
  - wxPython, numpy, scipy, Cython