@@ -1445,27 +1445,12 @@ def _step(self, *args):
1445
1445
if not still_going and self .repeat :
1446
1446
self ._init_draw ()
1447
1447
self .frame_seq = self .new_frame_seq ()
1448
- self .event_source .remove_callback (self ._step )
1449
- self .event_source .add_callback (self ._loop_delay )
1450
1448
self .event_source .interval = self ._repeat_delay
1451
1449
return True
1452
1450
else :
1451
+ self .event_source .interval = self ._interval
1453
1452
return still_going
1454
1453
1455
- def _stop (self , * args ):
1456
- # If we stop in the middle of a loop delay (which is relatively likely
1457
- # given the potential pause here), remove the loop_delay callback as
1458
- # well.
1459
- self .event_source .remove_callback (self ._loop_delay )
1460
- super ()._stop ()
1461
-
1462
- def _loop_delay (self , * args ):
1463
- # Reset the interval and change callbacks after the delay.
1464
- self .event_source .remove_callback (self ._loop_delay )
1465
- self .event_source .interval = self ._interval
1466
- self .event_source .add_callback (self ._step )
1467
- Animation ._step (self )
1468
-
1469
1454
1470
1455
class ArtistAnimation (TimedAnimation ):
1471
1456
"""
@@ -1657,10 +1642,10 @@ def __init__(self, fig, func, frames=None, init_func=None, fargs=None,
1657
1642
self ._iter_gen = frames
1658
1643
elif np .iterable (frames ):
1659
1644
if kwargs .get ('repeat' , True ):
1645
+ self ._tee_from = frames
1660
1646
def iter_frames (frames = frames ):
1661
- while True :
1662
- this , frames = itertools .tee (frames , 2 )
1663
- yield from this
1647
+ this , self ._tee_from = itertools .tee (self ._tee_from , 2 )
1648
+ yield from this
1664
1649
self ._iter_gen = iter_frames
1665
1650
else :
1666
1651
self ._iter_gen = lambda : iter (frames )
0 commit comments