[New-bugs-announce] [issue30266] AbstractContextManager should support __method__ = None

Jelle Zijlstra report at bugs.python.org
Wed May 3 23:37:32 EDT 2017

New submission from Jelle Zijlstra:

Like other ABCs, contextlib.AbstractContextManager should support the pattern where setting a method to None disables structural subtyping, which was introduced across the standard library in issue 25958. Ivan Levkivskyi suggested making AbstractContextManager support this pattern in CR comments in https://github.com/python/cpython/pull/1412/files#r114482765.

Should this change be applied to 3.6 as well as master? I'm leaning towards yes, because the resolution to issue 25958 (https://hg.python.org/cpython/rev/72b9f195569c) added a general statement in the documentation that "Setting a special method to ``None`` indicates that the corresponding operation is not available". Thus, the fact that contextlib.AbstractContextManager doesn't obey this rule is a bug.

I'll send a PR shortly.

components: Library (Lib)
messages: 292955
nosy: Jelle Zijlstra, levkivskyi, ncoghlan, yselivanov
priority: normal
severity: normal
status: open
title: AbstractContextManager should support __method__ = None
versions: Python 3.6, Python 3.7

Python tracker <report at bugs.python.org>

More information about the New-bugs-announce mailing list