@@ -678,6 +678,22 @@ def new_figure_manager_given_figure(num, figure):
678
678
return manager
679
679
680
680
681
+ class TmpDirCleaner :
682
+ remaining_tmpdirs = set ()
683
+
684
+ @staticmethod
685
+ def add (tmpdir ):
686
+ TmpDirCleaner .remaining_tmpdirs .add (tmpdir )
687
+
688
+ @staticmethod
689
+ def cleanup_remaining_tmpdirs ():
690
+ for tmpdir in TmpDirCleaner .remaining_tmpdirs :
691
+ try :
692
+ shutil .rmtree (tmpdir )
693
+ except :
694
+ sys .stderr .write ("error deleting tmp directory %s\n " % tmpdir )
695
+
696
+
681
697
class FigureCanvasPgf (FigureCanvasBase ):
682
698
filetypes = {"pgf" : "LaTeX PGF picture" ,
683
699
"pdf" : "LaTeX compiled PGF picture" ,
@@ -798,7 +814,7 @@ def _print_pdf_to_fh(self, fh):
798
814
try :
799
815
shutil .rmtree (tmpdir )
800
816
except :
801
- sys . stderr . write ( "error deleting tmp directory %s \n " % tmpdir )
817
+ TmpDirCleaner . add ( tmpdir )
802
818
803
819
def print_pdf (self , fname_or_fh , * args , ** kwargs ):
804
820
"""
@@ -831,7 +847,7 @@ def _print_png_to_fh(self, fh):
831
847
try :
832
848
shutil .rmtree (tmpdir )
833
849
except :
834
- sys . stderr . write ( "error deleting tmp directory %s \n " % tmpdir )
850
+ TmpDirCleaner . add ( tmpdir )
835
851
836
852
def print_png (self , fname_or_fh , * args , ** kwargs ):
837
853
"""
@@ -904,4 +920,8 @@ def __init__(self, *args):
904
920
905
921
FigureManager = FigureManagerPgf
906
922
907
- atexit .register (LatexManager ._cleanup_remaining_instances )
923
+ def _cleanup_all ():
924
+ LatexManager ._cleanup_remaining_instances ()
925
+ TmpDirCleaner .cleanup_remaining_tmpdirs ()
926
+
927
+ atexit .register (_cleanup_all )
0 commit comments