Project description

try:# ABCs live in "collections.abc" in Python >= 3.3fromcollections.abcimportCoroutine,GeneratorexceptImportError:# fall back to import from "backports_abc"frombackports_abcimportCoroutine,Generator

You can also install the ABCs into the stdlib by calling the patch()
function:

importbackports_abcbackports_abc.patch()try:# ABCs live in "collections.abc" in Python >= 3.3fromcollections.abcimportCoroutine,GeneratorexceptImportError:# fall back to import from "collections" in Python <= 3.2frombackports_abcimportCoroutine,Generator

Currently, patch() provides the following names if missing:

collections.abc.Generator

collections.abc.Awaitable

collections.abc.Coroutine

inspect.isawaitable(obj)

All of them are also available directly from the backports_abc
module namespace.

In Python 2.x and Python 3.2, it patches the collections module
instead of the collections.abc module. Any names that are already
available when importing this module will not be overwritten.

The names that were previously patched by patch() can be queried
through the mapping in backports_abc.PATCHED.

Changelog

0.5 (2016-11-12)

support old-style (mro-missing) classes

0.4 (2015-09-14)

direct wheel building support

make all names available at the module level instead of requiring patching

0.3 (2015-07-03)

removed patching of inspect.iscoroutine() as it is not ABC based

0.2 (2015-07-03)

require explicit backports_abc.patch() call to do the patching
(avoids side-effects on import and allows future configuration)

provide access to patched names through global PATCHED dict

add ABC based implementations of inspect.iscoroutine() and
inspect.isawaitable()