[Python-checkins] python/dist/src/Lib weakref.py,1.23,1.24
rhettinger at users.sourceforge.net
rhettinger at users.sourceforge.net
Fri Aug 13 09:12:49 CEST 2004
Update of /cvsroot/python/python/dist/src/Lib
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30827
Modified Files:
weakref.py
Log Message:
Convert weak iterators to generator form.
Index: weakref.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/weakref.py,v
retrieving revision 1.23
retrieving revision 1.24
diff -C2 -d -r1.23 -r1.24
*** weakref.py 2 Jul 2004 18:57:42 -0000 1.23
--- weakref.py 13 Aug 2004 07:12:45 -0000 1.24
***************
*** 278,330 ****
! class BaseIter:
! def __iter__(self):
! return self
!
!
! class WeakKeyedKeyIterator(BaseIter):
! def __init__(self, weakdict):
! self._next = weakdict.data.iterkeys().next
!
! def next(self):
! while 1:
! wr = self._next()
! obj = wr()
! if obj is not None:
! return obj
!
!
! class WeakKeyedItemIterator(BaseIter):
! def __init__(self, weakdict):
! self._next = weakdict.data.iteritems().next
!
! def next(self):
! while 1:
! wr, value = self._next()
! key = wr()
! if key is not None:
! return key, value
!
!
! class WeakValuedValueIterator(BaseIter):
! def __init__(self, weakdict):
! self._next = weakdict.data.itervalues().next
!
! def next(self):
! while 1:
! wr = self._next()
! obj = wr()
! if obj is not None:
! return obj
! class WeakValuedItemIterator(BaseIter):
! def __init__(self, weakdict):
! self._next = weakdict.data.itervalues().next
! def next(self):
! while 1:
! wr = self._next()
! value = wr()
! if value is not None:
! return wr.key, value
--- 278,302 ----
! def WeakKeyedKeyIterator(weakdict):
! for wr in weakdict.data.iterkeys():
! obj = wr()
! if obj is not None:
! yield obj
+ def WeakKeyedItemIterator(weakdict):
+ for wr, value in weakdict.data.iteritems():
+ key = wr()
+ if key is not None:
+ yield key, value
! def WeakValuedValueIterator(weakdict):
! for wr in weakdict.data.itervalues():
! obj = wr()
! if obj is not None:
! yield obj
! def WeakValuedItemIterator(weakdict):
! for wr in weakdict.data.itervalues():
! value = wr()
! if value is not None:
! yield wr.key, value
More information about the Python-checkins
mailing list