define abstract BookmarkElement and Bookmarks classes

This commit is contained in:
2020-10-18 22:48:07 -04:00
parent 65846c2e06
commit 3c8cf0e810

87
bookmark_sync/__init__.py Normal file
View File

@@ -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