[Python-checkins] r54627 - sandbox/trunk/abc/abc.py

guido.van.rossum python-checkins at python.org
Sat Mar 31 03:20:26 CEST 2007


Author: guido.van.rossum
Date: Sat Mar 31 03:20:25 2007
New Revision: 54627

Modified:
   sandbox/trunk/abc/abc.py
Log:
Declare some more abstract methods.


Modified: sandbox/trunk/abc/abc.py
==============================================================================
--- sandbox/trunk/abc/abc.py	(original)
+++ sandbox/trunk/abc/abc.py	Sat Mar 31 03:20:25 2007
@@ -63,9 +63,6 @@
     return 0
 
 
-Hashable()
-
-
 class Iterable(Abstract):
 
   """An iterable has one method, __iter__()."""
@@ -206,7 +203,7 @@
 ### MAPPINGS ###
 
 
-class BasicMapping:
+class BasicMapping(Abstract):
 
   # XXX derive from (BasicSet)?
 
@@ -217,6 +214,7 @@
   Other dict methods are not supported.
   """
 
+  @abstractmethod
   def __getitem__(self, key):
     raise KeyError
 
@@ -385,6 +383,7 @@
         raise TypeError
     return i
 
+  @abstractmethod
   def __getitem__(self, index):
     if isinstance(index, slice):
       return self.__getslice(index)
@@ -413,6 +412,7 @@
         stop = len(self)
     return self.__class__(self[i] for i in range(start, stop, step))
 
+  @abstractmethod
   def __len__(self):
     return 0
 
@@ -443,6 +443,7 @@
     return self.__class__(elem for seq in (self, other) for elem in seq)
 
   def __mul__(self, repeat):
+    # XXX Looks like we need an ABC to indicate integer-ness...
     if not isinstance(repeat, int) and not hasattr(repeat, "__index__"):
       return NotImplemented
     repeat = self.__index(repeat)


More information about the Python-checkins mailing list