max, min overloads with Protocol: fix #4051 (#4227)

This commit is contained in:
Luciano Ramalho
2020-06-19 07:37:43 -03:00
committed by GitHub
parent 32c638cc88
commit 1350e710cc
2 changed files with 36 additions and 12 deletions

View File

@@ -1356,11 +1356,17 @@ else:
*iterables: Iterable[Any]) -> List[_S]: ...
if sys.version_info >= (3,):
@overload
def max(__arg1: _T, __arg2: _T, *_args: _T, key: Callable[[_T], Any] = ...) -> _T: ...
def max(__arg1: _LT, __arg2: _LT, *_args: _LT, key: None = ...) -> _LT: ...
@overload
def max(__iterable: Iterable[_T], *, key: Callable[[_T], Any] = ...) -> _T: ...
def max(__arg1: _T, __arg2: _T, *_args: _T, key: Callable[[_T], _LT]) -> _T: ...
@overload
def max(__iterable: Iterable[_T], *, key: Callable[[_T], Any] = ..., default: _VT) -> Union[_T, _VT]: ...
def max(__iterable: Iterable[_LT], *, key: None = ...) -> _LT: ...
@overload
def max(__iterable: Iterable[_T], *, key: Callable[[_T], _LT]) -> _T: ...
@overload
def max(__iterable: Iterable[_LT], *, key: None = ..., default: _T) -> Union[_LT, _T]: ...
@overload
def max(__iterable: Iterable[_T1], *, key: Callable[[_T1], _LT], default: _T2) -> Union[_T1, _T2]: ...
else:
@overload
def max(__arg1: _T, __arg2: _T, *_args: _T, key: Callable[[_T], Any] = ...) -> _T: ...
@@ -1368,11 +1374,17 @@ else:
def max(__iterable: Iterable[_T], *, key: Callable[[_T], Any] = ...) -> _T: ...
if sys.version_info >= (3,):
@overload
def min(__arg1: _T, __arg2: _T, *_args: _T, key: Callable[[_T], Any] = ...) -> _T: ...
def min(__arg1: _LT, __arg2: _LT, *_args: _LT, key: None = ...) -> _LT: ...
@overload
def min(__iterable: Iterable[_T], *, key: Callable[[_T], Any] = ...) -> _T: ...
def min(__arg1: _T, __arg2: _T, *_args: _T, key: Callable[[_T], _LT]) -> _T: ...
@overload
def min(__iterable: Iterable[_T], *, key: Callable[[_T], Any] = ..., default: _VT) -> Union[_T, _VT]: ...
def min(__iterable: Iterable[_LT], *, key: None = ...) -> _LT: ...
@overload
def min(__iterable: Iterable[_T], *, key: Callable[[_T], _LT]) -> _T: ...
@overload
def min(__iterable: Iterable[_LT], *, key: None = ..., default: _T) -> Union[_LT, _T]: ...
@overload
def min(__iterable: Iterable[_T1], *, key: Callable[[_T1], _LT], default: _T2) -> Union[_T1, _T2]: ...
else:
@overload
def min(__arg1: _T, __arg2: _T, *_args: _T, key: Callable[[_T], Any] = ...) -> _T: ...