class_docstr: Represents a config parameter.
  
  A config parameter has a name, a default value, a type,
  a category, a documentation, an optional longer documentatation
  and an optional subtype for list style option.
  
  Most of these informations are used in cabaret to auto generate
  forms representing these options.
docstr: Cast a string into this key type
docstr_tok: ["Cast","a","string","into","this","key","type"]
code: def coerce(self, value):
      """Cast a string into this key type"""
      if self.type == Style:
          return value
      elif self.type == list:
          return self.type(
              map(
                  self.subtype,
                  map(lambda x: x.strip(), value.split(",")),
              )
          )
      elif self.type == dict:
          rv = {}
          for pair in value.split(","):
              key, val = pair.split(":")
              key = key.strip()
              val = val.strip()
              try:
                  rv[key] = self.subtype(val)
              except Exception:
                  rv[key] = val
          return rv
      return self.type(value)
  
imports: from copy import deepcopy
  from pygal import formatters
  from pygal.interpolate import INTERPOLATIONS
  from pygal.style import DefaultStyle, Style
label_desc: Use image node_id 8 for calling the Key obj's underlying member method code with example usage: obj.coerce(value) and returns: self, value, self, rv