def set(self, section, key, value):
        ''' Set the value for a key in the given section. It will check the
            type of the value if it is available. If the value is not from
            the given type it will be transformed to the type.
            An exception will be thrown if there is a problem with the
            conversion.

            @param section: the section of the key
            @param key: the key where to store the valu
            @param value: the value to store
            @exception: If there is a problem with the conversation of the
                    value type.
        '''
        value_type = str
        if self.has_option(section, key):
            descr, value_type, default = self.get_description(section, key)

        if value_type != type(value):
            if value_type == bool:
                if ((type(value) in string_types and
                        value.lower() in ('true', 't')) or
                        (type(value) == int and value > 0)):
                    value = True
                elif ((type(value) in string_types and
                        value.lower() in ('false', 'f')) or
                        (type(value) == int and value == 0)):
                    value = False
                else:
                    raise AppConfigValueException('Could not convert '
                            'boolean type: {0}'.format(value))
            else:
                value = value_type(value)

        if not self.has_section(section):
            self.add_section(section)

        ConfigParser.set(self, section, key, str(value))
Set the value for a key in the given section. It will check the
            type of the value if it is available. If the value is not from
            the given type it will be transformed to the type.
            An exception will be thrown if there is a problem with the
            conversion.

            @param section: the section of the key
            @param key: the key where to store the valu
            @param value: the value to store
            @exception: If there is a problem with the conversation of the
                    value type.