class Storage: def __init__(self): self.categories = [] self.topics = [] self.documents = [] def add_category(self, category: Category): if category in self.categories: return self.categories.append(category) def add_topic(self, topic:Topic): if topic in self.topics: return self.topics.append(topic) def add_document(self, document: Document): if document in self.documents: return self.documents.append(document) def edit_category(self, category_id, new_name): category = self.__find_my_id(self.categories, category_id) category.edit(new_name) def edit_topic(self, topic_id: int, new_topic: str, new_storage_folder: str): topic = self.__find_my_id(self.topics, topic_id) topic.edit(new_topic, new_storage_folder) def edit_document(self, document_id: int, new_file_name: str): document = self.__find_my_id(self.documents, document_id) document.edit(new_file_name) def delete_category(self, category_id): category = self.__find_my_id(self.categories, category_id) self.categories.remove(category) def delete_topic(self, topic_id): topic = self.__find_my_id(self.topics, topic_id) self.topics.remove(topic) def delete_document(self, document_id): document = self.__find_my_id(self.documents, document_id) self.topics.remove(document) def get_document(self, ): return self.__find_my_id(self.document, document_id) def __repr__(self): return "\n".join([repr(x) for x in self.documents]) def __find_my_id(self, entities, entity_id): for entity in entities: if entity.id = entity_id: return entity