From 908e2da62247525171f0199e3e3c3d936ae8f443 Mon Sep 17 00:00:00 2001 From: Thomas Grainger Date: Tue, 29 Jun 2021 19:09:04 +0100 Subject: [PATCH] add py3.10 async contextlib.nullcontext (pyi) Fixes #41 --- contextlib2/__init__.pyi | 7 ++++-- ...10_contextlib_pyi_to_contextlib2_pyi.patch | 25 +++++++++++++++---- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/contextlib2/__init__.pyi b/contextlib2/__init__.pyi index 7ac687d..60c43fa 100644 --- a/contextlib2/__init__.pyi +++ b/contextlib2/__init__.pyi @@ -121,12 +121,15 @@ if True: __traceback: Optional[TracebackType], ) -> Awaitable[bool]: ... + if True: - class nullcontext(AbstractContextManager[_T]): + class nullcontext(AbstractContextManager[_T], AbstractAsyncContextManager[_T]): enter_result: _T @overload def __init__(self: nullcontext[None], enter_result: None = ...) -> None: ... @overload def __init__(self: nullcontext[_T], enter_result: _T) -> None: ... def __enter__(self) -> _T: ... - def __exit__(self, *exctype: Any) -> bool: ... + def __exit__(self, *exctype: Any) -> None: ... + async def __aenter__(self) -> _T: ... + async def __aexit__(self, *exctype: Any) -> None: ... diff --git a/dev/py3_10_contextlib_pyi_to_contextlib2_pyi.patch b/dev/py3_10_contextlib_pyi_to_contextlib2_pyi.patch index e28b972..ed544d8 100644 --- a/dev/py3_10_contextlib_pyi_to_contextlib2_pyi.patch +++ b/dev/py3_10_contextlib_pyi_to_contextlib2_pyi.patch @@ -1,5 +1,5 @@ ---- ../contextlib.pyi 2021-06-29 09:51:57.388558713 +0100 -+++ contextlib2/__init__.pyi 2021-06-29 09:51:51.688457760 +0100 +--- ../contextlib.pyi 2021-06-29 19:05:46.515307191 +0100 ++++ contextlib2/__init__.pyi 2021-06-29 19:15:26.814620184 +0100 @@ -1,3 +1,6 @@ +# Type hints copied from the typeshed project under the Apache License 2.0 +# https://github.com/python/typeshed/blob/64c85cdd449ccaff90b546676220c9ecfa6e697f/LICENSE @@ -50,12 +50,27 @@ _S = TypeVar("_S", bound=AsyncExitStack) _ExitCoroFunc = Callable[[Optional[Type[BaseException]], Optional[BaseException], Optional[TracebackType]], Awaitable[bool]] -@@ -112,7 +121,7 @@ +@@ -112,7 +121,8 @@ __traceback: Optional[TracebackType], ) -> Awaitable[bool]: ... --if sys.version_info >= (3, 7): +-if sys.version_info >= (3, 10): ++ +if True: - class nullcontext(AbstractContextManager[_T]): + class nullcontext(AbstractContextManager[_T], AbstractAsyncContextManager[_T]): enter_result: _T @overload +@@ -123,13 +133,3 @@ + def __exit__(self, *exctype: Any) -> None: ... + async def __aenter__(self) -> _T: ... + async def __aexit__(self, *exctype: Any) -> None: ... +- +-elif sys.version_info >= (3, 7): +- class nullcontext(AbstractContextManager[_T]): +- enter_result: _T +- @overload +- def __init__(self: nullcontext[None], enter_result: None = ...) -> None: ... +- @overload +- def __init__(self: nullcontext[_T], enter_result: _T) -> None: ... +- def __enter__(self) -> _T: ... +- def __exit__(self, *exctype: Any) -> None: ...