[PATCH 3/3] Get rid of the UsefulIMAP4 classes

Vincent Beffara vbeffara at ens-lyon.fr
Tue Mar 22 14:51:44 GMT 2011


The three classes with names starting with UsefulIMAP4 were used for two
purposes, to include the UsefulIMAPMixIn class and to implement various
system-specific kludges. None of these kludges remain, so it is cleaner
to include UsefulIMAPMixIn directly in imaplibutil and forget about them
for good.

Signed-off-by: Vincent Beffara <vbeffara at ens-lyon.fr>
---
 offlineimap/imaplibutil.py |    6 +++---
 offlineimap/imapserver.py  |   21 ++++++++-------------
 2 files changed, 11 insertions(+), 16 deletions(-)

diff --git a/offlineimap/imaplibutil.py b/offlineimap/imaplibutil.py
index 651eb71..14b11c2 100644
--- a/offlineimap/imaplibutil.py
+++ b/offlineimap/imaplibutil.py
@@ -59,7 +59,7 @@ class UsefulIMAPMixIn:
     def _mesg(self, s, tn=None, secs=None):
         new_mesg(self, s, tn, secs)
 
-class IMAP4_Tunnel(IMAP4):
+class IMAP4_Tunnel(UsefulIMAPMixIn, IMAP4):
     """IMAP4 client class over a tunnel
 
     Instantiate with: IMAP4_Tunnel(tunnelcmd)
@@ -107,7 +107,7 @@ def new_mesg(self, s, tn=None, secs=None):
             tm = time.strftime('%M:%S', time.localtime(secs))
             getglobalui().debug('imap', '  %s.%02d %s %s' % (tm, (secs*100)%100, tn, s))
 
-class WrappedIMAP4_SSL(IMAP4_SSL):
+class WrappedIMAP4_SSL(UsefulIMAPMixIn, IMAP4_SSL):
     """Provides an improved version of the standard IMAP4_SSL
 
     It provides a better readline() implementation as impaplib's
@@ -224,7 +224,7 @@ class WrappedIMAP4_SSL(IMAP4_SSL):
 
         return ('no matching domain name found in certificate')
 
-class WrappedIMAP4(IMAP4):
+class WrappedIMAP4(UsefulIMAPMixIn, IMAP4):
     """Improved version of imaplib.IMAP4 that can also connect to IPv6"""
 
     def open(self, host = '', port = IMAP4_PORT):
diff --git a/offlineimap/imapserver.py b/offlineimap/imapserver.py
index 96f0d1f..c474a01 100644
--- a/offlineimap/imapserver.py
+++ b/offlineimap/imapserver.py
@@ -38,12 +38,6 @@ try:
 except ImportError:
     pass
 
-class UsefulIMAP4(imaplibutil.UsefulIMAPMixIn, imaplibutil.WrappedIMAP4): pass
-
-class UsefulIMAP4_SSL(imaplibutil.UsefulIMAPMixIn, imaplibutil.WrappedIMAP4_SSL): pass
-
-class UsefulIMAP4_Tunnel(imaplibutil.UsefulIMAPMixIn, imaplibutil.IMAP4_Tunnel): pass
-
 class IMAPServer:
     GSS_STATE_STEP = 0
     GSS_STATE_WRAP = 1
@@ -202,18 +196,19 @@ class IMAPServer:
                 # Generate a new connection.
                 if self.tunnel:
                     self.ui.connecting('tunnel', self.tunnel)
-                    imapobj = UsefulIMAP4_Tunnel(self.tunnel, timeout=socket.getdefaulttimeout())
+                    imapobj = imaplibutil.IMAP4_Tunnel(self.tunnel,
+                                                       timeout=socket.getdefaulttimeout())
                     success = 1
                 elif self.usessl:
                     self.ui.connecting(self.hostname, self.port)
-                    imapobj = UsefulIMAP4_SSL(self.hostname, self.port,
-                                              self.sslclientkey, self.sslclientcert,
-                                              timeout=socket.getdefaulttimeout(),
-                                              cacertfile = self.sslcacertfile)
+                    imapobj = imaplibutil.WrappedIMAP4_SSL(self.hostname, self.port,
+                                                           self.sslclientkey, self.sslclientcert,
+                                                           timeout=socket.getdefaulttimeout(),
+                                                           cacertfile = self.sslcacertfile)
                 else:
                     self.ui.connecting(self.hostname, self.port)
-                    imapobj = UsefulIMAP4(self.hostname, self.port,
-                                          timeout=socket.getdefaulttimeout())
+                    imapobj = imaplibutil.WrappedIMAP4(self.hostname, self.port,
+                                                       timeout=socket.getdefaulttimeout())
 
                 imapobj.mustquote = imaplibutil.mustquote
 
-- 
1.7.4.1





More information about the OfflineIMAP-project mailing list