Skip to content

Commit f1400bb

Browse files
authored
Merge branch 'main' into tkinter-remove-typealiases
2 parents f0c47cc + c922749 commit f1400bb

55 files changed

Lines changed: 412 additions & 236 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/daily.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ env:
3030
jobs:
3131
stubtest-stdlib:
3232
name: "stubtest: stdlib"
33-
if: ${{ github.repository == 'python/typeshed' || github.event_name == 'workflow_dispatch' }}
33+
if: ${{ github.repository == 'python/typeshed' || github.event_name != 'schedule' }}
3434
runs-on: ${{ matrix.os }}
3535
strategy:
3636
matrix:
@@ -58,7 +58,7 @@ jobs:
5858

5959
stubtest-third-party:
6060
name: "stubtest: third party"
61-
if: ${{ github.repository == 'python/typeshed' || github.event_name == 'workflow_dispatch' }}
61+
if: ${{ github.repository == 'python/typeshed' || github.event_name != 'schedule' }}
6262
runs-on: ${{ matrix.os }}
6363
strategy:
6464
matrix:
@@ -110,7 +110,7 @@ jobs:
110110
111111
stub-uploader:
112112
name: stub_uploader tests
113-
if: ${{ github.repository == 'python/typeshed' || github.event_name == 'workflow_dispatch' }}
113+
if: ${{ github.repository == 'python/typeshed' || github.event_name != 'schedule' }}
114114
runs-on: ubuntu-latest
115115
steps:
116116
- name: Checkout typeshed

stdlib/_tkinter.pyi

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -54,34 +54,34 @@ _TkinterTraceFunc: TypeAlias = Callable[[tuple[str, ...]], object]
5454
@final
5555
class TkappType:
5656
# Please keep in sync with tkinter.Tk
57-
def adderrorinfo(self, msg, /): ...
57+
def adderrorinfo(self, msg: str, /): ...
5858
def call(self, command: Any, /, *args: Any) -> Any: ...
59-
def createcommand(self, name, func, /): ...
59+
def createcommand(self, name: str, func, /): ...
6060
if sys.platform != "win32":
61-
def createfilehandler(self, file, mask, func, /): ...
62-
def deletefilehandler(self, file, /): ...
61+
def createfilehandler(self, file, mask: int, func, /): ...
62+
def deletefilehandler(self, file, /) -> None: ...
6363

64-
def createtimerhandler(self, milliseconds, func, /): ...
65-
def deletecommand(self, name, /): ...
64+
def createtimerhandler(self, milliseconds: int, func, /): ...
65+
def deletecommand(self, name: str, /): ...
6666
def dooneevent(self, flags: int = 0, /): ...
6767
def eval(self, script: str, /) -> str: ...
68-
def evalfile(self, fileName, /): ...
69-
def exprboolean(self, s, /): ...
70-
def exprdouble(self, s, /): ...
71-
def exprlong(self, s, /): ...
72-
def exprstring(self, s, /): ...
73-
def getboolean(self, arg, /): ...
74-
def getdouble(self, arg, /): ...
75-
def getint(self, arg, /): ...
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, /): ...
73+
def getboolean(self, arg, /) -> bool: ...
74+
def getdouble(self, arg, /) -> float: ...
75+
def getint(self, arg, /) -> int: ...
7676
def getvar(self, *args, **kwargs): ...
7777
def globalgetvar(self, *args, **kwargs): ...
7878
def globalsetvar(self, *args, **kwargs): ...
7979
def globalunsetvar(self, *args, **kwargs): ...
8080
def interpaddr(self) -> int: ...
8181
def loadtk(self) -> None: ...
82-
def mainloop(self, threshold: int = 0, /): ...
83-
def quit(self): ...
84-
def record(self, script, /): ...
82+
def mainloop(self, threshold: int = 0, /) -> None: ...
83+
def quit(self) -> None: ...
84+
def record(self, script: str, /): ...
8585
def setvar(self, *ags, **kwargs): ...
8686
if sys.version_info < (3, 11):
8787
@deprecated("Deprecated since Python 3.9; removed in Python 3.11. Use `splitlist()` instead.")
@@ -90,7 +90,7 @@ class TkappType:
9090
def splitlist(self, arg, /): ...
9191
def unsetvar(self, *args, **kwargs): ...
9292
def wantobjects(self, *args, **kwargs): ...
93-
def willdispatch(self): ...
93+
def willdispatch(self) -> None: ...
9494
if sys.version_info >= (3, 12):
9595
def gettrace(self, /) -> _TkinterTraceFunc | None: ...
9696
def settrace(self, func: _TkinterTraceFunc | None, /) -> None: ...
@@ -140,5 +140,5 @@ else:
140140
/,
141141
): ...
142142

