@@ -444,11 +444,11 @@ def run_code(code, code_path, ns=None, function_name=None):
444444 except OSError as err :
445445 raise OSError (str (err ) + '\n `plot_working_directory` option in'
446446 'Sphinx configuration file must be a valid '
447- 'directory path' )
447+ 'directory path' ) from err
448448 except TypeError as err :
449449 raise TypeError (str (err ) + '\n `plot_working_directory` option in '
450450 'Sphinx configuration file must be a string or '
451- 'None' )
451+ 'None' ) from err
452452 elif code_path is not None :
453453 dirname = os .path .abspath (os .path .dirname (code_path ))
454454 os .chdir (dirname )
@@ -475,8 +475,8 @@ def run_code(code, code_path, ns=None, function_name=None):
475475 if function_name is not None :
476476 exec (function_name + "()" , ns )
477477
478- except (Exception , SystemExit ):
479- raise PlotError (traceback .format_exc ())
478+ except (Exception , SystemExit ) as err :
479+ raise PlotError (traceback .format_exc ()) from err
480480 finally :
481481 os .chdir (pwd )
482482 return ns
@@ -600,8 +600,8 @@ def render_figures(code, code_path, output_dir, output_base, context,
600600 for fmt , dpi in formats :
601601 try :
602602 figman .canvas .figure .savefig (img .filename (fmt ), dpi = dpi )
603- except Exception :
604- raise PlotError (traceback .format_exc ())
603+ except Exception as err :
604+ raise PlotError (traceback .format_exc ()) from err
605605 img .formats .append (fmt )
606606
607607 results .append ((code_piece , images ))
0 commit comments