| 621 | self.update(mapping) |
| 622 | |
| 623 | def __eq__(self, other: object) -> bool: |
| 624 | if not isinstance(other, MultiDict): |
| 625 | return NotImplemented |
| 626 | if isinstance(other, _OrderedMultiDict): |
| 627 | iter1 = iter(self.items(multi=True)) |
| 628 | iter2 = iter(other.items(multi=True)) |
| 629 | try: |
| 630 | for k1, v1 in iter1: |
| 631 | k2, v2 = next(iter2) |
| 632 | if k1 != k2 or v1 != v2: |
| 633 | return False |
| 634 | except StopIteration: |
| 635 | return False |
| 636 | try: |
| 637 | next(iter2) |
| 638 | except StopIteration: |
| 639 | return True |
| 640 | return False |
| 641 | if len(self) != len(other): |
| 642 | return False |
| 643 | for key, values in self.lists(): |
| 644 | if other.getlist(key) != values: |
| 645 | return False |
| 646 | return True |
| 647 | |
| 648 | __hash__ = None # type: ignore[assignment] |
| 649 | |