mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-08 21:14:48 +08:00
tkinter: Use a TypeVarTuple in .after() and .after_idle() methods (#11014)
This commit is contained in:
@@ -6,7 +6,7 @@ from tkinter.constants import *
|
||||
from tkinter.font import _FontDescription
|
||||
from types import TracebackType
|
||||
from typing import Any, Generic, NamedTuple, TypeVar, overload, type_check_only
|
||||
from typing_extensions import Literal, TypeAlias, TypedDict, deprecated
|
||||
from typing_extensions import Literal, TypeAlias, TypedDict, TypeVarTuple, Unpack, deprecated
|
||||
|
||||
if sys.version_info >= (3, 9):
|
||||
__all__ = [
|
||||
@@ -314,6 +314,8 @@ getdouble: Incomplete
|
||||
|
||||
def getboolean(s): ...
|
||||
|
||||
_Ts = TypeVarTuple("_Ts")
|
||||
|
||||
class _GridIndexInfo(TypedDict, total=False):
|
||||
minsize: _ScreenUnits
|
||||
pad: _ScreenUnits
|
||||
@@ -349,9 +351,9 @@ class Misc:
|
||||
def tk_focusPrev(self) -> Misc | None: ...
|
||||
# .after() can be called without the "func" argument, but it is basically never what you want.
|
||||
# It behaves like time.sleep() and freezes the GUI app.
|
||||
def after(self, ms: int | Literal["idle"], func: Callable[..., object], *args: Any) -> str: ...
|
||||
def after(self, ms: int | Literal["idle"], func: Callable[[Unpack[_Ts]], object], *args: Unpack[_Ts]) -> str: ...
|
||||
# after_idle is essentially partialmethod(after, "idle")
|
||||
def after_idle(self, func: Callable[..., object], *args: Any) -> str: ...
|
||||
def after_idle(self, func: Callable[[Unpack[_Ts]], object], *args: Unpack[_Ts]) -> str: ...
|
||||
def after_cancel(self, id: str) -> None: ...
|
||||
def bell(self, displayof: Literal[0] | Misc | None = 0) -> None: ...
|
||||
def clipboard_get(self, *, displayof: Misc = ..., type: str = ...) -> str: ...
|
||||
|
||||
@@ -12,3 +12,11 @@ def custom_handler(exc: type[BaseException], val: BaseException, tb: types.Trace
|
||||
root = tkinter.Tk()
|
||||
root.report_callback_exception = traceback.print_exception
|
||||
root.report_callback_exception = custom_handler
|
||||
|
||||
|
||||
def foo(x: int, y: str) -> None:
|
||||
pass
|
||||
|
||||
|
||||
root.after(1000, foo, 10, "lol")
|
||||
root.after(1000, foo, 10, 10) # type: ignore
|
||||
|
||||
Reference in New Issue
Block a user