mixins.pyi 4.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. from collections.abc import Callable
  2. from collections.abc import Hashable
  3. from collections.abc import Iterable
  4. from typing import Any
  5. from typing import NoReturn
  6. from typing import overload
  7. from typing import SupportsIndex
  8. from typing import TypeVar
  9. from _typeshed import SupportsKeysAndGetItem
  10. from .headers import Headers
  11. K = TypeVar("K")
  12. T = TypeVar("T")
  13. V = TypeVar("V")
  14. def is_immutable(self: object) -> NoReturn: ...
  15. class ImmutableListMixin(list[V]):
  16. _hash_cache: int | None
  17. def __hash__(self) -> int: ... # type: ignore
  18. def __delitem__(self, key: SupportsIndex | slice) -> NoReturn: ...
  19. def __iadd__(self, other: t.Any) -> NoReturn: ... # type: ignore
  20. def __imul__(self, other: SupportsIndex) -> NoReturn: ...
  21. def __setitem__(self, key: int | slice, value: V) -> NoReturn: ... # type: ignore
  22. def append(self, value: V) -> NoReturn: ...
  23. def remove(self, value: V) -> NoReturn: ...
  24. def extend(self, values: Iterable[V]) -> NoReturn: ...
  25. def insert(self, pos: SupportsIndex, value: V) -> NoReturn: ...
  26. def pop(self, index: SupportsIndex = -1) -> NoReturn: ...
  27. def reverse(self) -> NoReturn: ...
  28. def sort(
  29. self, key: Callable[[V], Any] | None = None, reverse: bool = False
  30. ) -> NoReturn: ...
  31. class ImmutableDictMixin(dict[K, V]):
  32. _hash_cache: int | None
  33. @classmethod
  34. def fromkeys( # type: ignore
  35. cls, keys: Iterable[K], value: V | None = None
  36. ) -> ImmutableDictMixin[K, V]: ...
  37. def _iter_hashitems(self) -> Iterable[Hashable]: ...
  38. def __hash__(self) -> int: ... # type: ignore
  39. def setdefault(self, key: K, default: V | None = None) -> NoReturn: ...
  40. def update(self, *args: Any, **kwargs: V) -> NoReturn: ...
  41. def pop(self, key: K, default: V | None = None) -> NoReturn: ... # type: ignore
  42. def popitem(self) -> NoReturn: ...
  43. def __setitem__(self, key: K, value: V) -> NoReturn: ...
  44. def __delitem__(self, key: K) -> NoReturn: ...
  45. def clear(self) -> NoReturn: ...
  46. class ImmutableMultiDictMixin(ImmutableDictMixin[K, V]):
  47. def _iter_hashitems(self) -> Iterable[Hashable]: ...
  48. def add(self, key: K, value: V) -> NoReturn: ...
  49. def popitemlist(self) -> NoReturn: ...
  50. def poplist(self, key: K) -> NoReturn: ...
  51. def setlist(self, key: K, new_list: Iterable[V]) -> NoReturn: ...
  52. def setlistdefault(
  53. self, key: K, default_list: Iterable[V] | None = None
  54. ) -> NoReturn: ...
  55. class ImmutableHeadersMixin(Headers):
  56. def __delitem__(self, key: Any, _index_operation: bool = True) -> NoReturn: ...
  57. def __setitem__(self, key: Any, value: Any) -> NoReturn: ...
  58. def set(self, _key: Any, _value: Any, **kw: Any) -> NoReturn: ...
  59. def setlist(self, key: Any, values: Any) -> NoReturn: ...
  60. def add(self, _key: Any, _value: Any, **kw: Any) -> NoReturn: ...
  61. def add_header(self, _key: Any, _value: Any, **_kw: Any) -> NoReturn: ...
  62. def remove(self, key: Any) -> NoReturn: ...
  63. def extend(self, *args: Any, **kwargs: Any) -> NoReturn: ...
  64. def update(self, *args: Any, **kwargs: Any) -> NoReturn: ...
  65. def insert(self, pos: Any, value: Any) -> NoReturn: ...
  66. def pop(self, key: Any = None, default: Any = ...) -> NoReturn: ...
  67. def popitem(self) -> NoReturn: ...
  68. def setdefault(self, key: Any, default: Any) -> NoReturn: ...
  69. def setlistdefault(self, key: Any, default: Any) -> NoReturn: ...
  70. def _calls_update(name: str) -> Callable[[UpdateDictMixin[K, V]], Any]: ...
  71. class UpdateDictMixin(dict[K, V]):
  72. on_update: Callable[[UpdateDictMixin[K, V] | None, None], None]
  73. def setdefault(self, key: K, default: V | None = None) -> V: ...
  74. @overload
  75. def pop(self, key: K) -> V: ...
  76. @overload
  77. def pop(self, key: K, default: V | T = ...) -> V | T: ...
  78. def __setitem__(self, key: K, value: V) -> None: ...
  79. def __delitem__(self, key: K) -> None: ...
  80. def clear(self) -> None: ...
  81. def popitem(self) -> tuple[K, V]: ...
  82. @overload
  83. def update(self, __m: SupportsKeysAndGetItem[K, V], **kwargs: V) -> None: ...
  84. @overload
  85. def update(self, __m: Iterable[tuple[K, V]], **kwargs: V) -> None: ...
  86. @overload
  87. def update(self, **kwargs: V) -> None: ...