Currently the dictionary view objects behave exactly like sets when set operations defined on them are used, such as the pipe or ampersand operators:
>>> d.keys() | [1]
{1, 2}
dictionary views are even sets by the ABC standard, having support for all the required abstract methods:
>>> isinstance(d.keys(), collections.abc.Set)
True
However, the dict views do not have the equivalent named set methods, such as `intersection` or `issuperset`.
It seems that the collections.abc.Set API was purposely crafted for returning True when a dict view is given as an argument to isinstance, as c
urrently, the `isdisjoint` method is the only named method that the API requires.
I propose that the `Set` ABC API should be augmented to contain all of the named methods. This would provide consistency in the collections, and enhance the duck typing capabilities of the `Set` abc.