class_docstr: IdleConfigParser specialised for user configuration handling.
class_docstr_tok: ["IdleConfigParser","specialised","for","user","configuration","handling","."]
docstr: 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.
docstr_tok: ["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","."]
code: 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 and fname[0] != "#":
          if not self.IsEmpty():
              try:
                  cfgFile = open(fname, "w")
              except OSError:
                  os.unlink(fname)
                  cfgFile = open(fname, "w")
              with cfgFile:
                  self.write(cfgFile)
          elif os.path.exists(self.file):
              os.remove(self.file)
  
imports: from configparser import ConfigParser
  import os
  import sys
  from tkinter.font import Font
  import idlelib
label_desc: Use image node_id 6 for calling the IdleUserConfParser obj's underlying member method code with example usage: obj.Save() without return types