143-
def getbusywaitinterval(): ...
144-
def setbusywaitinterval(new_val, /): ...
143+
def getbusywaitinterval() -> int: ...
144+
def setbusywaitinterval(new_val: int, /) -> None: ...

stdlib/multiprocessing/shared_memory.pyi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class SharedMemory:
1515
def __init__(self, name: str | None = None, create: bool = False, size: int = 0) -> None: ...
1616

1717
@property
18-
def buf(self) -> memoryview: ...
18+
def buf(self) -> memoryview | None: ...
1919
@property
2020
def name(self) -> str: ...
2121
@property

stdlib/tkinter/__init__.pyi

Lines changed: 33 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -320,12 +320,12 @@ class Variable:
320320
@deprecated("Deprecated since Python 3.14. Use `trace_remove()` instead.")
321321
def trace_vdelete(self, mode, cbname) -> None: ...
322322
@deprecated("Deprecated since Python 3.14. Use `trace_info()` instead.")
323-
def trace_vinfo(self): ...
323+
def trace_vinfo(self) -> list[Incomplete]: ...
324324
else:
325325
def trace(self, mode, callback) -> str: ...
326326
def trace_variable(self, mode, callback) -> str: ...
327327
def trace_vdelete(self, mode, cbname) -> None: ...
328-
def trace_vinfo(self): ...
328+
def trace_vinfo(self) -> list[Incomplete]: ...
329329

330330
def __eq__(self, other: object) -> bool: ...
331331
def __del__(self) -> None: ...
@@ -360,7 +360,7 @@ def mainloop(n: int = 0) -> None: ...
360360
getint = int
361361
getdouble = float
362362

363-
def getboolean(s): ...
363+
def getboolean(s) -> bool: ...
364364

365365
_Ts = TypeVarTuple("_Ts")
366366

@@ -390,9 +390,9 @@ class Misc:
390390
def wait_visibility(self, window: Misc | None = None) -> None: ...
391391
def setvar(self, name: str = "PY_VAR", value: str = "1") -> None: ...
392392
def getvar(self, name: str = "PY_VAR"): ...
393-
def getint(self, s): ...
394-
def getdouble(self, s): ...
395-
def getboolean(self, s): ...
393+
def getint(self, s) -> int: ...
394+
def getdouble(self, s) -> float: ...
395+
def getboolean(self, s) -> bool: ...
396396
def focus_set(self) -> None: ...
397397
focus = focus_set
398398
def focus_force(self) -> None: ...
@@ -668,7 +668,7 @@ class XView:
668668
@overload
669669
def xview(self) -> tuple[float, float]: ...
670670
@overload
671-
def xview(self, *args): ...
671+
def xview(self, *args) -> None: ...
672672
def xview_moveto(self, fraction: float) -> None: ...
673673
@overload
674674
def xview_scroll(self, number: int, what: Literal["units", "pages"]) -> None: ...
@@ -679,7 +679,7 @@ class YView:
679679
@overload
680680
def yview(self) -> tuple[float, float]: ...
681681
@overload
682-
def yview(self, *args): ...
682+
def yview(self, *args) -> None: ...
683683
def yview_moveto(self, fraction: float) -> None: ...
684684
@overload
685685
def yview_scroll(self, number: int, what: Literal["units", "pages"]) -> None: ...
@@ -1005,35 +1005,35 @@ class Tk(Misc, Wm):
10051005
# Tk has __getattr__ so that tk_instance.foo falls back to tk_instance.tk.foo
10061006
# Please keep in sync with _tkinter.TkappType.
10071007
# Some methods are intentionally missing because they are inherited from Misc instead.
1008-
def adderrorinfo(self, msg, /): ...
1008+
def adderrorinfo(self, msg: str, /): ...
10091009
def call(self, command: Any, /, *args: Any) -> Any: ...
1010-
def createcommand(self, name, func, /): ...
1010+
def createcommand(self, name: str, func, /): ...
10111011
if sys.platform != "win32":
1012-
def createfilehandler(self, file, mask, func, /): ...
1013-
def deletefilehandler(self, file, /): ...
1012+
def createfilehandler(self, file, mask: int, func, /): ...
1013+
def deletefilehandler(self, file, /) -> None: ...
10141014

