From ab184d84e23a2280d6c501159759027180e07683 Mon Sep 17 00:00:00 2001 From: Sebastian Spaeth Date: Thu, 3 Nov 2011 13:27:35 +0100 Subject: [PATCH] Reduce parameter list to account.syncfolder call The remote|local|statusrepo is an anttribute of each SyncableAccount() anyway, so we don't need to pass it in, we can simply get it from the Account(). Signed-off-by: Sebastian Spaeth --- offlineimap/accounts.py | 19 ++++++++++--------- offlineimap/imapserver.py | 4 ++-- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/offlineimap/accounts.py b/offlineimap/accounts.py index 7a87791..51a3ab9 100644 --- a/offlineimap/accounts.py +++ b/offlineimap/accounts.py @@ -289,8 +289,7 @@ class SyncableAccount(Account): instancename = 'FOLDER_' + self.remoterepos.getname(), target = syncfolder, name = "Folder %s [acc: %s]" % (remotefolder, self), - args = (self.name, remoterepos, remotefolder, localrepos, - statusrepos, quick)) + args = (self, remotefolder, quick)) thread.start() folderthreads.append(thread) # wait for all threads to finish @@ -329,15 +328,17 @@ class SyncableAccount(Account): except Exception, e: self.ui.error(e, exc_info()[2], msg = "Calling hook") - -def syncfolder(accountname, remoterepos, remotefolder, localrepos, - statusrepos, quick): +def syncfolder(account, remotefolder, quick): """This function is called as target for the InstanceLimitedThread invokation in SyncableAccount. Filtered folders on the remote side will not invoke this function.""" + remoterepos = account.remoterepos + localrepos = account.localrepos + statusrepos = account.statusrepos + ui = getglobalui() - ui.registerthread(accountname) + ui.registerthread(account.name) try: # Load local folder. localfolder = localrepos.\ @@ -352,7 +353,7 @@ def syncfolder(accountname, remoterepos, remotefolder, localrepos, % localfolder) return # Write the mailboxes - mbnames.add(accountname, localfolder.getvisiblename()) + mbnames.add(account.name, localfolder.getvisiblename()) # Load status folder. statusfolder = statusrepos.getfolder(remotefolder.getvisiblename().\ @@ -431,11 +432,11 @@ def syncfolder(accountname, remoterepos, remotefolder, localrepos, "[acc: '%s']" % ( remotefolder.getvisiblename().\ replace(remoterepos.getsep(), localrepos.getsep()), - accountname)) + account)) # we reconstruct foldername above rather than using # localfolder, as the localfolder var is not # available if assignment fails. except Exception, e: ui.error(e, msg = "ERROR in syncfolder for %s folder %s: %s" % \ - (accountname,remotefolder.getvisiblename(), + (account, remotefolder.getvisiblename(), traceback.format_exc())) diff --git a/offlineimap/imapserver.py b/offlineimap/imapserver.py index 2f41bde..b8446d3 100644 --- a/offlineimap/imapserver.py +++ b/offlineimap/imapserver.py @@ -515,9 +515,9 @@ class IdleThread(object): remoterepos = account.remoterepos statusrepos = account.statusrepos remotefolder = remoterepos.getfolder(self.folder) - offlineimap.accounts.syncfolder(account.name, remoterepos, remotefolder, localrepos, statusrepos, quick=False) + offlineimap.accounts.syncfolder(account, remotefolder, quick=False) ui = getglobalui() - ui.unregisterthread(currentThread()) + ui.unregisterthread(currentThread()) #syncfolder registered the thread def idle(self): """Invoke IDLE mode until timeout or self.stop() is invoked"""