Add additional optional type parameter to typing.ContextManager
and typing.AbstractContextManager
#118660
Labels
typing.ContextManager
and typing.AbstractContextManager
#118660
Feature or enhancement
Proposal:
As part of python/typeshed#11048
contextlib.AbstractContextManager
andcontextlib.AbstractAsyncContextManager
received an additional optional type parameter for the return value of__exit__
in order to have greater control over code-flow analysis in type checkers with things likeExitStack
.The
contextlib
ABC
s don't require any changes, since they accept an arbitrary number of arguments at runtime, but the aliases that live intyping
are a different story. These will reject the additional parameter at runtime, throwing an exception.@JelleZijlstra Added support for type var defaults for
typing._SpecialGenericAlias
in #118648, we could leverage that work to add the new optional parameter to the typing aliases, so they can support the same number of type parameters as theircontextlib
counterparts.Has this already been discussed elsewhere?
I have already discussed this feature proposal on Discourse
Links to previous discussion of this feature:
https://discuss.python.org/t/add-an-else-clause-to-with-statements-to-detect-early-termination/38031
Linked PRs
The text was updated successfully, but these errors were encountered: