123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- # stub for SortedList. This is an exact copy of
- # https://github.com/grantjenks/python-sortedcontainers/blob/a419ffbd2b1c935b09f11f0971696e537fd0c510/sortedcontainers/sortedlist.pyi
- # (from https://github.com/grantjenks/python-sortedcontainers/pull/107)
- from __future__ import annotations
- from typing import (
- Any,
- Callable,
- Iterable,
- Iterator,
- List,
- MutableSequence,
- Optional,
- Sequence,
- Tuple,
- Type,
- TypeVar,
- Union,
- overload,
- )
- _T = TypeVar("_T")
- _SL = TypeVar("_SL", bound=SortedList)
- _SKL = TypeVar("_SKL", bound=SortedKeyList)
- _Key = Callable[[_T], Any]
- _Repr = Callable[[], str]
- def recursive_repr(fillvalue: str = ...) -> Callable[[_Repr], _Repr]: ...
- class SortedList(MutableSequence[_T]):
- DEFAULT_LOAD_FACTOR: int = ...
- def __init__(
- self,
- iterable: Optional[Iterable[_T]] = ...,
- key: Optional[_Key[_T]] = ...,
- ): ...
- # NB: currently mypy does not honour return type, see mypy #3307
- @overload
- def __new__(cls: Type[_SL], iterable: None, key: None) -> _SL: ...
- @overload
- def __new__(cls: Type[_SL], iterable: None, key: _Key[_T]) -> SortedKeyList[_T]: ...
- @overload
- def __new__(cls: Type[_SL], iterable: Iterable[_T], key: None) -> _SL: ...
- @overload
- def __new__(cls, iterable: Iterable[_T], key: _Key[_T]) -> SortedKeyList[_T]: ...
- @property
- def key(self) -> Optional[Callable[[_T], Any]]: ...
- def _reset(self, load: int) -> None: ...
- def clear(self) -> None: ...
- def _clear(self) -> None: ...
- def add(self, value: _T) -> None: ...
- def _expand(self, pos: int) -> None: ...
- def update(self, iterable: Iterable[_T]) -> None: ...
- def _update(self, iterable: Iterable[_T]) -> None: ...
- def discard(self, value: _T) -> None: ...
- def remove(self, value: _T) -> None: ...
- def _delete(self, pos: int, idx: int) -> None: ...
- def _loc(self, pos: int, idx: int) -> int: ...
- def _pos(self, idx: int) -> int: ...
- def _build_index(self) -> None: ...
- def __contains__(self, value: Any) -> bool: ...
- def __delitem__(self, index: Union[int, slice]) -> None: ...
- @overload
- def __getitem__(self, index: int) -> _T: ...
- @overload
- def __getitem__(self, index: slice) -> List[_T]: ...
- @overload
- def _getitem(self, index: int) -> _T: ...
- @overload
- def _getitem(self, index: slice) -> List[_T]: ...
- @overload
- def __setitem__(self, index: int, value: _T) -> None: ...
- @overload
- def __setitem__(self, index: slice, value: Iterable[_T]) -> None: ...
- def __iter__(self) -> Iterator[_T]: ...
- def __reversed__(self) -> Iterator[_T]: ...
- def __len__(self) -> int: ...
- def reverse(self) -> None: ...
- def islice(
- self,
- start: Optional[int] = ...,
- stop: Optional[int] = ...,
- reverse: bool = ...,
- ) -> Iterator[_T]: ...
- def _islice(
- self,
- min_pos: int,
- min_idx: int,
- max_pos: int,
- max_idx: int,
- reverse: bool,
- ) -> Iterator[_T]: ...
- def irange(
- self,
- minimum: Optional[int] = ...,
- maximum: Optional[int] = ...,
- inclusive: Tuple[bool, bool] = ...,
- reverse: bool = ...,
- ) -> Iterator[_T]: ...
- def bisect_left(self, value: _T) -> int: ...
- def bisect_right(self, value: _T) -> int: ...
- def bisect(self, value: _T) -> int: ...
- def _bisect_right(self, value: _T) -> int: ...
- def count(self, value: _T) -> int: ...
- def copy(self: _SL) -> _SL: ...
- def __copy__(self: _SL) -> _SL: ...
- def append(self, value: _T) -> None: ...
- def extend(self, values: Iterable[_T]) -> None: ...
- def insert(self, index: int, value: _T) -> None: ...
- def pop(self, index: int = ...) -> _T: ...
- def index(
- self, value: _T, start: Optional[int] = ..., stop: Optional[int] = ...
- ) -> int: ...
- def __add__(self: _SL, other: Iterable[_T]) -> _SL: ...
- def __radd__(self: _SL, other: Iterable[_T]) -> _SL: ...
- def __iadd__(self: _SL, other: Iterable[_T]) -> _SL: ...
- def __mul__(self: _SL, num: int) -> _SL: ...
- def __rmul__(self: _SL, num: int) -> _SL: ...
- def __imul__(self: _SL, num: int) -> _SL: ...
- def __eq__(self, other: Any) -> bool: ...
- def __ne__(self, other: Any) -> bool: ...
- def __lt__(self, other: Sequence[_T]) -> bool: ...
- def __gt__(self, other: Sequence[_T]) -> bool: ...
- def __le__(self, other: Sequence[_T]) -> bool: ...
- def __ge__(self, other: Sequence[_T]) -> bool: ...
- def __repr__(self) -> str: ...
- def _check(self) -> None: ...
- class SortedKeyList(SortedList[_T]):
- def __init__(
- self, iterable: Optional[Iterable[_T]] = ..., key: _Key[_T] = ...
- ) -> None: ...
- def __new__(
- cls, iterable: Optional[Iterable[_T]] = ..., key: _Key[_T] = ...
- ) -> SortedKeyList[_T]: ...
- @property
- def key(self) -> Callable[[_T], Any]: ...
- def clear(self) -> None: ...
- def _clear(self) -> None: ...
- def add(self, value: _T) -> None: ...
- def _expand(self, pos: int) -> None: ...
- def update(self, iterable: Iterable[_T]) -> None: ...
- def _update(self, iterable: Iterable[_T]) -> None: ...
- # NB: Must be T to be safely passed to self.func, yet base class imposes Any
- def __contains__(self, value: _T) -> bool: ... # type: ignore
- def discard(self, value: _T) -> None: ...
- def remove(self, value: _T) -> None: ...
- def _delete(self, pos: int, idx: int) -> None: ...
- def irange(
- self,
- minimum: Optional[int] = ...,
- maximum: Optional[int] = ...,
- inclusive: Tuple[bool, bool] = ...,
- reverse: bool = ...,
- ) -> Iterator[_T]: ...
- def irange_key(
- self,
- min_key: Optional[Any] = ...,
- max_key: Optional[Any] = ...,
- inclusive: Tuple[bool, bool] = ...,
- reserve: bool = ...,
- ) -> Iterator[_T]: ...
- def bisect_left(self, value: _T) -> int: ...
- def bisect_right(self, value: _T) -> int: ...
- def bisect(self, value: _T) -> int: ...
- def bisect_key_left(self, key: Any) -> int: ...
- def _bisect_key_left(self, key: Any) -> int: ...
- def bisect_key_right(self, key: Any) -> int: ...
- def _bisect_key_right(self, key: Any) -> int: ...
- def bisect_key(self, key: Any) -> int: ...
- def count(self, value: _T) -> int: ...
- def copy(self: _SKL) -> _SKL: ...
- def __copy__(self: _SKL) -> _SKL: ...
- def index(
- self, value: _T, start: Optional[int] = ..., stop: Optional[int] = ...
- ) -> int: ...
- def __add__(self: _SKL, other: Iterable[_T]) -> _SKL: ...
- def __radd__(self: _SKL, other: Iterable[_T]) -> _SKL: ...
- def __iadd__(self: _SKL, other: Iterable[_T]) -> _SKL: ...
- def __mul__(self: _SKL, num: int) -> _SKL: ...
- def __rmul__(self: _SKL, num: int) -> _SKL: ...
- def __imul__(self: _SKL, num: int) -> _SKL: ...
- def __repr__(self) -> str: ...
- def _check(self) -> None: ...
- SortedListWithKey = SortedKeyList
|