[Checkins] SVN: lovely.mount/trunk/src/lovely/mount/container.py hm, we have to reset parent upon getting, something is wrong with the cross databse references

Bernd Dorn bernd.dorn at lovelysystems.com
Wed Jan 31 10:02:20 EST 2007


Log message for revision 72277:
  hm, we have to reset parent upon getting, something is wrong with the cross databse references

Changed:
  U   lovely.mount/trunk/src/lovely/mount/container.py

-=-
Modified: lovely.mount/trunk/src/lovely/mount/container.py
===================================================================
--- lovely.mount/trunk/src/lovely/mount/container.py	2007-01-31 14:02:49 UTC (rev 72276)
+++ lovely.mount/trunk/src/lovely/mount/container.py	2007-01-31 15:02:20 UTC (rev 72277)
@@ -3,6 +3,7 @@
 from zope import interface
 import interfaces
 from zope.schema.fieldproperty import FieldProperty
+from zope.app.container.interfaces import IContained
 
 class MountpointContainer(root.DBRoot, Contained):
     
@@ -10,6 +11,29 @@
     
     dbName = FieldProperty(interfaces.IMountpointContainer['dbName'])
 
+    def get(self, key, default=None):
+        '''See interface `IReadContainer`'''
+        try:
+            self.__getitem__(key)
+        except KeyError:
+            return default
+
+    def items(self):
+        '''See interface `IReadContainer`'''
+        return [(k,self.__getitem__(k)) for k in self.keys()]
+
+    def values(self):
+        '''See interface `IReadContainer`'''
+        return [self.__getitem__(k) for k in self.keys()]
+
+    def __getitem__(self, key):
+        #XXX why do we have to do this?
+        # cross references should work
+        item = self._data.__getitem__(key)
+        if hasattr(item, '__parent__'):
+            item.__parent__ = self
+        return item
+
     def __setitem__(self, key, object):
         '''See interface `IWriteContainer`'''
         setitem(self, self._data.__setitem__, key, object)



More information about the Checkins mailing list