def __setitem__(self, key, value): if isinstance(key, Name): value.name = key for index, element in enumerate(self.elements): if ( isinstance(element, Tag) and element.name == key ): self.elements[index] = value return self.elements.append(value) elif isinstance(key, Identifier): value['id'] = key for index, element in enumerate(self.elements): if ( isinstance(element, Tag) and 'id' in element and element['id'] == key ): self.elements[index] = value return self.elements.append(value) elif isinstance(key, str): self.attributes[key] = value elif isinstance(key, int): self.elements[key] = value else: raise TypeError()
def __delitem__(self, key): if isinstance(key, str): del self.attributes[key] elif isinstance(key, int): del self.elements[key] elif isinstance(key, Tag): for index, value in enumerate(self.elements): if key == value: del self.elements[index] return raise KeyError(key) else: raise TypeError()