I would like to take a step back, 

I think that for removal of feature you need to make sure that the "old way" is
not common enough. I think that in many context, users of Python see
DeprecationWarnings as a stick. A deprecation warning means you'll have to do
some work. A pep or a document that list all the removal may be useful, but I'm
unsure if in reading what's knew you'll catch all the removal of functionality
you use and convince yourself (or your management) to thouroughly go through
your code base and fix these things. Maybe to help transition you need to soften
the stick by being more explicit as since when things are deprecated and what can
be done.

Personally I find deprecations when I run test-suites and use libraries
interactively, not by reading ahead of time documents. Python has made huge
progress in the deprecation messages. And the usage of "X Is is deprecated, use
Y" has become common, this is already tremendously more helpful than just "X is
deprecated".

But when I hit a DeprecationWarning message there is one crucial piece of
information missing most of the time: Since which version number it's deprecated
(and sometime since when the replacement is available could be good if overlap
between functionality there was). Yes it is available in the docs (or in the
docstring), but if I have to switch context to search in the documentation I
might not bother. In particular when the version is in the deprecation message,
as I know the python requirement of my project, I can immediately know if it's a
search and replace away, or if I need to have conditional branches.

That is at least to me the biggest change that would push me to update the
deprecated features in my own project, and make me do drive by contributions on
Open-Source project I use where I spotted one of those. 

There are other improvement possible to deprecation messages, but I think this
one would have the largest impact for many developers who do not closely follow
python development, and for whom DeprecationWarnings are just an extra hassle. 

Also if there is a standard, or conventional way _in warnings_ to say since when
something is deprecated, then it's relatively easy to search for it when version N+p is
released and remove what you believe is old enough. 

Thanks, 
-- 
Matthias


On Fri, 4 May 2018 at 09:03, Serhiy Storchaka <storchaka@gmail.com> wrote:
04.05.18 16:14, Steven D'Aprano пише:
> Have there been many features removed since 3.1? I know there were some
> features removed in 3.0, like callable(), which were later put back in,
> but I can't think of anythin removed since then. If there were, the pace
> of it is pretty slow.

Read "What's New" documents, sections "Removed" and "Porting to Python
X.Y". There is a long list in every release.

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: https://mail.python.org/mailman/options/python-dev/bussonniermatthias%40gmail.com