add tkinter differences for 3.13 (#13156)

Co-authored-by: Akuli <akuviljanen17@gmail.com>
This commit is contained in:
Stephen Morton
2024-12-04 12:39:49 -08:00
committed by GitHub
parent d70fad09dd
commit ebe2558c2c
3 changed files with 195 additions and 16 deletions

View File

@@ -8,9 +8,7 @@
# =======
# TODO: triage these new errors
_tkinter.create
os.path.splitroot
tkinter.Misc.after_info
tkinter.Misc.busy
tkinter.Misc.busy_cget
tkinter.Misc.busy_config
@@ -27,7 +25,6 @@ tkinter.Misc.tk_busy_current
tkinter.Misc.tk_busy_forget
tkinter.Misc.tk_busy_hold
tkinter.Misc.tk_busy_status
tkinter.Wm.wm_attributes
# ====================================

View File

@@ -113,16 +113,31 @@ TK_VERSION: Final[str]
class TkttType:
def deletetimerhandler(self): ...
def create(
screenName: str | None = None,
baseName: str = "",
className: str = "Tk",
interactive: bool = False,
wantobjects: bool = False,
wantTk: bool = True,
sync: bool = False,
use: str | None = None,
/,
): ...
if sys.version_info >= (3, 13):
def create(
screenName: str | None = None,
baseName: str = "",
className: str = "Tk",
interactive: bool = False,
wantobjects: int = 0,
wantTk: bool = True,
sync: bool = False,
use: str | None = None,
/,
): ...
else:
def create(
screenName: str | None = None,
baseName: str = "",
className: str = "Tk",
interactive: bool = False,
wantobjects: bool = False,
wantTk: bool = True,
sync: bool = False,
use: str | None = None,
/,
): ...
def getbusywaitinterval(): ...
def setbusywaitinterval(new_val, /): ...

View File

@@ -403,6 +403,9 @@ class Misc:
# after_idle is essentially partialmethod(after, "idle")
def after_idle(self, func: Callable[[Unpack[_Ts]], object], *args: Unpack[_Ts]) -> str: ...
def after_cancel(self, id: str) -> None: ...
if sys.version_info >= (3, 13):
def after_info(self, id: str | None = None) -> tuple[str, ...]: ...
def bell(self, displayof: Literal[0] | Misc | None = 0) -> None: ...
def clipboard_get(self, *, displayof: Misc = ..., type: str = ...) -> str: ...
def clipboard_clear(self, *, displayof: Misc = ...) -> None: ...
@@ -659,6 +662,38 @@ class YView:
@overload
def yview_scroll(self, number: _ScreenUnits, what: Literal["pixels"]) -> None: ...
if sys.platform == "darwin":
@type_check_only
class _WmAttributes(TypedDict):
alpha: float
fullscreen: bool
modified: bool
notify: bool
titlepath: str
topmost: bool
transparent: bool
type: str # Present, but not actually used on darwin
elif sys.platform == "win32":
@type_check_only
class _WmAttributes(TypedDict):
alpha: float
transparentcolor: str
disabled: bool
fullscreen: bool
toolwindow: bool
topmost: bool
else:
# X11
@type_check_only
class _WmAttributes(TypedDict):
alpha: float
topmost: bool
zoomed: bool
fullscreen: bool
type: str
class Wm:
@overload
def wm_aspect(self, minNumer: int, minDenom: int, maxNumer: int, maxDenom: int) -> None: ...
@@ -667,12 +702,144 @@ class Wm:
self, minNumer: None = None, minDenom: None = None, maxNumer: None = None, maxDenom: None = None
) -> tuple[int, int, int, int] | None: ...
aspect = wm_aspect
if sys.version_info >= (3, 13):
@overload
def wm_attributes(self, *, return_python_dict: Literal[False] = False) -> tuple[Any, ...]: ...
@overload
def wm_attributes(self, *, return_python_dict: Literal[True]) -> _WmAttributes: ...
else:
@overload
def wm_attributes(self) -> tuple[Any, ...]: ...
@overload
def wm_attributes(self) -> tuple[Any, ...]: ...
def wm_attributes(self, option: Literal["-alpha"], /) -> float: ...
@overload
def wm_attributes(self, option: Literal["-fullscreen"], /) -> bool: ...
@overload
def wm_attributes(self, option: Literal["-topmost"], /) -> bool: ...
if sys.platform == "darwin":
@overload
def wm_attributes(self, option: Literal["-modified"], /) -> bool: ...
@overload
def wm_attributes(self, option: Literal["-notify"], /) -> bool: ...
@overload
def wm_attributes(self, option: Literal["-titlepath"], /) -> str: ...
@overload
def wm_attributes(self, option: Literal["-transparent"], /) -> bool: ...
@overload
def wm_attributes(self, option: Literal["-type"], /) -> str: ...
elif sys.platform == "win32":
@overload
def wm_attributes(self, option: Literal["-transparentcolor"], /) -> str: ...
@overload
def wm_attributes(self, option: Literal["-disabled"], /) -> bool: ...
@overload
def wm_attributes(self, option: Literal["-toolwindow"], /) -> bool: ...
else:
# X11
@overload
def wm_attributes(self, option: Literal["-zoomed"], /) -> bool: ...
@overload
def wm_attributes(self, option: Literal["-type"], /) -> str: ...
if sys.version_info >= (3, 13):
@overload
def wm_attributes(self, option: Literal["alpha"], /) -> float: ...
@overload
def wm_attributes(self, option: Literal["fullscreen"], /) -> bool: ...
@overload
def wm_attributes(self, option: Literal["topmost"], /) -> bool: ...
if sys.platform == "darwin":
@overload
def wm_attributes(self, option: Literal["modified"], /) -> bool: ...
@overload
def wm_attributes(self, option: Literal["notify"], /) -> bool: ...
@overload
def wm_attributes(self, option: Literal["titlepath"], /) -> str: ...
@overload
def wm_attributes(self, option: Literal["transparent"], /) -> bool: ...
@overload
def wm_attributes(self, option: Literal["type"], /) -> str: ...
elif sys.platform == "win32":
@overload
def wm_attributes(self, option: Literal["transparentcolor"], /) -> str: ...
@overload
def wm_attributes(self, option: Literal["disabled"], /) -> bool: ...
@overload
def wm_attributes(self, option: Literal["toolwindow"], /) -> bool: ...
else:
# X11
@overload
def wm_attributes(self, option: Literal["zoomed"], /) -> bool: ...
@overload
def wm_attributes(self, option: Literal["type"], /) -> str: ...
@overload
def wm_attributes(self, option: str, /): ...
@overload
def wm_attributes(self, option: str, value, /, *__other_option_value_pairs: Any) -> None: ...
def wm_attributes(self, option: Literal["-alpha"], value: float, /) -> Literal[""]: ...
@overload
def wm_attributes(self, option: Literal["-fullscreen"], value: bool, /) -> Literal[""]: ...
@overload
def wm_attributes(self, option: Literal["-topmost"], value: bool, /) -> Literal[""]: ...
if sys.platform == "darwin":
@overload
def wm_attributes(self, option: Literal["-modified"], value: bool, /) -> Literal[""]: ...
@overload
def wm_attributes(self, option: Literal["-notify"], value: bool, /) -> Literal[""]: ...
@overload
def wm_attributes(self, option: Literal["-titlepath"], value: str, /) -> Literal[""]: ...
@overload
def wm_attributes(self, option: Literal["-transparent"], value: bool, /) -> Literal[""]: ...
elif sys.platform == "win32":
@overload
def wm_attributes(self, option: Literal["-transparentcolor"], value: str, /) -> Literal[""]: ...
@overload
def wm_attributes(self, option: Literal["-disabled"], value: bool, /) -> Literal[""]: ...
@overload
def wm_attributes(self, option: Literal["-toolwindow"], value: bool, /) -> Literal[""]: ...
else:
# X11
@overload
def wm_attributes(self, option: Literal["-zoomed"], value: bool, /) -> Literal[""]: ...
@overload
def wm_attributes(self, option: Literal["-type"], value: str, /) -> Literal[""]: ...
@overload
def wm_attributes(self, option: str, value, /, *__other_option_value_pairs: Any) -> Literal[""]: ...
if sys.version_info >= (3, 13):
if sys.platform == "darwin":
@overload
def wm_attributes(
self,
*,
alpha: float = ...,
fullscreen: bool = ...,
modified: bool = ...,
notify: bool = ...,
titlepath: str = ...,
topmost: bool = ...,
transparent: bool = ...,
) -> None: ...
elif sys.platform == "win32":
@overload
def wm_attributes(
self,
*,
alpha: float = ...,
transparentcolor: str = ...,
disabled: bool = ...,
fullscreen: bool = ...,
toolwindow: bool = ...,
topmost: bool = ...,
) -> None: ...
else:
# X11
@overload
def wm_attributes(
self, *, alpha: float = ..., topmost: bool = ..., zoomed: bool = ..., fullscreen: bool = ..., type: str = ...
) -> None: ...
attributes = wm_attributes
def wm_client(self, name: str | None = None) -> str: ...
client = wm_client