| 160 | return (k, v) |
| 161 | |
| 162 | def update(self, other: Optional[Any] = None, **kwargs: _Value) -> None: |
| 163 | # Make progressively weaker assumptions about "other" |
| 164 | if other is None: |
| 165 | pass |
| 166 | elif hasattr(other, "items"): |
| 167 | for k, v in other.items(): |
| 168 | self[k] = v |
| 169 | elif hasattr(other, "keys"): |
| 170 | for k in other: |
| 171 | self[k] = other[k] |
| 172 | else: |
| 173 | for k, v in other: |
| 174 | self[k] = v |
| 175 | if kwargs: |
| 176 | self.update(kwargs) |
| 177 | |
| 178 | def get( # type: ignore[override] |
| 179 | self, key: _Key, default: Optional[Union[_Value, _T]] = None |