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: Retrieve a font from configuration (font, font-size, font-bold)
  Intercept the special value 'TkFixedFont' and substitute
  the actual font, factoring in some tweaks if needed for
  appearance sakes.
  
  The 'root' parameter can normally be any valid Tkinter widget.
  
  Return a tuple (family, size, weight) suitable for passing
  to tkinter.Font
docstr_tok: ["Retrieve","a","font","from","configuration","(","font",",","font-size",",","font-bold",")","Intercept","the","special","value","'TkFixedFont","'","and","substitute","the","actual","font",",","factoring","in","some","tweaks","if","needed","for","appearance","sakes",".","The","'root","'","parameter","can","normally","be","any","valid","Tkinter","widget",".","Return","a","tuple","(","family",",","size",",","weight",")","suitable","for","passing","to","tkinter.Font"]
code: def GetFont(self, root, configType, section):
      """Retrieve a font from configuration (font, font-size, font-bold)
      Intercept the special value 'TkFixedFont' and substitute
      the actual font, factoring in some tweaks if needed for
      appearance sakes.
  
      The 'root' parameter can normally be any valid Tkinter widget.
  
      Return a tuple (family, size, weight) suitable for passing
      to tkinter.Font
      """
      family = self.GetOption(
          configType, section, "font", default="courier"
      )
      size = self.GetOption(
          configType, section, "font-size", type="int", default="10"
      )
      bold = self.GetOption(
          configType, section, "font-bold", default=0, type="bool"
      )
      if family == "TkFixedFont":
          f = Font(name="TkFixedFont", exists=True, root=root)
          actualFont = Font.actual(f)
          family = actualFont["family"]
          size = actualFont["size"]
          if size <= 0:
              size = 10  # if font in pixels, ignore actual size
          bold = actualFont["weight"] == "bold"
      return (family, size, "bold" if bold else "normal")
  
imports: from configparser import ConfigParser
  import os
  import sys
  from tkinter.font import Font
  import idlelib
label_desc: Use image node_id 26 for calling the IdleConf obj's underlying member method code with example usage: obj.GetFont(root, configType, section) and returns: family,  size,  unknown