From c93cd9bb1aa8dec871a9202c37bd74372bf748fe Mon Sep 17 00:00:00 2001 From: Sebastian Spaeth Date: Fri, 16 Sep 2011 10:54:22 +0200 Subject: [PATCH] BaseFolder(): Save name and repository As all Folders share these parameters, we can safely handle them in BaseFolder. This makes sense, as BaseFolder has a getname() function that returns self.name but nothing actually set self.name. It also saves a few lines of code. Signed-off-by: Sebastian Spaeth Signed-off-by: Nicolas Sebrecht --- offlineimap/folder/Base.py | 8 +++++++- offlineimap/folder/Gmail.py | 4 ++-- offlineimap/folder/IMAP.py | 5 ++--- offlineimap/folder/LocalStatus.py | 4 +--- offlineimap/folder/Maildir.py | 5 +---- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/offlineimap/folder/Base.py b/offlineimap/folder/Base.py index 5bd8061..9c8feeb 100644 --- a/offlineimap/folder/Base.py +++ b/offlineimap/folder/Base.py @@ -28,8 +28,14 @@ except NameError: from sets import Set as set class BaseFolder(object): - def __init__(self): + def __init__(self, name, repository): + """ + :para name: Path & name of folder minus root or reference + :para repository: Repository() in which the folder is. + """ self.ui = getglobalui() + self.name = name + self.repository = repository def getname(self): """Returns name""" diff --git a/offlineimap/folder/Gmail.py b/offlineimap/folder/Gmail.py index 3ca11cd..e65793d 100644 --- a/offlineimap/folder/Gmail.py +++ b/offlineimap/folder/Gmail.py @@ -34,12 +34,12 @@ class GmailFolder(IMAPFolder): """ def __init__(self, imapserver, name, visiblename, accountname, repository): + super(GmailFolder, self).__init__(imapserver, name, visiblename, + accountname, repository) self.realdelete = repository.getrealdelete(name) self.trash_folder = repository.gettrashfolder(name) #: Gmail will really delete messages upon EXPUNGE in these folders self.real_delete_folders = [ self.trash_folder, repository.getspamfolder() ] - IMAPFolder.__init__(self, imapserver, name, visiblename, \ - accountname, repository) def deletemessages_noconvert(self, uidlist): uidlist = [uid for uid in uidlist if uid in self.messagelist] diff --git a/offlineimap/folder/IMAP.py b/offlineimap/folder/IMAP.py index 034d80d..f17e2bc 100644 --- a/offlineimap/folder/IMAP.py +++ b/offlineimap/folder/IMAP.py @@ -33,18 +33,17 @@ except NameError: class IMAPFolder(BaseFolder): def __init__(self, imapserver, name, visiblename, accountname, repository): + name = imaputil.dequote(name) + super(IMAPFolder, self).__init__(name, repository) self.config = imapserver.config self.expunge = repository.getexpunge() - self.name = imaputil.dequote(name) self.root = None # imapserver.root self.sep = imapserver.delim self.imapserver = imapserver self.messagelist = None self.visiblename = visiblename self.accountname = accountname - self.repository = repository self.randomgenerator = random.Random() - BaseFolder.__init__(self) #self.ui is set in BaseFolder def selectro(self, imapobj): diff --git a/offlineimap/folder/LocalStatus.py b/offlineimap/folder/LocalStatus.py index be9d1e3..732c5a6 100644 --- a/offlineimap/folder/LocalStatus.py +++ b/offlineimap/folder/LocalStatus.py @@ -27,18 +27,16 @@ magicline = "OFFLINEIMAP LocalStatus CACHE DATA - DO NOT MODIFY - FORMAT 1" class LocalStatusFolder(BaseFolder): def __init__(self, root, name, repository, accountname, config): - self.name = name + super(LocalStatusFolder, self).__init__(name, repository) self.root = root self.sep = '.' self.config = config self.filename = os.path.join(root, self.getfolderbasename()) self.messagelist = {} - self.repository = repository self.savelock = threading.Lock() self.doautosave = config.getdefaultboolean("general", "fsync", False) """Should we perform fsyncs as often as possible?""" self.accountname = accountname - super(LocalStatusFolder, self).__init__() def getaccountname(self): return self.accountname diff --git a/offlineimap/folder/Maildir.py b/offlineimap/folder/Maildir.py index cedcb5d..20b306b 100644 --- a/offlineimap/folder/Maildir.py +++ b/offlineimap/folder/Maildir.py @@ -59,13 +59,12 @@ def gettimeseq(): class MaildirFolder(BaseFolder): def __init__(self, root, name, sep, repository, accountname, config): - self.name = name + super(MaildirFolder, self).__init__(name, repository) self.config = config self.dofsync = config.getdefaultboolean("general", "fsync", True) self.root = root self.sep = sep self.messagelist = None - self.repository = repository self.accountname = accountname self.wincompatible = self.config.getdefaultboolean( @@ -77,8 +76,6 @@ class MaildirFolder(BaseFolder): self.infosep = '!' self.flagmatchre = re.compile(self.infosep + '.*2,([A-Z]+)') - - BaseFolder.__init__(self) #self.ui is set in BaseFolder.init() # Cache the full folder path, as we use getfullname() very often self._fullname = os.path.join(self.getroot(), self.getname())