Skip to content

Commit

Permalink
bpo-25988: Do not expose abstract collection classes in the collectio…
Browse files Browse the repository at this point in the history
…ns module. (GH-10596)
  • Loading branch information
serhiy-storchaka authored Oct 7, 2019
1 parent 9e71917 commit ef092fe
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 15 deletions.
5 changes: 5 additions & 0 deletions Doc/whatsnew/3.9.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
15 changes: 0 additions & 15 deletions Lib/collections/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.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
################################################################################
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
The abstract base classes in :mod:`collections.abc` no longer are exposed in
the regular :mod:`collections` module.

0 comments on commit ef092fe

Please sign in to comment.