[Python-checkins] r54659 - sandbox/trunk/abc/abc.py sandbox/trunk/abc/test_abc.py
guido.van.rossum
python-checkins at python.org
Mon Apr 2 19:31:28 CEST 2007
Author: guido.van.rossum
Date: Mon Apr 2 19:31:27 2007
New Revision: 54659
Modified:
sandbox/trunk/abc/abc.py
sandbox/trunk/abc/test_abc.py
Log:
Add set adaptation.
Modified: sandbox/trunk/abc/abc.py
==============================================================================
--- sandbox/trunk/abc/abc.py (original)
+++ sandbox/trunk/abc/abc.py Mon Apr 2 19:31:27 2007
@@ -554,11 +554,10 @@
class AdaptToSequence(Sequence):
- def __new__(cls, *args):
- return Sequence.__new__(cls)
-
- def __init__(self, adaptee):
+ def __new__(cls, adaptee):
+ self = Sequence.__new__(cls)
self.adaptee = adaptee
+ return self
def __getitem__(self, index):
return self.adaptee[index]
@@ -569,11 +568,10 @@
class AdaptToMapping(SizeableMapping):
- def __new__(cls, *args):
- return SizeableMapping.__new__(cls)
-
- def __init__(self, adaptee):
+ def __new__(cls, adaptee):
+ self = SizeableMapping.__new__(cls)
self.adaptee = adaptee
+ return self
def __getitem__(self, index):
return self.adaptee[index]
@@ -583,3 +581,20 @@
def __iter__(self):
return iter(self.adaptee)
+
+
+class AdaptToSet(SizeableSet):
+
+ def __new__(cls, adaptee):
+ self = SizeableSet.__new__(cls)
+ self.adaptee = adaptee
+ return self
+
+ def __contains__(self, elem):
+ return elem in self.adaptee
+
+ def __iter__(self):
+ return iter(self.adaptee)
+
+ def __len__(self):
+ return len(self.adaptee)
Modified: sandbox/trunk/abc/test_abc.py
==============================================================================
--- sandbox/trunk/abc/test_abc.py (original)
+++ sandbox/trunk/abc/test_abc.py Mon Apr 2 19:31:27 2007
@@ -65,6 +65,13 @@
#self.assertEqual(a.items(), {(1, 10), (2, 20)})
#self.assertEqual(a.values(), {10, 20})
+ def test_adapt_to_set(self):
+ a = abc.AdaptToSet({1, 2, 3})
+ self.assertEqual(1 in a, True)
+ self.assertEqual(2 in a, True)
+ self.assertEqual(42 in a, False)
+ self.assertEqual(len(a), 3)
+
if __name__ == "__main__":
unittest.main()
More information about the Python-checkins
mailing list