diff options
author | Cheryl Sabella <cheryl.sabella@gmail.com> | 2019-07-16 20:58:25 (GMT) |
---|---|---|
committer | Terry Jan Reedy <tjreedy@udel.edu> | 2019-07-16 20:58:25 (GMT) |
commit | f8d4cc7dbbf54b9c5435c3080582a4aa421a067d (patch) | |
tree | 05eee5cc0b10e339d602250362c7786147a91fff | |
parent | f69d5c61981ea97d251db515c7ff280fcc17182d (diff) | |
download | cpython-f8d4cc7dbbf54b9c5435c3080582a4aa421a067d.zip cpython-f8d4cc7dbbf54b9c5435c3080582a4aa421a067d.tar.gz cpython-f8d4cc7dbbf54b9c5435c3080582a4aa421a067d.tar.bz2 |
bpo-27452: IDLE: Cleanup config.py code (GH-14577)
-rw-r--r-- | Lib/idlelib/config.py | 35 | ||||
-rw-r--r-- | Lib/idlelib/idle_test/test_config.py | 13 | ||||
-rw-r--r-- | Misc/NEWS.d/next/IDLE/2019-07-03-22-47-44.bpo-27452.nePPLi.rst | 1 |
3 files changed, 10 insertions, 39 deletions
diff --git a/Lib/idlelib/config.py b/Lib/idlelib/config.py index 2233dac..0c55c9a 100644 --- a/Lib/idlelib/config.py +++ b/Lib/idlelib/config.py @@ -123,17 +123,11 @@ class IdleUserConfParser(IdleConfParser): self.RemoveEmptySections() return not self.sections() - def RemoveFile(self): - "Remove user config file self.file from disk if it exists." - if os.path.exists(self.file): - os.remove(self.file) - def Save(self): """Update user configuration file. If self not empty after removing empty sections, write the file to disk. Otherwise, remove the file from disk if it exists. - """ fname = self.file if fname: @@ -145,8 +139,8 @@ class IdleUserConfParser(IdleConfParser): cfgFile = open(fname, 'w') with cfgFile: self.write(cfgFile) - else: - self.RemoveFile() + elif os.path.exists(self.file): + os.remove(self.file) class IdleConf: """Hold config parsers for all idle config files in singleton instance. @@ -171,24 +165,13 @@ class IdleConf: def CreateConfigHandlers(self): "Populate default and user config parser dictionaries." - #build idle install path - if __name__ != '__main__': # we were imported - idleDir = os.path.dirname(__file__) - else: # we were exec'ed (for testing only) - idleDir = os.path.abspath(sys.path[0]) - self.userdir = userDir = self.GetUserCfgDir() - - defCfgFiles = {} - usrCfgFiles = {} - # TODO eliminate these temporaries by combining loops - for cfgType in self.config_types: #build config file names - defCfgFiles[cfgType] = os.path.join( - idleDir, 'config-' + cfgType + '.def') - usrCfgFiles[cfgType] = os.path.join( - userDir, 'config-' + cfgType + '.cfg') - for cfgType in self.config_types: #create config parsers - self.defaultCfg[cfgType] = IdleConfParser(defCfgFiles[cfgType]) - self.userCfg[cfgType] = IdleUserConfParser(usrCfgFiles[cfgType]) + idledir = os.path.dirname(__file__) + self.userdir = userdir = self.GetUserCfgDir() + for cfg_type in self.config_types: + self.defaultCfg[cfg_type] = IdleConfParser( + os.path.join(idledir, f'config-{cfg_type}.def')) + self.userCfg[cfg_type] = IdleUserConfParser( + os.path.join(userdir, f'config-{cfg_type}.cfg')) def GetUserCfgDir(self): """Return a filesystem directory for storing user config files. diff --git a/Lib/idlelib/idle_test/test_config.py b/Lib/idlelib/idle_test/test_config.py index 255210d..492f2f6 100644 --- a/Lib/idlelib/idle_test/test_config.py +++ b/Lib/idlelib/idle_test/test_config.py @@ -159,19 +159,6 @@ class IdleUserConfParserTest(unittest.TestCase): self.assertFalse(parser.IsEmpty()) self.assertCountEqual(parser.sections(), ['Foo']) - def test_remove_file(self): - with tempfile.TemporaryDirectory() as tdir: - path = os.path.join(tdir, 'test.cfg') - parser = self.new_parser(path) - parser.RemoveFile() # Should not raise exception. - - parser.AddSection('Foo') - parser.SetOption('Foo', 'bar', 'true') - parser.Save() - self.assertTrue(os.path.exists(path)) - parser.RemoveFile() - self.assertFalse(os.path.exists(path)) - def test_save(self): with tempfile.TemporaryDirectory() as tdir: path = os.path.join(tdir, 'test.cfg') diff --git a/Misc/NEWS.d/next/IDLE/2019-07-03-22-47-44.bpo-27452.nePPLi.rst b/Misc/NEWS.d/next/IDLE/2019-07-03-22-47-44.bpo-27452.nePPLi.rst new file mode 100644 index 0000000..ddd37bb --- /dev/null +++ b/Misc/NEWS.d/next/IDLE/2019-07-03-22-47-44.bpo-27452.nePPLi.rst @@ -0,0 +1 @@ +Cleanup ``config.py`` by inlining ``RemoveFile`` and simplifying the handling of ``file`` in ``CreateConfigHandlers``.
\ No newline at end of file |