def __setitem__(self, item, value):
        """Set the term's value or one of it's properties. If the item name is a property, and the value
        is None, remove the child. """

        if item.lower() == self.term_value_name.lower() or item.lower() == 'value':
            self.value = value

        elif value is None:
            child = self.find_first(item)
            if child:
                self.remove_child(child)

        else:
            c = self.get_or_new_child(item, value)

            # There is a bug where these two values may be different by a trailing space
            assert self[item].value == value or (self[item].value is None and value == ''), \
                "Item value '{}' is different from set value '{}' ".format(self[item].value, value)
def __setitem__ ( self , item , value ) : if item . lower ( ) == self . term_value_name . lower ( ) or item . lower ( ) == 'value' : self . value = value elif value is None : child = self . find_first ( item ) if child : self . remove_child ( child ) else : c = self . get_or_new_child ( item , value ) assert self [ item ] . value == value or ( self [ item ] . value is None and value == '' ) , "Item value '{}' is different from set value '{}' " . format ( self [ item ] . value , value )
Set the term's value or one of it's properties. If the item name is a property, and the value
        is None, remove the child.