Commit 74b6495b authored by Raymond Hettinger's avatar Raymond Hettinger

Merge r60679

parent 77c02ebf
......@@ -82,7 +82,7 @@ class Iterable(metaclass=ABCMeta):
return NotImplemented
class Iterator(metaclass=ABCMeta):
class Iterator(Iterable):
@abstractmethod
def __next__(self):
......@@ -157,7 +157,7 @@ class Callable(metaclass=ABCMeta):
### SETS ###
class Set(metaclass=ABCMeta):
class Set(Sized, Iterable, Container):
"""A set is a finite, iterable container.
......@@ -169,19 +169,6 @@ class Set(metaclass=ABCMeta):
then the other operations will automatically follow suit.
"""
@abstractmethod
def __contains__(self, value):
return False
@abstractmethod
def __iter__(self):
while False:
yield None
@abstractmethod
def __len__(self):
return 0
def __le__(self, other):
if not isinstance(other, Set):
return NotImplemented
......@@ -358,7 +345,7 @@ MutableSet.register(set)
### MAPPINGS ###
class Mapping(metaclass=ABCMeta):
class Mapping(Sized, Iterable, Container):
@abstractmethod
def __getitem__(self, key):
......@@ -378,15 +365,6 @@ class Mapping(metaclass=ABCMeta):
else:
return True
@abstractmethod
def __len__(self):
return 0
@abstractmethod
def __iter__(self):
while False:
yield None
def keys(self):
return KeysView(self)
......@@ -523,7 +501,7 @@ MutableMapping.register(dict)
### SEQUENCES ###
class Sequence(metaclass=ABCMeta):
class Sequence(Sized, Iterable, Container):
"""All the operations on a read-only sequence.
......@@ -535,10 +513,6 @@ class Sequence(metaclass=ABCMeta):
def __getitem__(self, index):
raise IndexError
@abstractmethod
def __len__(self):
return 0
def __iter__(self):
i = 0
try:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment