def _get_key_value(line):
        stripLine = line.strip()
        pos = -1
        for start_comment in InputParser._START_COMMENTS:
            pos = stripLine.find(start_comment)
            if pos >= 0:
                break

        if pos == 0:
            return (None, None)

        if pos > 0:
            stripLine = stripLine[:pos].strip()

        pos = stripLine.find(InputParser._PROPVALUE_SEPARATOR)
        if pos > 0:
            key = stripLine[0:pos].strip()
            value = stripLine[pos + 1:].strip()
            return (key, JSONSchema.get_value(value))

        return (None, None)
    def _set_section_property(sections, section_name, property_name, value,
                              types):
        """
        Args:
            section_name (str): the name of the section, case insensitive
            property_name (str): the property name in the section
            value : property value
            types : schema valid types
        """
        section_name = JSONSchema.format_section_name(section_name).lower()
        property_name = JSONSchema.format_property_name(property_name)
        value = JSONSchema.get_value(value, types)

        if section_name not in sections:
            sections[section_name] = OrderedDict([(JSONSchema.NAME,
                                                   section_name)])

        if 'properties' not in sections[section_name]:
            sections[section_name]['properties'] = OrderedDict()

        # name should come first
        if JSONSchema.NAME == property_name and property_name not in sections[
                section_name]['properties']:
            new_dict = OrderedDict([(property_name, value)])
            new_dict.update(sections[section_name]['properties'])
            sections[section_name]['properties'] = new_dict
        else:
            sections[section_name]['properties'][property_name] = value

        # rebuild data
        contents = ''
        properties = sections[section_name]['properties']
        lastIndex = len(properties) - 1
        for i, (key, value) in enumerate(properties.items()):
            contents += '{}{}{}'.format(key, InputParser._PROPVALUE_SEPARATOR,
                                        value)
            if i < lastIndex:
                contents += '\n'

        sections[section_name]['data'] = contents