[Zope-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 Zope-Checkins
mailing list