[Checkins] SVN: zc.dict/trunk/src/zc/dict/dict. Use BTree.Length.Length.

Albertas Agejevas alga at pov.lt
Wed Jul 4 10:47:29 EDT 2007


Log message for revision 77394:
  Use BTree.Length.Length.
  

Changed:
  U   zc.dict/trunk/src/zc/dict/dict.py
  U   zc.dict/trunk/src/zc/dict/dict.txt

-=-
Modified: zc.dict/trunk/src/zc/dict/dict.py
===================================================================
--- zc.dict/trunk/src/zc/dict/dict.py	2007-07-04 14:29:40 UTC (rev 77393)
+++ zc.dict/trunk/src/zc/dict/dict.py	2007-07-04 14:47:28 UTC (rev 77394)
@@ -16,6 +16,7 @@
 $Id$
 """
 from BTrees.OOBTree import OOBTree
+from BTrees.Length import Length
 from persistent import Persistent
 
 
@@ -26,7 +27,7 @@
 
     def __init__(self, dict=None, **kwargs):
         self._data = OOBTree()
-        self.__len = 0
+        self._len = Length()
         if dict is not None:
             self.update(dict)
         if len(kwargs):
@@ -38,22 +39,22 @@
             delta = 0
         self._data[key] = value
         if delta:
-            self.__len += delta
+            self._len.change(delta)
 
     def __delitem__(self, key):
         del self._data[key]
-        self.__len -= 1
+        self._len.change(-1)
 
     def update(self, other):
         self._data.update(other)
-        self.__len = len(self._data)
+        self._len.set(len(self._data))
 
     def clear(self):
         self._data.clear()
-        self.__len = 0
+        self._len.set(0)
 
     def __len__(self):
-        return self.__len
+        return self._len()
 
     def keys(self):
         return list(self._data.keys())

Modified: zc.dict/trunk/src/zc/dict/dict.txt
===================================================================
--- zc.dict/trunk/src/zc/dict/dict.txt	2007-07-04 14:29:40 UTC (rev 77393)
+++ zc.dict/trunk/src/zc/dict/dict.txt	2007-07-04 14:47:28 UTC (rev 77394)
@@ -24,7 +24,9 @@
 Length is maintained separately, because len on a BTree is
 inefficient, as it has to walk the whole tree.
 
-   >>> d._Dict__len
+   >>> d._len
+   <BTrees.Length.Length object at ...>
+   >>> d._len()
    2
 
 As after an update operation we cannot easily adjust the length, it is



More information about the Checkins mailing list