[Checkins] SVN: zope.app.container/trunk/src/zope/app/container/btree.py Use the previous attribute to store the btree, so that

Christophe Combelles ccomb at free.fr
Sat Jun 14 03:44:06 EDT 2008


Log message for revision 87385:
  Use the previous attribute to store the btree, so that
  there is a full backward compatibility
  

Changed:
  U   zope.app.container/trunk/src/zope/app/container/btree.py

-=-
Modified: zope.app.container/trunk/src/zope/app/container/btree.py
===================================================================
--- zope.app.container/trunk/src/zope/app/container/btree.py	2008-06-14 06:38:21 UTC (rev 87384)
+++ zope.app.container/trunk/src/zope/app/container/btree.py	2008-06-14 07:44:05 UTC (rev 87385)
@@ -11,13 +11,8 @@
 # FOR A PARTICULAR PURPOSE.
 #
 ##############################################################################
-"""This module provides a sample container implementation.
+"""This module provides a sample btree container implementation.
 
-This is primarily for testing purposes.
-
-It might be useful as a mix-in for some classes, but many classes will
-need a very different implementation.
-
 $Id$
 """
 __docformat__ = 'restructuredtext'
@@ -37,7 +32,9 @@
     implements(IBTreeContainer)
 
     def __init__(self):
-        self.__data = self._newContainerData()
+        # We keep the previous attribute to store the data
+        # for backward compatibility
+        self._SampleContainer__data = self._newContainerData()
         self.__len = Length()
 
     def _newContainerData(self):
@@ -63,12 +60,12 @@
         >>> "A" in c
         False
         '''
-        return key in self.__data
+        return key in self._SampleContainer__data
 
     @Lazy
     def _BTreeContainer__len(self):
         l = Length()
-        ol = len(self.__data)
+        ol = len(self._SampleContainer__data)
         if ol > 0:
             l.change(ol)
         self._p_changed = True
@@ -80,19 +77,19 @@
     def _setitemf(self, key, value):
         # make sure our lazy property gets set
         l = self.__len
-        self.__data[key] = value
+        self._SampleContainer__data[key] = value
         l.change(1)
 
     def __iter__(self):
-        return iter(self.__data)
+        return iter(self._SampleContainer__data)
 
     def __getitem__(self, key):
         '''See interface `IReadContainer`'''
-        return self.__data[key]
+        return self._SampleContainer__data[key]
 
     def get(self, key, default=None):
         '''See interface `IReadContainer`'''
-        return self.__data.get(key, default)
+        return self._SampleContainer__data.get(key, default)
         
     def __setitem__(self, key, value):
         setitem(self, self._setitemf, key, value)
@@ -100,39 +97,20 @@
     def __delitem__(self, key):
         # make sure our lazy property gets set
         l = self.__len
-        uncontained(self.__data[key], self, key)
-        del self.__data[key]
+        uncontained(self._SampleContainer__data[key], self, key)
+        del self._SampleContainer__data[key]
         l.change(-1)
 
     has_key = __contains__
 
     def items(self, key=None):
-        return self.__data.items(key)
+        return self._SampleContainer__data.items(key)
 
     def keys(self, key=None):
-        return self.__data.keys(key)
+        return self._SampleContainer__data.keys(key)
 
     def values(self, key=None):
-        return self.__data.values(key)
+        return self._SampleContainer__data.values(key)
 
-    # transparent backward compatibility
-    # since BTreeContainer does not inherit from SampleContainer
-    def _get__data(self):
-        try:
-            return self._BTreeContainer__data
-        except:
-            return self._SampleContainer__data
-    def _set__data(self, value):
-        try:
-            self._BTreeContainer__data = value
-        except:
-            self._SampleContainer__data = value
-    def _del_data(self):
-        try:
-            del self._BTreeContainer__data
-        except:
-            del self._SampleContainer__data
-    __data = property(_get__data, _set__data, _del_data)
 
 
-



More information about the Checkins mailing list