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

Skip to content

Commit 9bc08c2

Browse files
committed
Simplify savefig.directory persistence.
1 parent 570e830 commit 9bc08c2

File tree

5 files changed

+32
-46
lines changed

5 files changed

+32
-46
lines changed

lib/matplotlib/backend_bases.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2303,7 +2303,7 @@ def get_default_filename(self):
23032303
default_filetype = self.get_default_filetype()
23042304
default_filename = default_basename + '.' + default_filetype
23052305

2306-
save_dir = os.path.expanduser(rcParams.get('savefig.directory', ''))
2306+
save_dir = os.path.expanduser(rcParams['savefig.directory'])
23072307

23082308
# ensure non-existing filename in save dir
23092309
i = 1

lib/matplotlib/backends/backend_gtk.py

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -707,7 +707,7 @@ def get_filechooser(self):
707707
fc = FileChooserDialog(
708708
title='Save the figure',
709709
parent=self.win,
710-
path=os.path.expanduser(rcParams.get('savefig.directory', '')),
710+
path=os.path.expanduser(rcParams['savefig.directory']),
711711
filetypes=self.canvas.get_supported_filetypes(),
712712
default_filetype=self.canvas.get_default_filetype())
713713
fc.set_current_name(self.canvas.get_default_filename())
@@ -718,13 +718,10 @@ def save_figure(self, *args):
718718
fname, format = chooser.get_filename_from_user()
719719
chooser.destroy()
720720
if fname:
721-
startpath = os.path.expanduser(rcParams.get('savefig.directory', ''))
722-
if startpath == '':
723-
# explicitly missing key or empty str signals to use cwd
724-
rcParams['savefig.directory'] = startpath
725-
else:
726-
# save dir for next time
727-
rcParams['savefig.directory'] = os.path.dirname(six.text_type(fname))
721+
# Save dir for next time, unless empty str (i.e., use cwd).
722+
if startpath != "":
723+
rcParams['savefig.directory'] = (
724+
os.path.dirname(six.text_type(fname)))
728725
try:
729726
self.canvas.figure.savefig(fname, format=format)
730727
except Exception as e:

lib/matplotlib/backends/backend_gtk3.py

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -561,7 +561,7 @@ def get_filechooser(self):
561561
fc = FileChooserDialog(
562562
title='Save the figure',
563563
parent=self.win,
564-
path=os.path.expanduser(rcParams.get('savefig.directory', '')),
564+
path=os.path.expanduser(rcParams['savefig.directory']),
565565
filetypes=self.canvas.get_supported_filetypes(),
566566
default_filetype=self.canvas.get_default_filetype())
567567
fc.set_current_name(self.canvas.get_default_filename())
@@ -572,13 +572,11 @@ def save_figure(self, *args):
572572
fname, format = chooser.get_filename_from_user()
573573
chooser.destroy()
574574
if fname:
575-
startpath = os.path.expanduser(rcParams.get('savefig.directory', ''))
576-
if startpath == '':
577-
# explicitly missing key or empty str signals to use cwd
578-
rcParams['savefig.directory'] = startpath
579-
else:
580-
# save dir for next time
581-
rcParams['savefig.directory'] = os.path.dirname(six.text_type(fname))
575+
startpath = os.path.expanduser(rcParams['savefig.directory'])
576+
# Save dir for next time, unless empty str (i.e., use cwd).
577+
if startpath != "":
578+
rcParams['savefig.directory'] = (
579+
os.path.dirname(six.text_type(fname)))
582580
try:
583581
self.canvas.figure.savefig(fname, format=format)
584582
except Exception as e:
@@ -814,7 +812,7 @@ def get_filechooser(self):
814812
fc = FileChooserDialog(
815813
title='Save the figure',
816814
parent=self.figure.canvas.manager.window,
817-
path=os.path.expanduser(rcParams.get('savefig.directory', '')),
815+
path=os.path.expanduser(rcParams['savefig.directory']),
818816
filetypes=self.figure.canvas.get_supported_filetypes(),
819817
default_filetype=self.figure.canvas.get_default_filetype())
820818
fc.set_current_name(self.figure.canvas.get_default_filename())
@@ -825,8 +823,7 @@ def trigger(self, *args, **kwargs):
825823
fname, format_ = chooser.get_filename_from_user()
826824
chooser.destroy()
827825
if fname:
828-
startpath = os.path.expanduser(
829-
rcParams.get('savefig.directory', ''))
826+
startpath = os.path.expanduser(rcParams['savefig.directory'])
830827
if startpath == '':
831828
# explicitly missing key or empty str signals to use cwd
832829
rcParams['savefig.directory'] = startpath

