From: terryjreedy <tjreedy@udel.edu>
Date: Sat, 8 Jul 2017 02:28:06 +0000 (-0400)
Subject: bpo-8231: Call idlelib.IdleConf.GetUserCfgDir only once. (#2629)
X-Git-Tag: v3.7.0a1~447
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=223c7e70e48eb6eed4aab3906fbe32b098faafe3;p=python

bpo-8231: Call idlelib.IdleConf.GetUserCfgDir only once. (#2629)
---

diff --git a/Lib/idlelib/config.py b/Lib/idlelib/config.py
index 621e0bfc8b..ed37f11a9c 100644
--- a/Lib/idlelib/config.py
+++ b/Lib/idlelib/config.py
@@ -172,10 +172,10 @@ class IdleConf:
         "Populate default and user config parser dictionaries."
         #build idle install path
         if __name__ != '__main__': # we were imported
-            idleDir=os.path.dirname(__file__)
+            idleDir = os.path.dirname(__file__)
         else: # we were exec'ed (for testing only)
-            idleDir=os.path.abspath(sys.path[0])
-        userDir=self.GetUserCfgDir()
+            idleDir = os.path.abspath(sys.path[0])
+        self.userdir = userDir = self.GetUserCfgDir()
 
         defCfgFiles = {}
         usrCfgFiles = {}
diff --git a/Lib/idlelib/editor.py b/Lib/idlelib/editor.py
index 5b64ef4630..43b105f726 100644
--- a/Lib/idlelib/editor.py
+++ b/Lib/idlelib/editor.py
@@ -103,8 +103,8 @@ class EditorWindow(object):
             self.tkinter_vars = {}  # keys: Tkinter event names
                                     # values: Tkinter variable instances
             self.top.instance_dict = {}
-        self.recent_files_path = os.path.join(idleConf.GetUserCfgDir(),
-                'recent-files.lst')
+        self.recent_files_path = os.path.join(
+                idleConf.userdir, 'recent-files.lst')
         self.text_frame = text_frame = Frame(top)
         self.vbar = vbar = Scrollbar(text_frame, name='vbar')
         self.width = idleConf.GetOption('main', 'EditorWindow',
diff --git a/Lib/idlelib/pyshell.py b/Lib/idlelib/pyshell.py
index be7bd3dfcf..47df74433c 100755
--- a/Lib/idlelib/pyshell.py
+++ b/Lib/idlelib/pyshell.py
@@ -117,8 +117,8 @@ class PyShellEditorWindow(EditorWindow):
         self.text.bind("<<clear-breakpoint-here>>", self.clear_breakpoint_here)
         self.text.bind("<<open-python-shell>>", self.flist.open_shell)
 
-        self.breakpointPath = os.path.join(idleConf.GetUserCfgDir(),
-                                           'breakpoints.lst')
+        self.breakpointPath = os.path.join(
+                idleConf.userdir, 'breakpoints.lst')
         # whenever a file is changed, restore breakpoints
         def filename_changed_hook(old_hook=self.io.filename_change_hook,
                                   self=self):
diff --git a/Misc/NEWS.d/next/IDLE/2017-07-07-21-10-55.bpo-8231.yEge3L.rst b/Misc/NEWS.d/next/IDLE/2017-07-07-21-10-55.bpo-8231.yEge3L.rst
new file mode 100644
index 0000000000..c96cc4e143
--- /dev/null
+++ b/Misc/NEWS.d/next/IDLE/2017-07-07-21-10-55.bpo-8231.yEge3L.rst
@@ -0,0 +1 @@
+IDLE: call config.IdleConf.GetUserCfgDir only once.