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 <Sebastian@SSpaeth.de>
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
This commit is contained in:
Sebastian Spaeth 2011-09-16 10:54:22 +02:00 committed by Nicolas Sebrecht
parent 7941ea7e7d
commit c93cd9bb1a
5 changed files with 13 additions and 13 deletions

View File

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

View File

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

View File

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

View File

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

View File

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