| 862 | |
| 863 | |
| 864 | class ItemsView(MappingView, Set): |
| 865 | |
| 866 | __slots__ = () |
| 867 | |
| 868 | @classmethod |
| 869 | def _from_iterable(cls, it): |
| 870 | return set(it) |
| 871 | |
| 872 | def __contains__(self, item): |
| 873 | key, value = item |
| 874 | try: |
| 875 | v = self._mapping[key] |
| 876 | except KeyError: |
| 877 | return False |
| 878 | else: |
| 879 | return v is value or v == value |
| 880 | |
| 881 | def __iter__(self): |
| 882 | for key in self._mapping: |
| 883 | yield (key, self._mapping[key]) |
| 884 | |
| 885 | |
| 886 | ItemsView.register(dict_items) |
no outgoing calls