[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