3838from matplotlib import cbook
3939from matplotlib import colors as mcolors
4040from matplotlib .backend_bases import (
41- _Backend , FigureCanvasBase , FigureManagerBase , RendererBase )
41+ _Backend , _check_savefig_extra_args , FigureCanvasBase , FigureManagerBase ,
42+ RendererBase )
4243from matplotlib .font_manager import findfont , get_font
4344from matplotlib .ft2font import (LOAD_FORCE_AUTOHINT , LOAD_NO_HINTING ,
4445 LOAD_DEFAULT , LOAD_NO_AUTOHINT )
@@ -447,17 +448,18 @@ def buffer_rgba(self):
447448 """
448449 return self .renderer .buffer_rgba ()
449450
450- def print_raw (self , filename_or_obj , * args , ** kwargs ):
451+ @_check_savefig_extra_args
452+ def print_raw (self , filename_or_obj , * args ):
451453 FigureCanvasAgg .draw (self )
452454 renderer = self .get_renderer ()
453455 with cbook .open_file_cm (filename_or_obj , "wb" ) as fh :
454456 fh .write (renderer .buffer_rgba ())
455457
456458 print_rgba = print_raw
457459
460+ @_check_savefig_extra_args
458461 def print_png (self , filename_or_obj , * args ,
459- metadata = None , pil_kwargs = None ,
460- ** kwargs ):
462+ metadata = None , pil_kwargs = None ):
461463 """
462464 Write the figure to a PNG file.
463465
@@ -519,6 +521,8 @@ def print_to_buffer(self):
519521 # print_figure(), and the latter ensures that `self.figure.dpi` already
520522 # matches the dpi kwarg (if any).
521523
524+ @_check_savefig_extra_args (
525+ extra_kwargs = ["quality" , "optimize" , "progressive" ])
522526 @cbook ._delete_parameter ("3.2" , "dryrun" )
523527 @cbook ._delete_parameter ("3.3" , "quality" ,
524528 alternative = "pil_kwargs={'quality': ...}" )
@@ -572,7 +576,7 @@ def print_jpg(self, filename_or_obj, *args, dryrun=False, pil_kwargs=None,
572576 pil_kwargs = {}
573577 for k in ["quality" , "optimize" , "progressive" ]:
574578 if k in kwargs :
575- pil_kwargs .setdefault (k , kwargs [ k ] )
579+ pil_kwargs .setdefault (k , kwargs . pop ( k ) )
576580 if "quality" not in pil_kwargs :
577581 quality = pil_kwargs ["quality" ] = \
578582 dict .__getitem__ (mpl .rcParams , "savefig.jpeg_quality" )
@@ -590,9 +594,9 @@ def print_jpg(self, filename_or_obj, *args, dryrun=False, pil_kwargs=None,
590594
591595 print_jpeg = print_jpg
592596
597+ @_check_savefig_extra_args
593598 @cbook ._delete_parameter ("3.2" , "dryrun" )
594- def print_tif (self , filename_or_obj , * args , dryrun = False , pil_kwargs = None ,
595- ** kwargs ):
599+ def print_tif (self , filename_or_obj , * , dryrun = False , pil_kwargs = None ):
596600 FigureCanvasAgg .draw (self )
597601 if dryrun :
598602 return
0 commit comments