File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -199,22 +199,20 @@ def __enter__(self):
199199 # do not keep args and kwds alive unnecessarily
200200 # they are only needed for recreation, which is not possible anymore
201201 del self .args , self .kwds , self .func
202- try :
203- return next ( self .gen )
204- except StopIteration :
205- raise RuntimeError ("generator didn't yield" ) from None
202+ # Slightly faster way to return next(self.gen) :
203+ for once in self .gen :
204+ return once
205+ raise RuntimeError ("generator didn't yield" )
206206
207207 def __exit__ (self , typ , value , traceback ):
208208 if typ is None :
209- try :
210- next (self .gen )
211- except StopIteration :
212- return False
213- else :
209+ # Faster way to run next(self.gen) and check for StopIteration:
210+ for _ in self .gen :
214211 try :
215212 raise RuntimeError ("generator didn't stop" )
216213 finally :
217214 self .gen .close ()
215+ return False
218216 else :
219217 if value is None :
220218 # Need to force instantiation so we can reliably
You can’t perform that action at this time.
0 commit comments