Skip to content

Commit 4deef75

Browse files
stdlib: Fix more signatures with unrepresentable defaults (#11007)
1 parent b893289 commit 4deef75

File tree

6 files changed

+48
-25
lines changed

6 files changed

+48
-25
lines changed

stdlib/_warnings.pyi

+27-4
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,36 @@
1+
import sys
12
from typing import Any, overload
23

34
_defaultaction: str
45
_onceregistry: dict[Any, Any]
56
filters: list[tuple[str, str | None, type[Warning], str | None, int]]
67

7-
@overload
8-
def warn(message: str, category: type[Warning] | None = None, stacklevel: int = 1, source: Any | None = None) -> None: ...
9-
@overload
10-
def warn(message: Warning, category: Any = None, stacklevel: int = 1, source: Any | None = None) -> None: ...
8+
if sys.version_info >= (3, 12):
9+
@overload
10+
def warn(
11+
message: str,
12+
category: type[Warning] | None = None,
13+
stacklevel: int = 1,
14+
source: Any | None = None,
15+
*,
16+
skip_file_prefixes: tuple[str, ...] = (),
17+
) -> None: ...
18+
@overload
19+
def warn(
20+
message: Warning,
21+
category: Any = None,
22+
stacklevel: int = 1,
23+
source: Any | None = None,
24+
*,
25+
skip_file_prefixes: tuple[str, ...] = (),
26+
) -> None: ...
27+
28+
else:
29+
@overload
30+
def warn(message: str, category: type[Warning] | None = None, stacklevel: int = 1, source: Any | None = None) -> None: ...
31+
@overload
32+
def warn(message: Warning, category: Any = None, stacklevel: int = 1, source: Any | None = None) -> None: ...
33+
1134
@overload
1235
def warn_explicit(
1336
message: str,

stdlib/builtins.pyi

+6-6
Original file line numberDiff line numberDiff line change
@@ -1434,9 +1434,9 @@ def getattr(__o: object, __name: str, __default: None) -> Any | None: ...
14341434
@overload
14351435
def getattr(__o: object, __name: str, __default: bool) -> Any | bool: ...
14361436
@overload
1437-
def getattr(__o: object, name: str, __default: list[Any]) -> Any | list[Any]: ...
1437+
def getattr(__o: object, __name: str, __default: list[Any]) -> Any | list[Any]: ...
14381438
@overload
1439-
def getattr(__o: object, name: str, __default: dict[Any, Any]) -> Any | dict[Any, Any]: ...
1439+
def getattr(__o: object, __name: str, __default: dict[Any, Any]) -> Any | dict[Any, Any]: ...
14401440
@overload
14411441
def getattr(__o: object, __name: str, __default: _T) -> Any | _T: ...
14421442
def globals() -> dict[str, Any]: ...
@@ -1451,13 +1451,13 @@ class _GetItemIterable(Protocol[_T_co]):
14511451
def __getitem__(self, __i: int) -> _T_co: ...
14521452

14531453
@overload
1454-
def iter(__iterable: SupportsIter[_SupportsNextT]) -> _SupportsNextT: ...
1454+
def iter(__object: SupportsIter[_SupportsNextT]) -> _SupportsNextT: ...
14551455
@overload
1456-
def iter(__iterable: _GetItemIterable[_T]) -> Iterator[_T]: ...
1456+
def iter(__object: _GetItemIterable[_T]) -> Iterator[_T]: ...
14571457
@overload
1458-
def iter(__function: Callable[[], _T | None], __sentinel: None) -> Iterator[_T]: ...
1458+
def iter(__object: Callable[[], _T | None], __sentinel: None) -> Iterator[_T]: ...
14591459
@overload
1460-
def iter(__function: Callable[[], _T], __sentinel: object) -> Iterator[_T]: ...
1460+
def iter(__object: Callable[[], _T], __sentinel: object) -> Iterator[_T]: ...
14611461

14621462
# Keep this alias in sync with unittest.case._ClassInfo
14631463
if sys.version_info >= (3, 10):

stdlib/codecs.pyi

+2-2
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ class StreamWriter(Codec):
213213
def reset(self) -> None: ...
214214
def __enter__(self) -> Self: ...
215215
def __exit__(self, type: type[BaseException] | None, value: BaseException | None, tb: types.TracebackType | None) -> None: ...
216-
def __getattr__(self, name: str, getattr: Callable[[str], Any] = ...) -> Any: ...
216+
def __getattr__(self, name: str, getattr: Callable[[Any, str], Any] = ...) -> Any: ...
217217

218218
class StreamReader(Codec):
219219
stream: _ReadableStream
@@ -227,7 +227,7 @@ class StreamReader(Codec):
227227
def __exit__(self, type: type[BaseException] | None, value: BaseException | None, tb: types.TracebackType | None) -> None: ...
228228
def __iter__(self) -> Self: ...
229229
def __next__(self) -> str: ...
230-
def __getattr__(self, name: str, getattr: Callable[[str], Any] = ...) -> Any: ...
230+
def __getattr__(self, name: str, getattr: Callable[[Any, str], Any] = ...) -> Any: ...
231231

232232
# Doesn't actually inherit from TextIO, but wraps a BinaryIO to provide text reading and writing
233233
# and delegates attributes to the underlying binary stream with __getattr__.

stdlib/collections/__init__.pyi

+7
Original file line numberDiff line numberDiff line change
@@ -372,6 +372,13 @@ class OrderedDict(dict[_KT, _VT], Reversible[_KT], Generic[_KT, _VT]):
372372
def setdefault(self: OrderedDict[_KT, _T | None], key: _KT, default: None = None) -> _T | None: ...
373373
@overload
374374
def setdefault(self, key: _KT, default: _VT) -> _VT: ...
375+
# Same as dict.pop, but accepts keyword arguments
376+
@overload
377+
def pop(self, key: _KT) -> _VT: ...
378+
@overload
379+
def pop(self, key: _KT, default: _VT) -> _VT: ...
380+
@overload
381+
def pop(self, key: _KT, default: _T) -> _VT | _T: ...
375382
def __eq__(self, __value: object) -> bool: ...
376383
if sys.version_info >= (3, 9):
377384
@overload

stdlib/contextvars.pyi

+4-11
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,10 @@ class ContextVar(Generic[_T]):
2323
def name(self) -> str: ...
2424
@overload
2525
def get(self) -> _T: ...
26-
if sys.version_info >= (3, 8):
27-
@overload
28-
def get(self, default: _T) -> _T: ...
29-
@overload
30-
def get(self, default: _D) -> _D | _T: ...
31-
else:
32-
@overload
33-
def get(self, __default: _T) -> _T: ...
34-
@overload
35-
def get(self, __default: _D) -> _D | _T: ...
36-
26+
@overload
27+
def get(self, __default: _T) -> _T: ...
28+
@overload
29+
def get(self, __default: _D) -> _D | _T: ...
3730
def set(self, __value: _T) -> Token[_T]: ...
3831
def reset(self, __token: Token[_T]) -> None: ...
3932
if sys.version_info >= (3, 9):

stdlib/sqlite3/dbapi2.pyi

+2-2
Original file line numberDiff line numberDiff line change
@@ -349,9 +349,9 @@ class Connection:
349349
def create_function(self, name: str, num_params: int, func: Callable[..., _SqliteData] | None) -> None: ...
350350

351351
@overload
352-
def cursor(self, cursorClass: None = None) -> Cursor: ...
352+
def cursor(self, factory: None = None) -> Cursor: ...
353353
@overload
354-
def cursor(self, cursorClass: Callable[[Connection], _CursorT]) -> _CursorT: ...
354+
def cursor(self, factory: Callable[[Connection], _CursorT]) -> _CursorT: ...
355355
def execute(self, __sql: str, __parameters: _Parameters = ...) -> Cursor: ...
356356
def executemany(self, __sql: str, __parameters: Iterable[_Parameters]) -> Cursor: ...
357357
def executescript(self, __sql_script: str) -> Cursor: ...

0 commit comments

Comments
 (0)