Skip to content

Commit 529a450

Browse files
tacaswellMeeseeksDev[bot]
authored and
MeeseeksDev[bot]
committed
Backport PR #11897: HTMLWriter, put initialisation of frames in setup
1 parent eb81611 commit 529a450

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

lib/matplotlib/animation.py

+7-6
Original file line numberDiff line numberDiff line change
@@ -849,16 +849,17 @@ def __init__(self, fps=30, codec=None, bitrate=None, extra_args=None,
849849
self.default_mode = 'loop'
850850
_log.warning("unrecognized default_mode: using 'loop'")
851851

852-
self._saved_frames = []
853-
self._total_bytes = 0
854-
self._hit_limit = False
855852
super().__init__(fps, codec, bitrate, extra_args, metadata)
856853

857854
def setup(self, fig, outfile, dpi, frame_dir=None):
858855
root, ext = os.path.splitext(outfile)
859856
if ext not in ['.html', '.htm']:
860857
raise ValueError("outfile must be *.htm or *.html")
861858

859+
self._saved_frames = []
860+
self._total_bytes = 0
861+
self._hit_limit = False
862+
862863
if not self.embed_frames:
863864
if frame_dir is None:
864865
frame_dir = root + '_frames'
@@ -875,7 +876,6 @@ def grab_frame(self, **savefig_kwargs):
875876
# Just stop processing if we hit the limit
876877
if self._hit_limit:
877878
return
878-
suffix = '.' + self.frame_format
879879
f = BytesIO()
880880
self.fig.savefig(f, format=self.frame_format,
881881
dpi=self.dpi, **savefig_kwargs)
@@ -909,11 +909,12 @@ def communicate(self):
909909
if self.embed_frames:
910910
fill_frames = _embedded_frames(self._saved_frames,
911911
self.frame_format)
912+
Nframes = len(self._saved_frames)
912913
else:
913914
# temp names is filled by FileMovieWriter
914915
fill_frames = _included_frames(self._temp_names,
915916
self.frame_format)
916-
917+
Nframes = len(self._temp_names)
917918
mode_dict = dict(once_checked='',
918919
loop_checked='',
919920
reflect_checked='')
@@ -924,7 +925,7 @@ def communicate(self):
924925
with open(self.outfile, 'w') as of:
925926
of.write(JS_INCLUDE)
926927
of.write(DISPLAY_TEMPLATE.format(id=uuid.uuid4().hex,
927-
Nframes=len(self._temp_names),
928+
Nframes=Nframes,
928929
fill_frames=fill_frames,
929930
interval=interval,
930931
**mode_dict))

0 commit comments

Comments
 (0)