[Checkins] SVN: Zope/branches/2.12/src/Products/ZCatalog/Lazy.py back-port c118896 from 2.13

Andreas Zeidler az at zitc.de
Wed Dec 15 04:55:29 EST 2010


Log message for revision 118922:
  back-port c118896 from 2.13

Changed:
  U   Zope/branches/2.12/src/Products/ZCatalog/Lazy.py

-=-
Modified: Zope/branches/2.12/src/Products/ZCatalog/Lazy.py
===================================================================
--- Zope/branches/2.12/src/Products/ZCatalog/Lazy.py	2010-12-15 09:29:34 UTC (rev 118921)
+++ Zope/branches/2.12/src/Products/ZCatalog/Lazy.py	2010-12-15 09:55:29 UTC (rev 118922)
@@ -134,20 +134,16 @@
 
     def __init__(self, func, seq, length=None):
         self._seq=seq
+        self._data={}
         self._func=func
         if length is not None: self._len=length
         else: self._len = len(seq)
-        self._marker = object()
-        self._data = [self._marker] * self._len
 
     def __getitem__(self,index):
         data=self._data
-        try: s=self._seq
-        except AttributeError: return data[index]
-
-        value = data[index]
-        if value is self._marker:
-            value = data[index] = self._func(s[index])
+        if index in data:
+            return data[index]
+        value = data[index] = self._func(self._seq[index])
         return value
 
 class LazyFilter(Lazy):



More information about the checkins mailing list