from abc import ABC, abstractmethod class BookmarkElement(ABC): def __init__(self,data): self._data = data @property @abstractmethod def children(self): pass @property @abstractmethod def name(self): pass @property @abstractmethod def parent(self): pass @property @abstractmethod def date_added(self): pass @property @abstractmethod def position(self): pass class Bookmark(BookmarkElement): @property @abstractmethod def address(self): pass @property def children(self): return [] class Folder(BookmarkElement): @property @abstractmethod def date_modified(self): pass @abstractmethod def is_root(self): pass @abstractmethod def is_toolbar(self): pass class Bookmarks(ABC): def __init__(self, profile_name="default"): self.profile = profile_name self.read_data() @abstractmethod def read_data(self): pass @property @abstractmethod def folders(self): pass @property @abstractmethod def bookmarks(self): pass @property def root_folder(self): pass @property @abstractmethod def toolbar_folder(self): pass @property @abstractmethod def other_bookmarks(self): pass