]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-25988: Do not expose abstract collection classes in the collections module. ...
authorSerhiy Storchaka <storchaka@gmail.com>
Mon, 7 Oct 2019 09:10:15 +0000 (12:10 +0300)
committerGitHub <noreply@github.com>
Mon, 7 Oct 2019 09:10:15 +0000 (12:10 +0300)
Doc/whatsnew/3.9.rst
Lib/collections/__init__.py
Misc/NEWS.d/next/Library/2018-11-19-10-23-58.bpo-25988.6o7gGK.rst [new file with mode: 0644]

index 690b536fd881f039b3e62464dfe7ae56741f1b74..9f2a659a9dca75afa1b56f0c4fdde83360b5f321 100644 (file)
@@ -195,6 +195,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.
+
 * The undocumented ``sys.callstats()`` function has been removed. Since Python
   3.7, it was deprecated and always returned :const:`None`. It required a special
   build option ``CALL_PROFILE`` which was already removed in Python 3.7.
index 859b8460e48d595d76b2d31a81806cf005260d6f..2fc71e2991ab603f481006ef851c1075ad795ee3 100644 (file)
@@ -39,21 +39,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.9 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/2018-11-19-10-23-58.bpo-25988.6o7gGK.rst b/Misc/NEWS.d/next/Library/2018-11-19-10-23-58.bpo-25988.6o7gGK.rst
new file mode 100644 (file)
index 0000000..21d25e8
--- /dev/null
@@ -0,0 +1,2 @@
+The abstract base classes in :mod:`collections.abc` no longer are exposed in
+the regular :mod:`collections` module.