docs: def get(self, section, key):
          ''' Get the value of a key in the given section. It will automatically
              translate the paramter type if the parameter has a type specified
              with the description.
  
              @param section: the section where the key can be found.
              @param key: the key the value is stored under.
              @return the value as a string or the specified type.
              @exception: if the type is specified and the value could not be
                      translated to the given type.
          '''
          section = section.lower()
          key = key.lower()
          descr, value_type, default = self.get_description(section, key)
          value = ConfigParser.get(self, section, key)
          if value_type == bool:
              if PY2:
                  if value.lower() not in self._boolean_states:
                      raise AppConfigValueException('Not a boolean: {0}'.
                              format(value))
                  return self._boolean_states[value.lower()]
              else:
                  try:
                      return self._convert_to_boolean(value)
                  except ValueError:
                      raise AppConfigValueException('Not a boolean: {0}'.
                              format(value))
  
          return value_type(value)