Revision: 7829
          http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7829&view=rev
Author:   jouni
Date:     2009-09-27 12:41:23 +0000 (Sun, 27 Sep 2009)

Log Message:
-----------
Add a savefig.extension rcparam in preparation for pdf tests

Modified Paths:
--------------
    trunk/matplotlib/CHANGELOG
    trunk/matplotlib/doc/api/api_changes.rst
    trunk/matplotlib/lib/matplotlib/figure.py
    trunk/matplotlib/lib/matplotlib/rcsetup.py
    trunk/matplotlib/matplotlibrc.template

Modified: trunk/matplotlib/CHANGELOG
===================================================================
--- trunk/matplotlib/CHANGELOG  2009-09-26 00:00:48 UTC (rev 7828)
+++ trunk/matplotlib/CHANGELOG  2009-09-27 12:41:23 UTC (rev 7829)
@@ -1,3 +1,6 @@
+2009-09-27 Add a savefig.extension rcparam to control the default 
+           filename extension used by savefig. - JKS
+
 ===============================================
 2009-09-21 Tagged for release 0.99.1
 

Modified: trunk/matplotlib/doc/api/api_changes.rst
===================================================================
--- trunk/matplotlib/doc/api/api_changes.rst    2009-09-26 00:00:48 UTC (rev 
7828)
+++ trunk/matplotlib/doc/api/api_changes.rst    2009-09-27 12:41:23 UTC (rev 
7829)
@@ -7,6 +7,9 @@
 outward-facing API.  If updating matplotlib breaks your scripts, this
 list may help describe what changes may be necessary in your code.
 
+Changes beyond 0.99.x
+=====================
+
 * You can now print several figures to one pdf file. See the docstrings
   of the class :class:`matplotlib.backends.backend_pdf.PdfPages` for
   more information.
@@ -18,42 +21,43 @@
 .. _configobj: http://www.voidspace.org.uk/python/configobj.html
 .. _`enthought.traits`: http://code.enthought.com/projects/traits
 
-Changes beyond 0.99.x
-=====================
+* The new rc parameter ``savefig.extension`` sets the filename extension
+  that is used by :meth:`matplotlib.figure.Figure.savefig` if its *fname*
+  argument lacks an extension.
 
-In an effort to simplify the backend API, all clipping rectangles
-and paths are now passed in using GraphicsContext objects, even
-on collections and images.  Therefore::
+* In an effort to simplify the backend API, all clipping rectangles
+  and paths are now passed in using GraphicsContext objects, even
+  on collections and images.  Therefore::
 
-  draw_path_collection(self, master_transform, cliprect, clippath,
-                       clippath_trans, paths, all_transforms, offsets,
-                       offsetTrans, facecolors, edgecolors, linewidths,
-                       linestyles, antialiaseds, urls)
+    draw_path_collection(self, master_transform, cliprect, clippath,
+                         clippath_trans, paths, all_transforms, offsets,
+                         offsetTrans, facecolors, edgecolors, linewidths,
+                         linestyles, antialiaseds, urls)
 
-  # is now
+    # is now
 
-  draw_path_collection(self, gc, master_transform, paths, all_transforms,
-                       offsets, offsetTrans, facecolors, edgecolors,
-                       linewidths, linestyles, antialiaseds, urls)
+    draw_path_collection(self, gc, master_transform, paths, all_transforms,
+                         offsets, offsetTrans, facecolors, edgecolors,
+                         linewidths, linestyles, antialiaseds, urls)
 
 
-  draw_quad_mesh(self, master_transform, cliprect, clippath,
-                 clippath_trans, meshWidth, meshHeight, coordinates,
-                 offsets, offsetTrans, facecolors, antialiased,
-                 showedges)
+    draw_quad_mesh(self, master_transform, cliprect, clippath,
+                   clippath_trans, meshWidth, meshHeight, coordinates,
+                   offsets, offsetTrans, facecolors, antialiased,
+                   showedges)
 
-  # is now
+    # is now
 
-  draw_quad_mesh(self, gc, master_transform, meshWidth, meshHeight,
-                 coordinates, offsets, offsetTrans, facecolors,
-                 antialiased, showedges)
+    draw_quad_mesh(self, gc, master_transform, meshWidth, meshHeight,
+                   coordinates, offsets, offsetTrans, facecolors,
+                   antialiased, showedges)
 
 
-  draw_image(self, x, y, im, bbox, clippath=None, clippath_trans=None)
+    draw_image(self, x, y, im, bbox, clippath=None, clippath_trans=None)
 
-  # is now
+    # is now
 
-  draw_image(self, gc, x, y, im)
+    draw_image(self, gc, x, y, im)
 
 Changes in 0.99
 ======================

Modified: trunk/matplotlib/lib/matplotlib/figure.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/figure.py   2009-09-26 00:00:48 UTC (rev 
7828)
+++ trunk/matplotlib/lib/matplotlib/figure.py   2009-09-27 12:41:23 UTC (rev 
7829)
@@ -986,7 +986,11 @@
             :class:`~matplotlib.backends.backend_pdf.PdfPages`.
 
             If *format* is *None* and *fname* is a string, the output
-            format is deduced from the extension of the filename.
+            format is deduced from the extension of the filename. If
+            the filename has no extension, the value of the rc parameter
+            ``savefig.extension`` is used. If that value is 'auto',
+            the backend determines the extension.
+
             If *fname* is not a string, remember to specify *format* to
             ensure that the correct backend is used.
 
@@ -1033,6 +1037,11 @@
             if key not in kwargs:
                 kwargs[key] = rcParams['savefig.%s'%key]
 
+        extension = rcParams['savefig.extension']
+        if args and '.' not in args[0] and extension != 'auto':
+            fname = args[0] + '.' + extension
+            args = (fname,) + args[1:]
+                
         transparent = kwargs.pop('transparent', False)
         if transparent:
             original_figure_alpha = self.patch.get_alpha()

Modified: trunk/matplotlib/lib/matplotlib/rcsetup.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/rcsetup.py  2009-09-26 00:00:48 UTC (rev 
7828)
+++ trunk/matplotlib/lib/matplotlib/rcsetup.py  2009-09-27 12:41:23 UTC (rev 
7829)
@@ -511,6 +511,7 @@
     'savefig.facecolor'   : ['w', validate_color],  # facecolor; white
     'savefig.edgecolor'   : ['w', validate_color],  # edgecolor; white
     'savefig.orientation' : ['portrait', validate_orientation],  # edgecolor; 
white
+    'savefig.extension'   : ['auto', str],          # what to add to 
extensionless filenames
 
     'cairo.format'       : ['png', validate_cairo_format],
     'tk.window_focus'    : [False, validate_bool],  # Maintain shell focus for 
TkAgg

Modified: trunk/matplotlib/matplotlibrc.template
===================================================================
--- trunk/matplotlib/matplotlibrc.template      2009-09-26 00:00:48 UTC (rev 
7828)
+++ trunk/matplotlib/matplotlibrc.template      2009-09-27 12:41:23 UTC (rev 
7829)
@@ -306,6 +306,7 @@
 #savefig.dpi       : 100      # figure dots per inch
 #savefig.facecolor : white    # figure facecolor when saving
 #savefig.edgecolor : white    # figure edgecolor when saving
+#savefig.extension : auto     # what extension to use for savefig('foo'), or 
'auto'
 
 #cairo.format      : png      # png, ps, pdf, svg
 


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
Come build with us! The BlackBerry® Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9-12, 2009. Register now!
http://p.sf.net/sfu/devconf
_______________________________________________
Matplotlib-checkins mailing list
Matplotlib-checkins@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins

Reply via email to