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

Sebastian Spaeth Sebastian at SSpaeth.de
Mon Jan 31 14:53:35 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.
v2 just with less chars per line in the commit message. :-)

 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):
             item.stopkeepalive()
         return sleepresult
             
-class AccountSynchronizationMixin:
+    
+class SyncableAccount(Account):
+    """A syncable IMAP account.
+
+    Derives from class:`Account`."""
+
     def syncrunner(self, siglistener):
         self.ui.registerthread(self.name)
         self.ui.acct(self.name)
@@ -285,12 +290,12 @@ class AccountSynchronizationMixin:
             self.ui.callhook("Hook return code: %d" % p.returncode)
         except:
             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()
     ui.registerthread(accountname)
-- 
1.7.1





More information about the OfflineIMAP-project mailing list