sortedset.pyi 4.5 KB

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