From: Raymond Hettinger Date: Sat, 9 Feb 2008 02:53:48 +0000 (+0000) Subject: Merge r60679 X-Git-Tag: v3.0a3~81 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=74b6495b344303a84bf5e51ff388d8200dad4f64;p=python Merge r60679 --- diff --git a/Lib/_abcoll.py b/Lib/_abcoll.py index 327b223b44..113507a779 100644 --- a/Lib/_abcoll.py +++ b/Lib/_abcoll.py @@ -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: