bisect: elements of a are bounded by SupportsRichComparison (#7111)

This commit is contained in:
Ilya Kulakov
2022-02-11 17:12:00 -08:00
committed by GitHub
parent 84b5e73396
commit d014533f36

View File

@@ -1,12 +1,14 @@
import sys
from _typeshed import SupportsRichComparison, SupportsRichComparisonT
from _typeshed import SupportsRichComparisonT
from typing import Callable, MutableSequence, Sequence, TypeVar, overload
_T = TypeVar("_T")
if sys.version_info >= (3, 10):
@overload
def bisect_left(a: Sequence[_T], x: _T, lo: int = ..., hi: int | None = ..., *, key: None = ...) -> int: ...
def bisect_left(
a: Sequence[SupportsRichComparisonT], x: SupportsRichComparisonT, lo: int = ..., hi: int | None = ..., *, key: None = ...
) -> int: ...
@overload
def bisect_left(
a: Sequence[_T],
@@ -17,7 +19,9 @@ if sys.version_info >= (3, 10):
key: Callable[[_T], SupportsRichComparisonT] = ...,
) -> int: ...
@overload
def bisect_right(a: Sequence[_T], x: _T, lo: int = ..., hi: int | None = ..., *, key: None = ...) -> int: ...
def bisect_right(
a: Sequence[SupportsRichComparisonT], x: SupportsRichComparisonT, lo: int = ..., hi: int | None = ..., *, key: None = ...
) -> int: ...
@overload
def bisect_right(
a: Sequence[_T],
@@ -27,25 +31,43 @@ if sys.version_info >= (3, 10):
*,
key: Callable[[_T], SupportsRichComparisonT] = ...,
) -> int: ...
@overload
def insort_left(
a: MutableSequence[_T],
x: _T,
a: MutableSequence[SupportsRichComparisonT],
x: SupportsRichComparisonT,
lo: int = ...,
hi: int | None = ...,
*,
key: Callable[[_T], SupportsRichComparison] | None = ...,
key: None = ...,
) -> None: ...
@overload
def insort_left(
a: MutableSequence[_T], x: _T, lo: int = ..., hi: int | None = ..., *, key: Callable[[_T], SupportsRichComparisonT] = ...
) -> None: ...
@overload
def insort_right(
a: MutableSequence[_T],
x: _T,
a: MutableSequence[SupportsRichComparisonT],
x: SupportsRichComparisonT,
lo: int = ...,
hi: int | None = ...,
*,
key: Callable[[_T], SupportsRichComparison] | None = ...,
key: None = ...,
) -> None: ...
@overload
def insort_right(
a: MutableSequence[_T], x: _T, lo: int = ..., hi: int | None = ..., *, key: Callable[[_T], SupportsRichComparisonT] = ...
) -> None: ...
else:
def bisect_left(a: Sequence[_T], x: _T, lo: int = ..., hi: int | None = ...) -> int: ...
def bisect_right(a: Sequence[_T], x: _T, lo: int = ..., hi: int | None = ...) -> int: ...
def insort_left(a: MutableSequence[_T], x: _T, lo: int = ..., hi: int | None = ...) -> None: ...
def insort_right(a: MutableSequence[_T], x: _T, lo: int = ..., hi: int | None = ...) -> None: ...
def bisect_left(
a: Sequence[SupportsRichComparisonT], x: SupportsRichComparisonT, lo: int = ..., hi: int | None = ...
) -> int: ...
def bisect_right(
a: Sequence[SupportsRichComparisonT], x: SupportsRichComparisonT, lo: int = ..., hi: int | None = ...
) -> int: ...
def insort_left(
a: MutableSequence[SupportsRichComparisonT], x: SupportsRichComparisonT, lo: int = ..., hi: int | None = ...
) -> None: ...
def insort_right(
a: MutableSequence[SupportsRichComparisonT], x: SupportsRichComparisonT, lo: int = ..., hi: int | None = ...
) -> None: ...