Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions Doc/whatsnew/3.9.rst
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,34 @@ Summary -- Release highlights
.. PEP-sized items next.


You should check for DeprecationWarning in your code
====================================================

When Python 2.7 was still supported, many functions were kept for backward
compatibility with Python 2.7. With the end of Python 2.7 support, these
backward compatibility layers have been removed, or will be removed soon.
Most of them emitted a :exc:`DeprecationWarning` warning for several years. For
example, using ``collections.Mapping`` instead of ``collections.abc.Mapping``
emits a :exc:`DeprecationWarning` since Python 3.3, released in 2012.

Test your application with the :option:`-W` ``default`` command-line option to see
:exc:`DeprecationWarning` and :exc:`PendingDeprecationWarning`, or even with
:option:`-W` ``error`` to treat them as errors. :ref:`Warnings Filter
<warning-filter>` can be used to ignore warnings from third-party code.

It has been decided to keep a few backward compatibility layers for one last
release, to give more time to Python projects maintainers to organize the
removal of the Python 2 support and add support for Python 3.9.

Aliases to ref:`Abstract Base Classes <collections-abstract-base-classes>` in
the :mod:`collections` module, like ``collections.Mapping`` alias to
:class:`collections.abc.Mapping`, are kept for one last release for backward
compatibility. They will be removed from Python 3.10.

More generally, try to run your tests in the :ref:`Python Development Mode
<devmode>` which helps to prepare your code to make it compatible with the
next Python version.


New Features
============
Expand Down