11import sys
2+ from _typeshed import FileDescriptorLike , Incomplete
23from collections .abc import Callable
3- from typing import Any , ClassVar , Final , final
4+ from typing import Any , ClassVar , Final , Literal , final , overload
45from typing_extensions import TypeAlias , deprecated
56
67# _tkinter is meant to be only used internally by tkinter, but some tkinter
@@ -54,22 +55,23 @@ _TkinterTraceFunc: TypeAlias = Callable[[tuple[str, ...]], object]
5455@final
5556class TkappType :
5657 # Please keep in sync with tkinter.Tk
57- def adderrorinfo (self , msg : str , / ): ...
58+ def adderrorinfo (self , msg : str , / ) -> None : ...
5859 def call (self , command : Any , / , * args : Any ) -> Any : ...
59- def createcommand (self , name : str , func , / ): ...
60+ # TODO: Figure out what arguments the following `func` callbacks should accept
61+ def createcommand (self , name : str , func : Callable [..., object ], / ) -> None : ...
6062 if sys .platform != "win32" :
61- def createfilehandler (self , file , mask : int , func , / ) : ...
62- def deletefilehandler (self , file , / ) -> None : ...
63+ def createfilehandler (self , file : FileDescriptorLike , mask : int , func : Callable [..., object ], / ) -> None : ...
64+ def deletefilehandler (self , file : FileDescriptorLike , / ) -> None : ...
6365
64- def createtimerhandler (self , milliseconds : int , func , / ): ...
65- def deletecommand (self , name : str , / ): ...
66- def dooneevent (self , flags : int = 0 , / ): ...
66+ def createtimerhandler (self , milliseconds : int , func : Callable [..., object ] , / ): ...
67+ def deletecommand (self , name : str , / ) -> None : ...
68+ def dooneevent (self , flags : int = 0 , / ) -> int : ...
6769 def eval (self , script : str , / ) -> str : ...
68- def evalfile (self , fileName : str , / ): ...
69- def exprboolean (self , s : str , / ): ...
70- def exprdouble (self , s : str , / ): ...
71- def exprlong (self , s : str , / ): ...
72- def exprstring (self , s : str , / ): ...
70+ def evalfile (self , fileName : str , / ) -> str : ...
71+ def exprboolean (self , s : str , / ) -> Literal [ 0 , 1 ] : ...
72+ def exprdouble (self , s : str , / ) -> float : ...
73+ def exprlong (self , s : str , / ) -> int : ...
74+ def exprstring (self , s : str , / ) -> str : ...
7375 def getboolean (self , arg , / ) -> bool : ...
7476 def getdouble (self , arg , / ) -> float : ...
7577 def getint (self , arg , / ) -> int : ...
@@ -81,15 +83,23 @@ class TkappType:
8183 def loadtk (self ) -> None : ...
8284 def mainloop (self , threshold : int = 0 , / ) -> None : ...
8385 def quit (self ) -> None : ...
84- def record (self , script : str , / ): ...
86+ def record (self , script : str , / ) -> str : ...
8587 def setvar (self , * ags , ** kwargs ): ...
8688 if sys .version_info < (3 , 11 ):
8789 @deprecated ("Deprecated since Python 3.9; removed in Python 3.11. Use `splitlist()` instead." )
8890 def split (self , arg , / ): ...
8991
90- def splitlist (self , arg , / ): ...
92+ def splitlist (self , arg , / ) -> tuple [ Incomplete , ...] : ...
9193 def unsetvar (self , * args , ** kwargs ): ...
92- def wantobjects (self , * args , ** kwargs ): ...
94+ if sys .version_info >= (3 , 14 ):
95+ @overload
96+ def wantobjects (self ) -> Literal [0 , 1 ]: ...
97+ else :
98+ @overload
99+ def wantobjects (self ) -> bool : ...
100+
101+ @overload
102+ def wantobjects (self , wantobjects : Literal [0 , 1 ] | bool , / ) -> None : ...
93103 def willdispatch (self ) -> None : ...
94104 if sys .version_info >= (3 , 12 ):
95105 def gettrace (self , / ) -> _TkinterTraceFunc | None : ...
@@ -112,7 +122,7 @@ TK_VERSION: Final[str]
112122
113123@final
114124class TkttType :
115- def deletetimerhandler (self ): ...
125+ def deletetimerhandler (self ) -> None : ...
116126
117127if sys .version_info >= (3 , 13 ):
118128 def create (
@@ -125,7 +135,7 @@ if sys.version_info >= (3, 13):
125135 sync : bool = False ,
126136 use : str | None = None ,
127137 / ,
128- ): ...
138+ ) -> TkappType : ...
129139
130140else :
131141 def create (
@@ -138,7 +148,7 @@ else:
138148 sync : bool = False ,
139149 use : str | None = None ,
140150 / ,
141- ): ...
151+ ) -> TkappType : ...
142152
143153def getbusywaitinterval () -> int : ...
144154def setbusywaitinterval (new_val : int , / ) -> None : ...
0 commit comments