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 list of extra help sources from a given configSet.
  
  Valid configSets are 'user' or 'default'.  Return a list of tuples of
  the form (menu_item , path_to_help_file , option), or return the empty
  list.  'option' is the sequence number of the help resource.  'option'
  values determine the position of the menu items on the Help menu,
  therefore the returned list must be sorted by 'option'.
docstr_tok: ["Return","list","of","extra","help","sources","from","a","given","configSet",".","Valid","configSets","are","'user","'","or","'default","'",".","Return","a","list","of","tuples","of","the","form","(","menu_item",",","path_to_help_file",",","option",")",",","or","return","the","empty","list",".","'option","'","is","the","sequence","number","of","the","help","resource",".","'option'","values","determine","the","position","of","the","menu","items","on","the","Help","menu",",","therefore","the","returned","list","must","be","sorted","by","'option","'","."]
code: def GetExtraHelpSourceList(self, configSet):
      """Return list of extra help sources from a given configSet.
  
      Valid configSets are 'user' or 'default'.  Return a list of tuples of
      the form (menu_item , path_to_help_file , option), or return the empty
      list.  'option' is the sequence number of the help resource.  'option'
      values determine the position of the menu items on the Help menu,
      therefore the returned list must be sorted by 'option'.
  
      """
      helpSources = []
      if configSet == "user":
          cfgParser = self.userCfg["main"]
      elif configSet == "default":
          cfgParser = self.defaultCfg["main"]
      else:
          raise InvalidConfigSet("Invalid configSet specified")
      options = cfgParser.GetOptionList("HelpFiles")
      for option in options:
          value = cfgParser.Get("HelpFiles", option, default=";")
          if (
              value.find(";") == -1
          ):  # malformed config entry with no ';'
              menuItem = ""  # make these empty
              helpPath = ""  # so value won't be added to list
          else:  # config entry contains ';' as expected
              value = value.split(";")
              menuItem = value[0].strip()
              helpPath = value[1].strip()
          if menuItem and helpPath:  # neither are empty strings
              helpSources.append((menuItem, helpPath, option))
      helpSources.sort(key=lambda x: x[2])
      return helpSources
  
imports: from configparser import ConfigParser
  import os
  import sys
  from tkinter.font import Font
  import idlelib
label_desc: Use image node_id 24 for calling the IdleConf obj's underlying member method code with example usage: obj.GetExtraHelpSourceList(configSet) and returns: helpSources