From b0260735dd7d387a5450ff5304a1cfe2a3a3df65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Lapeyre?= Date: Wed, 10 Jun 2020 12:45:09 +0200 Subject: [PATCH 1/2] Do not expose abstract collection classes in the collections module Original patch in ef092fe9905f61ca27889092ca1248a11aa74498 by Serhiy Storchaka --- Doc/library/collections.rst | 5 ----- Lib/collections/__init__.py | 15 --------------- .../2020-06-10-12-44-48.bpo-40937.6o7gGK.rst | 2 ++ 3 files changed, 2 insertions(+), 20 deletions(-) create mode 100644 Misc/NEWS.d/next/Library/2020-06-10-12-44-48.bpo-40937.6o7gGK.rst diff --git a/Doc/library/collections.rst b/Doc/library/collections.rst index f538da5e1c9faa..b7ab8fca4137ba 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/Lib/collections/__init__.py b/Lib/collections/__init__.py index 6a06cc6a64f169..cee3d83fc89a25 100644 --- a/Lib/collections/__init__.py +++ b/Lib/collections/__init__.py @@ -39,21 +39,6 @@ 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/Library/2020-06-10-12-44-48.bpo-40937.6o7gGK.rst b/Misc/NEWS.d/next/Library/2020-06-10-12-44-48.bpo-40937.6o7gGK.rst new file mode 100644 index 00000000000000..21d25e8d74ced6 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2020-06-10-12-44-48.bpo-40937.6o7gGK.rst @@ -0,0 +1,2 @@ +The abstract base classes in :mod:`collections.abc` no longer are exposed in +the regular :mod:`collections` module. From d0679a00dcfcb8bf37458e658770c5832b608791 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Lapeyre?= Date: Mon, 15 Jun 2020 17:45:07 +0200 Subject: [PATCH 2/2] Add note back in Whats New --- Doc/whatsnew/3.10.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Doc/whatsnew/3.10.rst b/Doc/whatsnew/3.10.rst index 1234b2e6bbf279..a49a6d916f8ee3 100644 --- a/Doc/whatsnew/3.10.rst +++ b/Doc/whatsnew/3.10.rst @@ -106,6 +106,11 @@ Deprecated Removed ======= +* The abstract base classes in :mod:`collections.abc` no longer are + exposed in the regular :mod:`collections` module. This will help + create a clearer distinction between the concrete classes and the abstract + base classes. + Porting to Python 3.10 ====================== pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy