code: def value(self, key, type_=None):
          
          if type_ is None:
              default = self._default_value(key)
              val = self._value(key, default)
              if type(val) == type(default):
                  return val
              else:
                  return self._convert_value(val, type(default))
          else:
              val = self._value(key, None)
              if val is None:
                  return None
              return self._convert_value(val, type_)
docs: Get the value of a setting.
  
          If `type` is not provided, the key must be for a known setting,
          present in `self.default_settings`. Conversely if `type` IS provided,
          the key must be for an unknown setting.