diff options
author | Raymond Hettinger <python@rcn.com> | 2011-03-22 18:46:25 (GMT) |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2011-03-22 18:46:25 (GMT) |
commit | c46759ad0b3419bb67b33f0358af5ae50dc0c5fe (patch) | |
tree | 68cbf456a976457b137a8578af856480ba908fbc | |
parent | 7969d3334f0db9ccb9b97db77ad582d6103c12c7 (diff) | |
download | cpython-c46759ad0b3419bb67b33f0358af5ae50dc0c5fe.zip cpython-c46759ad0b3419bb67b33f0358af5ae50dc0c5fe.tar.gz cpython-c46759ad0b3419bb67b33f0358af5ae50dc0c5fe.tar.bz2 |
Issue #11333: Add __slots__ to the collections ABCs.
-rw-r--r-- | Lib/collections/abc.py | 26 | ||||
-rw-r--r-- | Misc/NEWS | 2 |
2 files changed, 28 insertions, 0 deletions
diff --git a/Lib/collections/abc.py b/Lib/collections/abc.py index c80c7dd..7fbe84d 100644 --- a/Lib/collections/abc.py +++ b/Lib/collections/abc.py @@ -46,6 +46,8 @@ dict_proxy = type(type.__dict__) class Hashable(metaclass=ABCMeta): + __slots__ = () + @abstractmethod def __hash__(self): return 0 @@ -63,6 +65,8 @@ class Hashable(metaclass=ABCMeta): class Iterable(metaclass=ABCMeta): + __slots__ = () + @abstractmethod def __iter__(self): while False: @@ -78,6 +82,8 @@ class Iterable(metaclass=ABCMeta): class Iterator(Iterable): + __slots__ = () + @abstractmethod def __next__(self): raise StopIteration @@ -109,6 +115,8 @@ Iterator.register(zip_iterator) class Sized(metaclass=ABCMeta): + __slots__ = () + @abstractmethod def __len__(self): return 0 @@ -123,6 +131,8 @@ class Sized(metaclass=ABCMeta): class Container(metaclass=ABCMeta): + __slots__ = () + @abstractmethod def __contains__(self, x): return False @@ -137,6 +147,8 @@ class Container(metaclass=ABCMeta): class Callable(metaclass=ABCMeta): + __slots__ = () + @abstractmethod def __call__(self, *args, **kwds): return False @@ -164,6 +176,8 @@ class Set(Sized, Iterable, Container): then the other operations will automatically follow suit. """ + __slots__ = () + def __le__(self, other): if not isinstance(other, Set): return NotImplemented @@ -275,6 +289,8 @@ Set.register(frozenset) class MutableSet(Set): + __slots__ = () + @abstractmethod def add(self, value): """Add an element.""" @@ -348,6 +364,8 @@ MutableSet.register(set) class Mapping(Sized, Iterable, Container): + __slots__ = () + @abstractmethod def __getitem__(self, key): raise KeyError @@ -451,6 +469,8 @@ ValuesView.register(dict_values) class MutableMapping(Mapping): + __slots__ = () + @abstractmethod def __setitem__(self, key, value): raise KeyError @@ -530,6 +550,8 @@ class Sequence(Sized, Iterable, Container): __getitem__, and __len__. """ + __slots__ = () + @abstractmethod def __getitem__(self, index): raise IndexError @@ -575,12 +597,16 @@ class ByteString(Sequence): XXX Should add all their methods. """ + __slots__ = () + ByteString.register(bytes) ByteString.register(bytearray) class MutableSequence(Sequence): + __slots__ = () + @abstractmethod def __setitem__(self, index, value): raise IndexError @@ -84,6 +84,8 @@ Library - Issue #11371: Mark getopt error messages as localizable. Patch by Filip GruszczyĆski. +- Issue #11333: Add __slots__ to collections ABCs. + - Issue #11628: cmp_to_key generated class should use __slots__ - Issue #5537: Fix time2isoz() and time2netscape() functions of |