1015-
def createtimerhandler(self, milliseconds, func, /): ...
1016-
def dooneevent(self, flags: int = ..., /): ...
1015+
def createtimerhandler(self, milliseconds: int, func, /): ...
1016+
def dooneevent(self, flags: int = 0, /): ...
10171017
def eval(self, script: str, /) -> str: ...
1018-
def evalfile(self, fileName, /): ...
1019-
def exprboolean(self, s, /): ...
1020-
def exprdouble(self, s, /): ...
1021-
def exprlong(self, s, /): ...
1022-
def exprstring(self, s, /): ...
1018+
def evalfile(self, fileName: str, /): ...
1019+
def exprboolean(self, s: str, /): ...
1020+
def exprdouble(self, s: str, /): ...
1021+
def exprlong(self, s: str, /): ...
1022+
def exprstring(self, s: str, /): ...
10231023
def globalgetvar(self, *args, **kwargs): ...
10241024
def globalsetvar(self, *args, **kwargs): ...
10251025
def globalunsetvar(self, *args, **kwargs): ...
10261026
def interpaddr(self) -> int: ...
10271027
def loadtk(self) -> None: ...
1028-
def record(self, script, /): ...
1028+
def record(self, script: str, /): ...
10291029
if sys.version_info < (3, 11):
10301030
@deprecated("Deprecated since Python 3.9; removed in Python 3.11. Use `splitlist()` instead.")
10311031
def split(self, arg, /): ...
10321032

10331033
def splitlist(self, arg, /): ...
10341034
def unsetvar(self, *args, **kwargs): ...
10351035
def wantobjects(self, *args, **kwargs): ...
1036-
def willdispatch(self): ...
1036+
def willdispatch(self) -> None: ...
10371037

10381038
def Tcl(screenName: str | None = None, baseName: str | None = None, className: str = "Tk", useTk: bool = False) -> Tk: ...
10391039

@@ -1157,8 +1157,8 @@ class Grid:
11571157

11581158
class BaseWidget(Misc):
11591159
master: Misc
1160-
widgetName: Incomplete
1161-
def __init__(self, master, widgetName, cnf={}, kw={}, extra=()) -> None: ...
1160+
widgetName: str
1161+
def __init__(self, master, widgetName: str, cnf={}, kw={}, extra=()) -> None: ...
11621162
def destroy(self) -> None: ...
11631163

11641164
# This class represents any widget except Toplevel or Tk.
@@ -3628,7 +3628,6 @@ class _setit:
36283628

36293629
# manual page: tk_optionMenu
36303630
class OptionMenu(Menubutton):
3631-
widgetName: Incomplete
36323631
menuname: Incomplete
36333632
def __init__(
36343633
# differs from other widgets
@@ -4067,19 +4066,19 @@ class PanedWindow(Widget):
40674066
config = configure
40684067
def add(self, child: Widget, **kw) -> None: ...
40694068
def remove(self, child) -> None: ...
4070-
forget: Incomplete
4069+
forget = remove # type: ignore[assignment]
40714070
def identify(self, x: int, y: int): ...
4072-
def proxy(self, *args): ...
4073-
def proxy_coord(self): ...
4074-
def proxy_forget(self): ...
4075-
def proxy_place(self, x, y): ...
4076-
def sash(self, *args): ...
4077-
def sash_coord(self, index): ...
4078-
def sash_mark(self, index): ...
4079-
def sash_place(self, index, x, y): ...
4071+
def proxy(self, *args) -> tuple[Incomplete, ...]: ...
4072+
def proxy_coord(self) -> tuple[Incomplete, ...]: ...
4073+
def proxy_forget(self) -> tuple[Incomplete, ...]: ...
4074+
def proxy_place(self, x, y) -> tuple[Incomplete, ...]: ...
4075+
def sash(self, *args) -> tuple[Incomplete, ...]: ...
4076+
def sash_coord(self, index) -> tuple[Incomplete, ...]: ...
4077+
def sash_mark(self, index) -> tuple[Incomplete, ...]: ...
4078+
def sash_place(self, index, x, y) -> tuple[Incomplete, ...]: ...
40804079
def panecget(self, child, option): ...
40814080
def paneconfigure(self, tagOrId, cnf=None, **kw): ...
4082-
paneconfig: Incomplete
4081+
paneconfig = paneconfigure
40834082
def panes(self): ...
40844083

40854084
def _test() -> None: ...
Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
11
# DictCursorMixin changes method types of inherited classes, but doesn't contain much at runtime
22
pymysql.cursors.DictCursorMixin.__iter__
33
pymysql.cursors.DictCursorMixin.fetch[a-z]*
4-
5-
# FIXME: new stubtest errors from mypy v1.18.1 that need to be looked at more closely.
6-
# See https://github.com/python/typeshed/pull/14699
7-
pymysql.connections.Connection.__init__
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
from typing_extensions import assert_type
2+
3+
from pymysql.connections import Connection
4+
from pymysql.cursors import Cursor
5+
6+
7+
class MyCursor(Cursor):
8+
pass
9+
10+
11+
assert_type(Connection(), Connection[Cursor])
12+
assert_type(Connection(cursorclass=Cursor), Connection[Cursor])
13+
assert_type(Connection(cursorclass=MyCursor), Connection[MyCursor])
14+
15+
Connection(cursorclass=None) # type: ignore

0 commit comments

Comments
 (0)