From 3c8cf0e8109bd7d45c29f4b34c24753aa27f2058 Mon Sep 17 00:00:00 2001 From: Brennen Raimer Date: Sun, 18 Oct 2020 22:48:07 -0400 Subject: [PATCH] define abstract BookmarkElement and Bookmarks classes --- bookmark_sync/__init__.py | 87 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 bookmark_sync/__init__.py diff --git a/bookmark_sync/__init__.py b/bookmark_sync/__init__.py new file mode 100644 index 0000000..dbc1754 --- /dev/null +++ b/bookmark_sync/__init__.py @@ -0,0 +1,87 @@ +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