Set accountname in BaseFolder, and don't pass it in initialization
We passed in the accountname to all derivatives of BaseFolder, such as IMAPFolder(...,repository,...,accountname), although it is perfectly possible to get the accountname from the Repository(). So remove this unneeded parameter. Each backend had to define getaccountname() (although the function is hardly used and most accessed .accountname directly). On the other hand BaseFolder was using getaccountname but it never defined the function. So make the sane thing, remove all definitions from backends and define accountname() once in Basefolder. It was made a property and not just a (public) attribute, so it will show up in our developer documentation as public API. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de> Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
This commit is contained in:

committed by
Nicolas Sebrecht

parent
c93cd9bb1a
commit
410e2d35e9
@ -22,13 +22,14 @@ from offlineimap import CustomConfig
|
||||
from offlineimap.ui import getglobalui
|
||||
|
||||
class BaseRepository(object, CustomConfig.ConfigHelperMixin):
|
||||
|
||||
def __init__(self, reposname, account):
|
||||
self.ui = getglobalui()
|
||||
self.account = account
|
||||
self.config = account.getconfig()
|
||||
self.name = reposname
|
||||
self.localeval = account.getlocaleval()
|
||||
self.accountname = self.account.getname()
|
||||
self._accountname = self.account.getname()
|
||||
self.uiddir = os.path.join(self.config.getmetadatadir(), 'Repository-' + self.name)
|
||||
if not os.path.exists(self.uiddir):
|
||||
os.mkdir(self.uiddir, 0700)
|
||||
@ -71,15 +72,17 @@ class BaseRepository(object, CustomConfig.ConfigHelperMixin):
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
@property
|
||||
def accountname(self):
|
||||
"""Account name as string"""
|
||||
return self._accountname
|
||||
|
||||
def getuiddir(self):
|
||||
return self.uiddir
|
||||
|
||||
def getmapdir(self):
|
||||
return self.mapdir
|
||||
|
||||
def getaccountname(self):
|
||||
return self.accountname
|
||||
|
||||
def getsection(self):
|
||||
return 'Repository ' + self.name
|
||||
|
||||
|
@ -261,7 +261,7 @@ class IMAPRepository(BaseRepository):
|
||||
def getfolder(self, foldername):
|
||||
return self.getfoldertype()(self.imapserver, foldername,
|
||||
self.nametrans(foldername),
|
||||
self.accountname, self)
|
||||
self)
|
||||
|
||||
def getfoldertype(self):
|
||||
return folder.IMAP.IMAPFolder
|
||||
@ -303,7 +303,7 @@ class IMAPRepository(BaseRepository):
|
||||
continue
|
||||
retval.append(self.getfoldertype()(self.imapserver, foldername,
|
||||
self.nametrans(foldername),
|
||||
self.accountname, self))
|
||||
self))
|
||||
if len(self.folderincludes):
|
||||
imapobj = self.imapserver.acquireconnection()
|
||||
try:
|
||||
@ -320,7 +320,7 @@ class IMAPRepository(BaseRepository):
|
||||
retval.append(self.getfoldertype()(self.imapserver,
|
||||
foldername,
|
||||
self.nametrans(foldername),
|
||||
self.accountname, self))
|
||||
self))
|
||||
finally:
|
||||
self.imapserver.releaseconnection(imapobj)
|
||||
|
||||
|
@ -83,7 +83,7 @@ class LocalStatusRepository(BaseRepository):
|
||||
def getfolder(self, foldername):
|
||||
"""Return the Folder() object for a foldername"""
|
||||
return self.LocalStatusFolderClass(self.directory, foldername,
|
||||
self, self.accountname,
|
||||
self,
|
||||
self.config)
|
||||
|
||||
def getfolders(self):
|
||||
|
@ -118,7 +118,7 @@ class MaildirRepository(BaseRepository):
|
||||
self._append_folder_atimes(foldername)
|
||||
return folder.Maildir.MaildirFolder(self.root, foldername,
|
||||
self.getsep(), self,
|
||||
self.accountname, self.config)
|
||||
self.config)
|
||||
|
||||
def _getfolders_scandir(self, root, extension = None):
|
||||
"""Recursively scan folder 'root'; return a list of MailDirFolder
|
||||
@ -168,7 +168,6 @@ class MaildirRepository(BaseRepository):
|
||||
foldername,
|
||||
self.getsep(),
|
||||
self,
|
||||
self.accountname,
|
||||
self.config))
|
||||
if self.getsep() == '/' and dirname != '.':
|
||||
# Recursively check sub-directories for folders too.
|
||||
|
Reference in New Issue
Block a user