Skip to content

Commit 25bc534

Browse files
authored
[_operator] Type mul and remove Anys that can be improved (#15598)
1 parent 2d252ab commit 25bc534

File tree

2 files changed

+34
-28
lines changed

2 files changed

+34
-28
lines changed

pyrightconfig.stricter.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,15 @@
99
// test cases use a custom pyrightconfig file
1010
"**/@tests/test_cases",
1111
"stdlib/__main__.pyi",
12+
"stdlib/_operator.pyi",
1213
"stdlib/_tkinter.pyi",
1314
"stdlib/distutils/cmd.pyi",
1415
"stdlib/distutils/command",
1516
"stdlib/distutils/dist.pyi",
1617
"stdlib/encodings/__init__.pyi",
1718
"stdlib/lib2to3/fixes/*.pyi",
1819
"stdlib/numbers.pyi",
20+
"stdlib/operator.pyi",
1921
"stdlib/tkinter/__init__.pyi",
2022
"stdlib/tkinter/dialog.pyi",
2123
"stdlib/tkinter/filedialog.pyi",

stdlib/_operator.pyi

Lines changed: 32 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import sys
2-
from _typeshed import SupportsGetItem
2+
from _typeshed import SupportsGetItem, SupportsMul, SupportsRMul
33
from collections.abc import Callable, Container, Iterable, MutableMapping, MutableSequence, Sequence
44
from operator import attrgetter as attrgetter, itemgetter as itemgetter, methodcaller as methodcaller
55
from typing import Any, AnyStr, Protocol, SupportsAbs, SupportsIndex, TypeVar, overload, type_check_only
@@ -8,6 +8,7 @@ from typing_extensions import ParamSpec, TypeAlias, TypeIs
88
_R = TypeVar("_R")
99
_T = TypeVar("_T")
1010
_T_co = TypeVar("_T_co", covariant=True)
11+
_T_contra = TypeVar("_T_contra", contravariant=True)
1112
_K = TypeVar("_K")
1213
_V = TypeVar("_V")
1314
_P = ParamSpec("_P")
@@ -58,24 +59,27 @@ def truth(a: object, /) -> bool: ...
5859
def is_(a: object, b: object, /) -> bool: ...
5960
def is_not(a: object, b: object, /) -> bool: ...
6061
def abs(a: SupportsAbs[_T], /) -> _T: ...
61-
def add(a: Any, b: Any, /) -> Any: ...
62-
def and_(a: Any, b: Any, /) -> Any: ...
63-
def floordiv(a: Any, b: Any, /) -> Any: ...
62+
def add(a, b, /): ...
63+
def and_(a, b, /): ...
64+
def floordiv(a, b, /): ...
6465
def index(a: SupportsIndex, /) -> int: ...
6566
def inv(a: _SupportsInversion[_T_co], /) -> _T_co: ...
6667
def invert(a: _SupportsInversion[_T_co], /) -> _T_co: ...
67-
def lshift(a: Any, b: Any, /) -> Any: ...
68-
def mod(a: Any, b: Any, /) -> Any: ...
69-
def mul(a: Any, b: Any, /) -> Any: ...
70-
def matmul(a: Any, b: Any, /) -> Any: ...
68+
def lshift(a, b, /): ...
69+
def mod(a, b, /): ...
70+
@overload
71+
def mul(a: SupportsMul[_T_contra, _T_co], b: _T_contra, /) -> _T_co: ...
72+
@overload
73+
def mul(a: _T_contra, b: SupportsRMul[_T_contra, _T_co], /) -> _T_co: ...
74+
def matmul(a, b, /): ...
7175
def neg(a: _SupportsNeg[_T_co], /) -> _T_co: ...
72-
def or_(a: Any, b: Any, /) -> Any: ...
76+
def or_(a, b, /): ...
7377
def pos(a: _SupportsPos[_T_co], /) -> _T_co: ...
74-
def pow(a: Any, b: Any, /) -> Any: ...
75-
def rshift(a: Any, b: Any, /) -> Any: ...
76-
def sub(a: Any, b: Any, /) -> Any: ...
77-
def truediv(a: Any, b: Any, /) -> Any: ...
78-
def xor(a: Any, b: Any, /) -> Any: ...
78+
def pow(a, b, /): ...
79+
def rshift(a, b, /): ...
80+
def sub(a, b, /): ...
81+
def truediv(a, b, /): ...
82+
def xor(a, b, /): ...
7983
def concat(a: Sequence[_T], b: Sequence[_T], /) -> Sequence[_T]: ...
8084
def contains(a: Container[object], b: object, /) -> bool: ...
8185
def countOf(a: Iterable[object], b: object, /) -> int: ...
@@ -97,20 +101,20 @@ def setitem(a: MutableSequence[_T], b: slice[int | None], c: Sequence[_T], /) ->
97101
@overload
98102
def setitem(a: MutableMapping[_K, _V], b: _K, c: _V, /) -> None: ...
99103
def length_hint(obj: object, default: int = 0, /) -> int: ...
100-
def iadd(a: Any, b: Any, /) -> Any: ...
101-
def iand(a: Any, b: Any, /) -> Any: ...
102-
def iconcat(a: Any, b: Any, /) -> Any: ...
103-
def ifloordiv(a: Any, b: Any, /) -> Any: ...
104-
def ilshift(a: Any, b: Any, /) -> Any: ...
105-
def imod(a: Any, b: Any, /) -> Any: ...
106-
def imul(a: Any, b: Any, /) -> Any: ...
107-
def imatmul(a: Any, b: Any, /) -> Any: ...
108-
def ior(a: Any, b: Any, /) -> Any: ...
109-
def ipow(a: Any, b: Any, /) -> Any: ...
110-
def irshift(a: Any, b: Any, /) -> Any: ...
111-
def isub(a: Any, b: Any, /) -> Any: ...
112-
def itruediv(a: Any, b: Any, /) -> Any: ...
113-
def ixor(a: Any, b: Any, /) -> Any: ...
104+
def iadd(a, b, /): ...
105+
def iand(a, b, /): ...
106+
def iconcat(a, b, /): ...
107+
def ifloordiv(a, b, /): ...
108+
def ilshift(a, b, /): ...
109+
def imod(a, b, /): ...
110+
def imul(a, b, /): ...
111+
def imatmul(a, b, /): ...
112+
def ior(a, b, /): ...
113+
def ipow(a, b, /): ...
114+
def irshift(a, b, /): ...
115+
def isub(a, b, /): ...
116+
def itruediv(a, b, /): ...
117+
def ixor(a, b, /): ...
114118

115119
if sys.version_info >= (3, 11):
116120
def call(obj: Callable[_P, _R], /, *args: _P.args, **kwargs: _P.kwargs) -> _R: ...

0 commit comments

Comments
 (0)