From c47c78b878ff617164b2b94ff711a6103e781753 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Wed, 13 Jan 2021 01:16:37 +0200 Subject: [PATCH] bpo-37324: Remove ABC aliases from collections (GH-23754) Remove deprecated aliases to Abstract Base Classes from the collections module. --- Doc/library/collections.rst | 5 ----- Doc/whatsnew/3.10.rst | 4 ++++ Lib/collections/__init__.py | 16 ---------------- .../2020-12-12-20-09-12.bpo-37324.jB-9_U.rst | 2 ++ 4 files changed, 6 insertions(+), 21 deletions(-) create mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-12-12-20-09-12.bpo-37324.jB-9_U.rst diff --git a/Doc/library/collections.rst b/Doc/library/collections.rst index 1293f542b04..aa0acfaae45 100644 --- a/Doc/library/collections.rst +++ b/Doc/library/collections.rst @@ -33,11 +33,6 @@ Python's general purpose built-in containers, :class:`dict`, :class:`list`, :class:`UserString` wrapper around string objects for easier string subclassing ===================== ==================================================================== -.. deprecated-removed:: 3.3 3.10 - Moved :ref:`collections-abstract-base-classes` to the :mod:`collections.abc` module. - For backwards compatibility, they continue to be visible in this module through - Python 3.9. - :class:`ChainMap` objects ------------------------- diff --git a/Doc/whatsnew/3.10.rst b/Doc/whatsnew/3.10.rst index d2b3ed75f8c..7a51a9dbfb8 100644 --- a/Doc/whatsnew/3.10.rst +++ b/Doc/whatsnew/3.10.rst @@ -550,6 +550,10 @@ Removed now due to the _warnings module was converted to a builtin module in 2.6. (Contributed by Hai Shi in :issue:`42599`.) +* Remove deprecated aliases to :ref:`collections-abstract-base-classes` from + the :mod:`collections` module. + (Contributed by Victor Stinner in :issue:`37324`.) + Porting to Python 3.10 ====================== diff --git a/Lib/collections/__init__.py b/Lib/collections/__init__.py index 9c25a2d2784..7d338131d67 100644 --- a/Lib/collections/__init__.py +++ b/Lib/collections/__init__.py @@ -51,22 +51,6 @@ except ImportError: pass -def __getattr__(name): - # For backwards compatibility, continue to make the collections ABCs - # through Python 3.6 available through the collections module. - # Note, no new collections ABCs were added in Python 3.7 - if name in _collections_abc.__all__: - obj = getattr(_collections_abc, name) - import warnings - warnings.warn("Using or importing the ABCs from 'collections' instead " - "of from 'collections.abc' is deprecated since Python 3.3, " - "and in 3.10 it will stop working", - DeprecationWarning, stacklevel=2) - globals()[name] = obj - return obj - raise AttributeError(f'module {__name__!r} has no attribute {name!r}') - - ################################################################################ ### OrderedDict ################################################################################ diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-12-12-20-09-12.bpo-37324.jB-9_U.rst b/Misc/NEWS.d/next/Core and Builtins/2020-12-12-20-09-12.bpo-37324.jB-9_U.rst new file mode 100644 index 00000000000..5b57da4de5a --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2020-12-12-20-09-12.bpo-37324.jB-9_U.rst @@ -0,0 +1,2 @@ +Remove deprecated aliases to :ref:`collections-abstract-base-classes` from +the :mod:`collections` module.