Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 33cda40

Browse files
committed
Merge pull request #5249 from pwuertz/fix_5144
Keep references to modules required in pgf LatexManager destructor
2 parents a382319 + c552032 commit 33cda40

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

lib/matplotlib/backends/backend_pgf.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,11 @@ def _expect_prompt(self):
286286
return self._expect("\n*")
287287

288288
def __init__(self):
289+
# store references for __del__
290+
self._os_path = os.path
291+
self._shutil = shutil
292+
self._debug = rcParams.get("pgf.debug", False)
293+
289294
# create a tmp directory for running latex, remember to cleanup
290295
self.tmpdir = tempfile.mkdtemp(prefix="mpl_pgf_lm_")
291296
LatexManager._unclean_instances.add(self)
@@ -328,7 +333,7 @@ def __init__(self):
328333
self.str_cache = {}
329334

330335
def _cleanup(self):
331-
if not os.path.isdir(self.tmpdir):
336+
if not self._os_path.isdir(self.tmpdir):
332337
return
333338
try:
334339
self.latex.communicate()
@@ -337,13 +342,13 @@ def _cleanup(self):
337342
except:
338343
pass
339344
try:
340-
shutil.rmtree(self.tmpdir)
345+
self._shutil.rmtree(self.tmpdir)
341346
LatexManager._unclean_instances.discard(self)
342347
except:
343348
sys.stderr.write("error deleting tmp directory %s\n" % self.tmpdir)
344349

345350
def __del__(self):
346-
if rcParams.get("pgf.debug", False):
351+
if self._debug:
347352
print("deleting LatexManager")
348353
self._cleanup()
349354

0 commit comments

Comments
 (0)