class_docstr: Hold config parsers for all idle config files in singleton instance.
  
  Default config files, self.defaultCfg --
      for config_type in self.config_types:
          (idle install dir)/config-{config-type}.def
  
  User config files, self.userCfg --
      for config_type in self.config_types:
      (user home dir)/.idlerc/config-{config-type}.cfg
class_docstr_tok: ["Hold","config","parsers","for","all","idle","config","files","in","singleton","instance",".","Default","config","files",",","self.defaultCfg","--","for","config_type","in","self.config_types",":","(","idle","install","dir",")","\/config-","{","config-type","}",".def","User","config","files",",","self.userCfg","--","for","config_type","in","self.config_types",":","(","user","home","dir",")","\/.idlerc\/config-","{","config-type","}",".cfg"]
docstr: Return a value for configType section option, or default.
  
  If type is not None, return a value of that type.  Also pass raw
  to the config parser.  First try to return a valid value
  (including type) from a user configuration. If that fails, try
  the default configuration. If that fails, return default, with a
  default of None.
  
  Warn if either user or default configurations have an invalid value.
  Warn if default is returned and warn_on_default is True.
docstr_tok: ["Return","a","value","for","configType","section","option",",","or","default",".","If","type","is","not","None",",","return","a","value","of","that","type",".","Also","pass","raw","to","the","config","parser",".","First","try","to","return","a","valid","value","(","including","type",")","from","a","user","configuration",".","If","that","fails",",","try","the","default","configuration",".","If","that","fails",",","return","default",",","with","a","default","of","None",".","Warn","if","either","user","or","default","configurations","have","an","invalid","value",".","Warn","if","default","is","returned","and","warn_on_default","is","True","."]
code: def GetOption(
      self,
      configType,
      section,
      option,
      default=None,
      type=None,
      warn_on_default=True,
      raw=False,
  ):
      """Return a value for configType section option, or default.
  
      If type is not None, return a value of that type.  Also pass raw
      to the config parser.  First try to return a valid value
      (including type) from a user configuration. If that fails, try
      the default configuration. If that fails, return default, with a
      default of None.
  
      Warn if either user or default configurations have an invalid value.
      Warn if default is returned and warn_on_default is True.
      """
      try:
          if self.userCfg[configType].has_option(section, option):
              return self.userCfg[configType].Get(
                  section, option, type=type, raw=raw
              )
      except ValueError:
          warning = (
              "\n Warning: config.py - IdleConf.GetOption -\n"
              " invalid %r value for configuration option %r\n"
              " from section %r: %r"
              % (
                  type,
                  option,
                  section,
                  self.userCfg[configType].Get(
                      section, option, raw=raw
                  ),
              )
          )
          _warn(warning, configType, section, option)
      try:
          if self.defaultCfg[configType].has_option(section, option):
              return self.defaultCfg[configType].Get(
                  section, option, type=type, raw=raw
              )
      except ValueError:
          pass
      # returning default, print warning
      if warn_on_default:
          warning = (
              "\n Warning: config.py - IdleConf.GetOption -\n"
              " problem retrieving configuration option %r\n"
              " from section %r.\n"
              " returning default value: %r"
              % (option, section, default)
          )
          _warn(warning, configType, section, option)
      return default
  
imports: from configparser import ConfigParser
  import os
  import sys
  from tkinter.font import Font
  import idlelib
label_desc: Use image node_id 4 for calling the IdleConf obj's underlying member method code with example usage: obj.GetOption(configType, section, option, default, type, warn_on_default, raw) and returns: default, self, self