From b7b98a6c9f51ae05c48914957d487160bf1aa053 Mon Sep 17 00:00:00 2001 From: Kevin Kirsche Date: Wed, 27 Jul 2022 23:02:25 -0400 Subject: [PATCH] curses: add Concatenate (#8414) Update the `wrapper` `__func` parameter to use ParamSpec and Concatenate to address a todo. --- stdlib/curses/__init__.pyi | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/stdlib/curses/__init__.pyi b/stdlib/curses/__init__.pyi index f80ed442e..db44fa6a6 100644 --- a/stdlib/curses/__init__.pyi +++ b/stdlib/curses/__init__.pyi @@ -1,12 +1,14 @@ import sys from collections.abc import Callable -from typing import Any, TypeVar +from typing import TypeVar +from typing_extensions import Concatenate, ParamSpec if sys.platform != "win32": from _curses import * from _curses import _CursesWindow as _CursesWindow _T = TypeVar("_T") + _P = ParamSpec("_P") # available after calling `curses.initscr()` LINES: int @@ -15,6 +17,5 @@ if sys.platform != "win32": # available after calling `curses.start_color()` COLORS: int COLOR_PAIRS: int - # TODO: wait for `Concatenate` support - # def wrapper(__func: Callable[Concatenate[_CursesWindow, _P], _T], *arg: _P.args, **kwds: _P.kwargs) -> _T: ... - def wrapper(__func: Callable[..., _T], *arg: Any, **kwds: Any) -> _T: ... + + def wrapper(__func: Callable[Concatenate[_CursesWindow, _P], _T], *arg: _P.args, **kwds: _P.kwargs) -> _T: ...