1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
|
# Correct as of 27 May 2022
# sortedcontainers does not have PEP561 type hints, and there are no published typeshed hints.
# The contents of this file were obtained from
# https://github.com/althonos/python-sortedcontainers/blob/d0a225d7fd0fb4c54532b8798af3cbeebf97e2d5/sortedcontainers/sortedset.pyi
from typing import ( # Iterator,; Tuple,; Type, Set
Any,
Callable,
Hashable,
Iterable,
List,
MutableSet,
Optional,
Sequence,
TypeVar,
Union,
overload,
)
# --- Global
_T = TypeVar("_T", bound=Hashable)
_S = TypeVar("_S", bound=Hashable)
#_SS = TypeVar("_SS", bound=SortedSet)
_Key = Callable[[_T], Any]
class SortedSet(MutableSet[_T], Sequence[_T]):
def __init__(
self,
iterable: Optional[Iterable[_T]] = ...,
key: Optional[_Key[_T]] = ...,
) -> None: ...
# @classmethod
# def _fromset(
# cls, values: Set[_T], key: Optional[_Key[_T]] = ...
# ) -> SortedSet[_T]: ...
# @property
# def key(self) -> Optional[_Key[_T]]: ...
def __contains__(self, value: Any) -> bool: ...
# @overload
# def __getitem__(self, index: int) -> _T: ...
@overload
def __getitem__(self, index: slice) -> List[_T]: ...
# def __delitem__(self, index: Union[int, slice]) -> None: ...
# def __eq__(self, other: Any) -> bool: ...
# def __ne__(self, other: Any) -> bool: ...
# def __lt__(self, other: Iterable[_T]) -> bool: ...
# def __gt__(self, other: Iterable[_T]) -> bool: ...
# def __le__(self, other: Iterable[_T]) -> bool: ...
# def __ge__(self, other: Iterable[_T]) -> bool: ...
def __len__(self) -> int: ...
# def __iter__(self) -> Iterator[_T]: ...
# def __reversed__(self) -> Iterator[_T]: ...
def add(self, value: _T) -> None: ...
# def _add(self, value: _T) -> None: ...
# def clear(self) -> None: ...
# def copy(self: _SS) -> _SS: ...
# def __copy__(self: _SS) -> _SS: ...
# def count(self, value: _T) -> int: ...
def discard(self, value: _T) -> None: ...
# def _discard(self, value: _T) -> None: ...
# def pop(self, index: int = ...) -> _T: ...
# def remove(self, value: _T) -> None: ...
# def difference(
# self, *iterables: Iterable[_S]
# ) -> SortedSet[Union[_T, _S]]: ...
# def __sub__(self, *iterables: Iterable[_S]) -> SortedSet[Union[_T, _S]]: ...
# def difference_update(
# self, *iterables: Iterable[_S]
# ) -> SortedSet[Union[_T, _S]]: ...
# def __isub__(
# self, *iterables: Iterable[_S]
# ) -> SortedSet[Union[_T, _S]]: ...
# def intersection(
# self, *iterables: Iterable[_S]
# ) -> SortedSet[Union[_T, _S]]: ...
# def __and__(self, *iterables: Iterable[_S]) -> SortedSet[Union[_T, _S]]: ...
# def __rand__(
# self, *iterables: Iterable[_S]
# ) -> SortedSet[Union[_T, _S]]: ...
# def intersection_update(
# self, *iterables: Iterable[_S]
# ) -> SortedSet[Union[_T, _S]]: ...
# def __iand__(
# self, *iterables: Iterable[_S]
# ) -> SortedSet[Union[_T, _S]]: ...
# def symmetric_difference(
# self, other: Iterable[_S]
# ) -> SortedSet[Union[_T, _S]]: ...
# def __xor__(self, other: Iterable[_S]) -> SortedSet[Union[_T, _S]]: ...
# def __rxor__(self, other: Iterable[_S]) -> SortedSet[Union[_T, _S]]: ...
# def symmetric_difference_update(
# self, other: Iterable[_S]
# ) -> SortedSet[Union[_T, _S]]: ...
# def __ixor__(self, other: Iterable[_S]) -> SortedSet[Union[_T, _S]]: ...
# def union(self, *iterables: Iterable[_S]) -> SortedSet[Union[_T, _S]]: ...
# def __or__(self, *iterables: Iterable[_S]) -> SortedSet[Union[_T, _S]]: ...
# def __ror__(self, *iterables: Iterable[_S]) -> SortedSet[Union[_T, _S]]: ...
def update(self, *iterables: Iterable[_S]) -> SortedSet[Union[_T, _S]]: ...
# def __ior__(self, *iterables: Iterable[_S]) -> SortedSet[Union[_T, _S]]: ...
# def _update(self, *iterables: Iterable[_S]) -> SortedSet[Union[_T, _S]]: ...
# def __reduce__(
# self
# ) -> Tuple[Type[SortedSet[_T]], Set[_T], Callable[[_T], Any]]: ...
# def __repr__(self) -> str: ...
# def _check(self) -> None: ...
# def bisect_left(self, value: _T) -> int: ...
# def bisect_right(self, value: _T) -> int: ...
# def islice(
# self,
# start: Optional[int] = ...,
# stop: Optional[int] = ...,
# reverse=bool,
# ) -> Iterator[_T]: ...
# def irange(
# self,
# minimum: Optional[_T] = ...,
# maximum: Optional[_T] = ...,
# inclusive: Tuple[bool, bool] = ...,
# reverse: bool = ...,
# ) -> Iterator[_T]: ...
# def index(
# self, value: _T, start: Optional[int] = ..., stop: Optional[int] = ...
# ) -> int: ...
# def _reset(self, load: int) -> None: ...
|