@@ -509,10 +509,9 @@ def print_png(self, filename_or_obj, *args,
509509
510510 if metadata is None :
511511 metadata = {}
512- metadata = {
512+ default_metadata = {
513513 "Software" :
514514 f"matplotlib version{ __version__ } , http://matplotlib.org/" ,
515- ** metadata ,
516515 }
517516
518517 FigureCanvasAgg .draw (self )
@@ -521,9 +520,13 @@ def print_png(self, filename_or_obj, *args,
521520 from PIL .PngImagePlugin import PngInfo
522521 # Only use the metadata kwarg if pnginfo is not set, because the
523522 # semantics of duplicate keys in pnginfo is unclear.
524- if "pnginfo" not in pil_kwargs :
523+ if "pnginfo" in pil_kwargs :
524+ if metadata :
525+ cbook ._warn_external ("'metadata' is overridden by the "
526+ "'pnginfo' entry in 'pil_kwargs'." )
527+ else :
525528 pnginfo = PngInfo ()
526- for k , v in metadata .items ():
529+ for k , v in { ** default_metadata , ** metadata } .items ():
527530 pnginfo .add_text (k , v )
528531 pil_kwargs ["pnginfo" ] = pnginfo
529532 pil_kwargs .setdefault ("dpi" , (self .figure .dpi , self .figure .dpi ))
@@ -533,8 +536,8 @@ def print_png(self, filename_or_obj, *args,
533536 else :
534537 renderer = self .get_renderer ()
535538 with cbook .open_file_cm (filename_or_obj , "wb" ) as fh :
536- _png .write_png (renderer ._renderer , fh ,
537- self . figure . dpi , metadata = metadata )
539+ _png .write_png (renderer ._renderer , fh , self . figure . dpi ,
540+ metadata = { ** default_metadata , ** metadata } )
538541
539542 def print_to_buffer (self ):
540543 FigureCanvasAgg .draw (self )
0 commit comments