@@ -3,8 +3,8 @@ import tkinter
3
3
from _typeshed import MaybeNone
4
4
from collections .abc import Callable
5
5
from tkinter .font import _FontDescription
6
- from typing import Any , Literal , TypedDict , overload
7
- from typing_extensions import TypeAlias
6
+ from typing import Any , Literal , TypedDict , overload , Iterable
7
+ from typing_extensions import TypeAlias , Unpack
8
8
9
9
__all__ = [
10
10
"Button" ,
@@ -35,7 +35,7 @@ __all__ = [
35
35
]
36
36
37
37
def tclobjs_to_py (adict : dict [Any , Any ]) -> dict [Any , Any ]: ...
38
- def setup_master (master = None ): ...
38
+ def setup_master (master : tkinter . Misc | None = None ): ...
39
39
40
40
_Padding : TypeAlias = (
41
41
tkinter ._ScreenUnits
@@ -47,15 +47,26 @@ _Padding: TypeAlias = (
47
47
48
48
# from ttk_widget (aka ttk::widget) manual page, differs from tkinter._Compound
49
49
_TtkCompound : TypeAlias = Literal ["" , "text" , "image" , tkinter ._Compound ]
50
+ # Last item (option value to apply) varies between different options so use Any.
51
+ # This doesn't have to be a tuple so also add a less precise Iterable option.
52
+ _Statespec : TypeAlias = tuple [Unpack [tuple [str , ...]], Any ] | Iterable [str | Any ]
50
53
51
54
class Style :
52
55
master : tkinter .Misc
53
56
tk : _tkinter .TkappType
54
57
def __init__ (self , master : tkinter .Misc | None = None ) -> None : ...
55
- def configure (self , style , query_opt = None , ** kw ): ...
56
- def map (self , style , query_opt = None , ** kw ): ...
57
58
def lookup (self , style , option , state = None , default = None ): ...
58
59
def layout (self , style , layoutspec = None ): ...
60
+ @overload
61
+ def configure (self , style : str ) -> dict [str , Any ]: ...
62
+ @overload
63
+ def configure (self , style : str , query_opt : str , ** kw : Any ) -> Any : ...
64
+ @overload
65
+ def configure (self , style : str , query_opt : None = None , ** kw : Any ) -> None : ...
66
+ @overload
67
+ def map (self , style : str , query_opt : str ) -> _Statespec : ...
68
+ @overload
69
+ def map (self , style : str , ** kw : Iterable [_Statespec ]) -> dict [str , _Statespec ]: ...
59
70
def element_create (self , elementname , etype , * args , ** kw ) -> None : ...
60
71
def element_names (self ): ...
61
72
def element_options (self , elementname ): ...
0 commit comments