|
1 |
| -from _typeshed import Incomplete |
2 |
| -from typing import Any |
| 1 | +from _typeshed import Incomplete, SupportsKeysAndGetItem |
| 2 | +from collections.abc import Iterable |
| 3 | +from typing import Any, TypeVar, overload |
| 4 | +from typing_extensions import Literal, SupportsIndex |
| 5 | + |
| 6 | +from ..orm.attributes import Event |
| 7 | +from ..util.langhelpers import _symbol, symbol |
| 8 | + |
| 9 | +_T = TypeVar("_T") |
| 10 | +_KT = TypeVar("_KT") |
| 11 | +_VT = TypeVar("_VT") |
3 | 12 |
|
4 | 13 | class _PlainColumnGetter:
|
5 | 14 | cols: Any
|
@@ -81,12 +90,41 @@ class CollectionAdapter:
|
81 | 90 | def fire_remove_event(self, item, initiator: Incomplete | None = None) -> None: ...
|
82 | 91 | def fire_pre_remove_event(self, initiator: Incomplete | None = None) -> None: ...
|
83 | 92 |
|
84 |
| -class InstrumentedList(list[Any]): ... |
85 |
| -class InstrumentedSet(set[Any]): ... |
86 |
| -class InstrumentedDict(dict[Any, Any]): ... |
| 93 | +class InstrumentedList(list[_T]): |
| 94 | + def append(self, item, _sa_initiator: Event | Literal[False] | None = None) -> None: ... |
| 95 | + def clear(self, index: SupportsIndex = -1) -> None: ... |
| 96 | + def extend(self, iterable: Iterable[_T]) -> None: ... |
| 97 | + def insert(self, index: SupportsIndex, value: _T) -> None: ... |
| 98 | + def pop(self, index: SupportsIndex = -1) -> _T: ... |
| 99 | + def remove(self, value: _T, _sa_initiator: Event | Literal[False] | None = None) -> None: ... |
| 100 | + |
| 101 | +class InstrumentedSet(set[_T]): |
| 102 | + def add(self, value: _T, _sa_initiator: Event | Literal[False] | None = None) -> None: ... |
| 103 | + def difference_update(self, value: Iterable[_T]) -> None: ... # type: ignore[override] |
| 104 | + def discard(self, value: _T, _sa_initiator: Event | Literal[False] | None = None) -> None: ... |
| 105 | + def intersection_update(self, other: Iterable[_T]) -> None: ... # type: ignore[override] |
| 106 | + def remove(self, value: _T, _sa_initiator: Event | Literal[False] | None = None) -> None: ... |
| 107 | + def symmetric_difference_update(self, other: Iterable[_T]) -> None: ... |
| 108 | + def update(self, value: Iterable[_T]) -> None: ... # type: ignore[override] |
| 109 | + |
| 110 | +class InstrumentedDict(dict[_KT, _VT]): ... |
87 | 111 |
|
88 |
| -class MappedCollection(dict[Any, Any]): |
| 112 | +class MappedCollection(dict[_KT, _VT]): |
89 | 113 | keyfunc: Any
|
90 | 114 | def __init__(self, keyfunc) -> None: ...
|
91 |
| - def set(self, value, _sa_initiator: Incomplete | None = None) -> None: ... |
92 |
| - def remove(self, value, _sa_initiator: Incomplete | None = None) -> None: ... |
| 115 | + def set(self, value: _VT, _sa_initiator: Event | Literal[False] | None = None) -> None: ... |
| 116 | + def remove(self, value: _VT, _sa_initiator: Event | Literal[False] | None = None) -> None: ... |
| 117 | + def __delitem__(self, key: _KT, _sa_initiatorEvent: Event | Literal[False] | None = None) -> None: ... |
| 118 | + def __setitem__(self, key: _KT, value: _VT, _sa_initiator: Event | Literal[False] | None = None) -> None: ... |
| 119 | + @overload |
| 120 | + def pop(self, key: _KT) -> _VT: ... |
| 121 | + @overload |
| 122 | + def pop(self, key: _KT, default: _VT | _T | _symbol | symbol = ...) -> _VT | _T: ... |
| 123 | + @overload # type: ignore[override] |
| 124 | + def setdefault(self, key: _KT, default: _T) -> _VT | _T: ... |
| 125 | + @overload |
| 126 | + def setdefault(self, key: _KT, default: None = None) -> _VT | None: ... |
| 127 | + @overload |
| 128 | + def update(self, __other: SupportsKeysAndGetItem[_KT, _VT] = ..., **kwargs: _VT) -> None: ... |
| 129 | + @overload |
| 130 | + def update(self, __other: Iterable[tuple[_KT, _VT]] = ..., **kwargs: _VT) -> None: ... |
0 commit comments