lib/matplotlib/backends/backend_qt5.py

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -725,8 +725,8 @@ def save_figure(self, *args):
725725
sorted_filetypes = sorted(six.iteritems(filetypes))
726726
default_filetype = self.canvas.get_default_filetype()
727727

728-
startpath = matplotlib.rcParams.get('savefig.directory', '')
729-
startpath = os.path.expanduser(startpath)
728+
startpath = os.path.expanduser(
729+
matplotlib.rcParams['savefig.directory'])
730730
start = os.path.join(startpath, self.canvas.get_default_filename())
731731
filters = []
732732
selectedFilter = None
@@ -742,13 +742,10 @@ def save_figure(self, *args):
742742
"Choose a filename to save to",
743743
start, filters, selectedFilter)
744744
if fname:
745-
if startpath == '':
746-
# explicitly missing key or empty str signals to use cwd
747-
matplotlib.rcParams['savefig.directory'] = startpath
748-
else:
749-
# save dir for next time
750-
savefig_dir = os.path.dirname(six.text_type(fname))
751-
matplotlib.rcParams['savefig.directory'] = savefig_dir
745+
# Save dir for next time, unless empty str (i.e., use cwd).
746+
if startpath != "":
747+
matplotlib.rcParams['savefig.directory'] = (
748+
os.path.dirname(six.text_type(fname)))
752749
try:
753750
self.canvas.figure.savefig(six.text_type(fname))
754751
except Exception as e:

lib/matplotlib/backends/backend_tkagg.py

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -768,8 +768,7 @@ def save_figure(self, *args):
768768
# work - JDH!
769769
#defaultextension = self.canvas.get_default_filetype()
770770
defaultextension = ''
771-
initialdir = rcParams.get('savefig.directory', '')
772-
initialdir = os.path.expanduser(initialdir)
771+
initialdir = os.path.expanduser(rcParams['savefig.directory'])
773772
initialfile = self.canvas.get_default_filename()
774773
fname = tkinter_tkfiledialog.asksaveasfilename(
775774
master=self.window,
@@ -780,20 +779,17 @@ def save_figure(self, *args):
780779
initialfile=initialfile,
781780
)
782781

783-
if fname == "" or fname == ():
782+
if fname in ["", ()]:
784783
return
785-
else:
786-
if initialdir == '':
787-
# explicitly missing key or empty str signals to use cwd
788-
rcParams['savefig.directory'] = initialdir
789-
else:
790-
# save dir for next time
791-
rcParams['savefig.directory'] = os.path.dirname(six.text_type(fname))
792-
try:
793-
# This method will handle the delegation to the correct type
794-
self.canvas.figure.savefig(fname)
795-
except Exception as e:
796-
tkinter_messagebox.showerror("Error saving file", str(e))
784+
# Save dir for next time, unless empty str (i.e., use cwd).
785+
if initialdir != "":
786+
rcParams['savefig.directory'] = (
787+
os.path.dirname(six.text_type(fname)))
788+
try:
789+
# This method will handle the delegation to the correct type
790+
self.canvas.figure.savefig(fname)
791+
except Exception as e:
792+
tkinter_messagebox.showerror("Error saving file", str(e))
797793

798794
def set_active(self, ind):
799795
self._ind = ind
@@ -984,8 +980,7 @@ def trigger(self, *args):
984980
# work - JDH!
985981
# defaultextension = self.figure.canvas.get_default_filetype()
986982
defaultextension = ''
987-
initialdir = rcParams.get('savefig.directory', '')
988-
initialdir = os.path.expanduser(initialdir)
983+
initialdir = os.path.expanduser(rcParams['savefig.directory'])
989984
initialfile = self.figure.canvas.get_default_filename()
990985
fname = tkinter_tkfiledialog.asksaveasfilename(
991986
master=self.figure.canvas.manager.window,

0 commit comments

Comments
 (0)