# stub for SortedSet. This is a lightly edited copy of # https://github.com/grantjenks/python-sortedcontainers/blob/d0a225d7fd0fb4c54532b8798af3cbeebf97e2d5/sortedcontainers/sortedset.pyi # (from https://github.com/grantjenks/python-sortedcontainers/pull/107) from __future__ import annotations from typing import ( Any, Callable, Hashable, Iterable, Iterator, List, MutableSet, Optional, Sequence, Set, Tuple, Type, 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: ...