[PATCH] accounts.py: Merge AccountSynchronizationMixin with SyncableAccount class

Sebastian Spaeth Sebastian at SSpaeth.de
Mon Jan 31 14:03:23 GMT 2011

AccountSynchronizationMixin was never used on its own and it is a very
confusing class until you understand what it is used for. (It complemented the Account() class with a few methods to make Account() syncable.

But we use the SyncableAccount class anyway, so merge the former Mixin'
methods directly in there.

This does away with a class that is not directly used, and was a case of
over-object-orientation which confuses more than it helps.

Touched up code documentation while going through the file.

Signed-off-by: Sebastian Spaeth <Sebastian at SSpaeth.de>
This is a small cleanup patch against "next". It simplifies the code a bit.

 offlineimap/accounts.py |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/offlineimap/accounts.py b/offlineimap/accounts.py
index cd09646..aa8b88f 100644
--- a/offlineimap/accounts.py
+++ b/offlineimap/accounts.py
@@ -166,7 +166,12 @@ class Account(CustomConfig.ConfigHelperMixin):
         return sleepresult
-class AccountSynchronizationMixin:
+class SyncableAccount(Account):
+    """A syncable IMAP account.
+    Derives from class:`Account`."""
     def syncrunner(self, siglistener):
@@ -285,12 +290,12 @@ class AccountSynchronizationMixin:
             self.ui.callhook("Hook return code: %d" % p.returncode)
             self.ui.warn("Exception occured while calling hook")
-class SyncableAccount(Account, AccountSynchronizationMixin):
-    pass
 def syncfolder(accountname, remoterepos, remotefolder, localrepos,
                statusrepos, quick):
+    """This function is called as target for the
+    InstanceLimitedThread invokation in SyncableAccount."""
     global mailboxes
     ui = getglobalui()

More information about the OfflineIMAP-project mailing list