diff options
author | Raymond Hettinger <rhettinger@users.noreply.github.com> | 2018-01-29 16:27:49 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-29 16:27:49 (GMT) |
commit | e6d342156d2ab20fb88c0a5ec615fa8f602c0769 (patch) | |
tree | d5d14dc05f25c556bbad4c9f9c5d551b7ea95570 | |
parent | 4f4ef0acbad81f4b05f370e8ff14ddf949773291 (diff) | |
download | cpython-e6d342156d2ab20fb88c0a5ec615fa8f602c0769.zip cpython-e6d342156d2ab20fb88c0a5ec615fa8f602c0769.tar.gz cpython-e6d342156d2ab20fb88c0a5ec615fa8f602c0769.tar.bz2 |
bpo-25988: Deprecate exposing collections.abc in collections GH-5414
-rw-r--r-- | Doc/library/collections.rst | 4 | ||||
-rw-r--r-- | Doc/whatsnew/3.7.rst | 5 | ||||
-rw-r--r-- | Lib/collections/__init__.py | 10 | ||||
-rw-r--r-- | Misc/NEWS.d/next/Library/2018-01-28-23-48-45.bpo-25988.I9uBct.rst | 2 |
4 files changed, 16 insertions, 5 deletions
diff --git a/Doc/library/collections.rst b/Doc/library/collections.rst index 18aaba65..772ff60 100644 --- a/Doc/library/collections.rst +++ b/Doc/library/collections.rst @@ -35,8 +35,8 @@ Python's general purpose built-in containers, :class:`dict`, :class:`list`, .. versionchanged:: 3.3 Moved :ref:`collections-abstract-base-classes` to the :mod:`collections.abc` module. - For backwards compatibility, they continue to be visible in this module - as well. + For backwards compatibility, they continue to be visible in this module through + Python 3.7. Subsequently, they will be removed entirely. :class:`ChainMap` objects diff --git a/Doc/whatsnew/3.7.rst b/Doc/whatsnew/3.7.rst index e36e505..71070df 100644 --- a/Doc/whatsnew/3.7.rst +++ b/Doc/whatsnew/3.7.rst @@ -880,6 +880,11 @@ Other CPython Implementation Changes Deprecated ========== +* In Python 3.8, the abstract base classes in :mod:`collections.abc` will no + longer be exposed in the regular :mod:`collections` module. This will help + create a clearer distinction between the concrete classes and the abstract + base classes. + * Yield expressions (both ``yield`` and ``yield from`` clauses) are now deprecated in comprehensions and generator expressions (aside from the iterable expression in the leftmost :keyword:`for` clause). This ensures that comprehensions diff --git a/Lib/collections/__init__.py b/Lib/collections/__init__.py index 21d91fd..8aeee35 100644 --- a/Lib/collections/__init__.py +++ b/Lib/collections/__init__.py @@ -18,10 +18,14 @@ __all__ = ['deque', 'defaultdict', 'namedtuple', 'UserDict', 'UserList', 'UserString', 'Counter', 'OrderedDict', 'ChainMap'] # For backwards compatibility, continue to make the collections ABCs -# available through the collections module. -from _collections_abc import * +# through Python 3.6 available through the collections module. +# Note, no new collections ABCs were added in Python 3.7 import _collections_abc -__all__ += _collections_abc.__all__ +from _collections_abc import (AsyncGenerator, AsyncIterable, AsyncIterator, + Awaitable, ByteString, Callable, Collection, Container, Coroutine, + Generator, Hashable, ItemsView, Iterable, Iterator, KeysView, Mapping, + MappingView, MutableMapping, MutableSequence, MutableSet, Reversible, + Sequence, Set, Sized, ValuesView) from operator import itemgetter as _itemgetter, eq as _eq from keyword import iskeyword as _iskeyword diff --git a/Misc/NEWS.d/next/Library/2018-01-28-23-48-45.bpo-25988.I9uBct.rst b/Misc/NEWS.d/next/Library/2018-01-28-23-48-45.bpo-25988.I9uBct.rst new file mode 100644 index 0000000..df35077 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2018-01-28-23-48-45.bpo-25988.I9uBct.rst @@ -0,0 +1,2 @@ +Deprecate exposing the contents of collections.abc in the regular +collections module. |