bpo-25988: Deprecate exposing collections.abc in collections GH-5414

This commit is contained in:
Raymond Hettinger 2018-01-29 08:27:49 -08:00 committed by GitHub
parent 4f4ef0acba
commit e6d342156d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 16 additions and 5 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,2 @@
Deprecate exposing the contents of collections.abc in the regular
collections module.