Replace UIBase.getglobalui() with getglobalui()
The latter is shorter and looks nicer. UIBase was a very weird class name for something that is "user visible". We don't need to use (or see) it from higher level code for most of the code now. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de> Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
This commit is contained in:
parent
229bcca491
commit
c6d6dc814f
@ -17,7 +17,7 @@
|
||||
|
||||
from offlineimap import threadutil, mbnames, CustomConfig
|
||||
import offlineimap.repository.Base, offlineimap.repository.LocalStatus
|
||||
from offlineimap.ui import UIBase
|
||||
from offlineimap.ui import getglobalui
|
||||
from offlineimap.threadutil import InstanceLimitedThread, ExitNotifyThread
|
||||
from subprocess import Popen, PIPE
|
||||
from threading import Event, Lock
|
||||
@ -110,7 +110,7 @@ class Account(CustomConfig.ConfigHelperMixin):
|
||||
self.name = name
|
||||
self.metadatadir = config.getmetadatadir()
|
||||
self.localeval = config.getlocaleval()
|
||||
self.ui = UIBase.getglobalui()
|
||||
self.ui = getglobalui()
|
||||
self.refreshperiod = self.getconffloat('autorefresh', 0.0)
|
||||
self.quicknum = 0
|
||||
if self.refreshperiod == 0.0:
|
||||
@ -288,7 +288,7 @@ class SyncableAccount(Account, AccountSynchronizationMixin):
|
||||
def syncfolder(accountname, remoterepos, remotefolder, localrepos,
|
||||
statusrepos, quick):
|
||||
global mailboxes
|
||||
ui = UIBase.getglobalui()
|
||||
ui = getglobalui()
|
||||
ui.registerthread(accountname)
|
||||
try:
|
||||
# Load local folder.
|
||||
|
@ -16,7 +16,7 @@
|
||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
import re, socket, time, subprocess
|
||||
from offlineimap.ui import UIBase
|
||||
from offlineimap.ui import getglobalui
|
||||
from imaplib import *
|
||||
|
||||
# Import the symbols we need that aren't exported by default
|
||||
@ -67,7 +67,7 @@ def new_mesg(self, s, secs=None):
|
||||
if secs is None:
|
||||
secs = time.time()
|
||||
tm = time.strftime('%M:%S', time.localtime(secs))
|
||||
UIBase.getglobalui().debug('imap', ' %s.%02d %s' % (tm, (secs*100)%100, s))
|
||||
getglobalui().debug('imap', ' %s.%02d %s' % (tm, (secs*100)%100, s))
|
||||
|
||||
class WrappedIMAP4_SSL(IMAP4_SSL):
|
||||
"""Provides an improved version of the standard IMAP4_SSL
|
||||
|
@ -18,7 +18,7 @@
|
||||
|
||||
import imaplib
|
||||
from offlineimap import imaplibutil, imaputil, threadutil
|
||||
from offlineimap.ui import UIBase
|
||||
from offlineimap.ui import getglobalui
|
||||
from threading import *
|
||||
import thread, hmac, os, time
|
||||
import base64
|
||||
@ -102,6 +102,7 @@ class IMAPServer:
|
||||
port = None, ssl = 1, maxconnections = 1, tunnel = None,
|
||||
reference = '""', sslclientcert = None, sslclientkey = None,
|
||||
sslcacertfile= None):
|
||||
self.ui = getglobalui()
|
||||
self.reposname = reposname
|
||||
self.config = config
|
||||
self.username = username
|
||||
@ -140,7 +141,7 @@ class IMAPServer:
|
||||
if self.password != None and self.passworderror == None:
|
||||
return self.password
|
||||
|
||||
self.password = UIBase.getglobalui().getpass(self.reposname,
|
||||
self.password = self.ui.getpass(self.reposname,
|
||||
self.config,
|
||||
self.passworderror)
|
||||
self.passworderror = None
|
||||
@ -167,18 +168,16 @@ class IMAPServer:
|
||||
self.semaphore.release()
|
||||
|
||||
def md5handler(self, response):
|
||||
ui = UIBase.getglobalui()
|
||||
challenge = response.strip()
|
||||
ui.debug('imap', 'md5handler: got challenge %s' % challenge)
|
||||
self.ui.debug('imap', 'md5handler: got challenge %s' % challenge)
|
||||
|
||||
passwd = self.getpassword()
|
||||
retval = self.username + ' ' + hmac.new(passwd, challenge).hexdigest()
|
||||
ui.debug('imap', 'md5handler: returning %s' % retval)
|
||||
self.ui.debug('imap', 'md5handler: returning %s' % retval)
|
||||
return retval
|
||||
|
||||
def plainauth(self, imapobj):
|
||||
UIBase.getglobalui().debug('imap',
|
||||
'Attempting plain authentication')
|
||||
self.ui.debug('imap', 'Attempting plain authentication')
|
||||
imapobj.login(self.username, self.getpassword())
|
||||
|
||||
def gssauth(self, response):
|
||||
@ -201,8 +200,7 @@ class IMAPServer:
|
||||
except kerberos.GSSError, err:
|
||||
# Kerberos errored out on us, respond with None to cancel the
|
||||
# authentication
|
||||
UIBase.getglobalui().debug('imap',
|
||||
'%s: %s' % (err[0][0], err[1][0]))
|
||||
self.ui.debug('imap', '%s: %s' % (err[0][0], err[1][0]))
|
||||
return None
|
||||
|
||||
if not response:
|
||||
@ -249,16 +247,16 @@ class IMAPServer:
|
||||
while not success:
|
||||
# Generate a new connection.
|
||||
if self.tunnel:
|
||||
UIBase.getglobalui().connecting('tunnel', self.tunnel)
|
||||
self.ui.connecting('tunnel', self.tunnel)
|
||||
imapobj = UsefulIMAP4_Tunnel(self.tunnel)
|
||||
success = 1
|
||||
elif self.usessl:
|
||||
UIBase.getglobalui().connecting(self.hostname, self.port)
|
||||
self.ui.connecting(self.hostname, self.port)
|
||||
imapobj = UsefulIMAP4_SSL(self.hostname, self.port,
|
||||
self.sslclientkey, self.sslclientcert,
|
||||
cacertfile = self.sslcacertfile)
|
||||
else:
|
||||
UIBase.getglobalui().connecting(self.hostname, self.port)
|
||||
self.ui.connecting(self.hostname, self.port)
|
||||
imapobj = UsefulIMAP4(self.hostname, self.port)
|
||||
|
||||
imapobj.mustquote = imaplibutil.mustquote
|
||||
@ -267,13 +265,13 @@ class IMAPServer:
|
||||
try:
|
||||
# Try GSSAPI and continue if it fails
|
||||
if 'AUTH=GSSAPI' in imapobj.capabilities and have_gss:
|
||||
UIBase.getglobalui().debug('imap',
|
||||
self.ui.debug('imap',
|
||||
'Attempting GSSAPI authentication')
|
||||
try:
|
||||
imapobj.authenticate('GSSAPI', self.gssauth)
|
||||
except imapobj.error, val:
|
||||
self.gssapi = False
|
||||
UIBase.getglobalui().debug('imap',
|
||||
self.ui.debug('imap',
|
||||
'GSSAPI Authentication failed')
|
||||
else:
|
||||
self.gssapi = True
|
||||
@ -282,7 +280,7 @@ class IMAPServer:
|
||||
|
||||
if not self.gssapi:
|
||||
if 'AUTH=CRAM-MD5' in imapobj.capabilities:
|
||||
UIBase.getglobalui().debug('imap',
|
||||
self.ui.debug('imap',
|
||||
'Attempting CRAM-MD5 authentication')
|
||||
try:
|
||||
imapobj.authenticate('CRAM-MD5', self.md5handler)
|
||||
@ -357,47 +355,46 @@ class IMAPServer:
|
||||
until the Event object as passed is true. This method is expected
|
||||
to be invoked in a separate thread, which should be join()'d after
|
||||
the event is set."""
|
||||
ui = UIBase.getglobalui()
|
||||
ui.debug('imap', 'keepalive thread started')
|
||||
self.ui.debug('imap', 'keepalive thread started')
|
||||
while 1:
|
||||
ui.debug('imap', 'keepalive: top of loop')
|
||||
self.ui.debug('imap', 'keepalive: top of loop')
|
||||
time.sleep(timeout)
|
||||
ui.debug('imap', 'keepalive: after wait')
|
||||
self.ui.debug('imap', 'keepalive: after wait')
|
||||
if event.isSet():
|
||||
ui.debug('imap', 'keepalive: event is set; exiting')
|
||||
self.ui.debug('imap', 'keepalive: event is set; exiting')
|
||||
return
|
||||
ui.debug('imap', 'keepalive: acquiring connectionlock')
|
||||
self.ui.debug('imap', 'keepalive: acquiring connectionlock')
|
||||
self.connectionlock.acquire()
|
||||
numconnections = len(self.assignedconnections) + \
|
||||
len(self.availableconnections)
|
||||
self.connectionlock.release()
|
||||
ui.debug('imap', 'keepalive: connectionlock released')
|
||||
self.ui.debug('imap', 'keepalive: connectionlock released')
|
||||
threads = []
|
||||
imapobjs = []
|
||||
|
||||
for i in range(numconnections):
|
||||
ui.debug('imap', 'keepalive: processing connection %d of %d' % (i, numconnections))
|
||||
self.ui.debug('imap', 'keepalive: processing connection %d of %d' % (i, numconnections))
|
||||
imapobj = self.acquireconnection()
|
||||
ui.debug('imap', 'keepalive: connection %d acquired' % i)
|
||||
self.ui.debug('imap', 'keepalive: connection %d acquired' % i)
|
||||
imapobjs.append(imapobj)
|
||||
thr = threadutil.ExitNotifyThread(target = imapobj.noop)
|
||||
thr.setDaemon(1)
|
||||
thr.start()
|
||||
threads.append(thr)
|
||||
ui.debug('imap', 'keepalive: thread started')
|
||||
self.ui.debug('imap', 'keepalive: thread started')
|
||||
|
||||
ui.debug('imap', 'keepalive: joining threads')
|
||||
self.ui.debug('imap', 'keepalive: joining threads')
|
||||
|
||||
for thr in threads:
|
||||
# Make sure all the commands have completed.
|
||||
thr.join()
|
||||
|
||||
ui.debug('imap', 'keepalive: releasing connections')
|
||||
self.ui.debug('imap', 'keepalive: releasing connections')
|
||||
|
||||
for imapobj in imapobjs:
|
||||
self.releaseconnection(imapobj)
|
||||
|
||||
ui.debug('imap', 'keepalive: bottom of loop')
|
||||
self.ui.debug('imap', 'keepalive: bottom of loop')
|
||||
|
||||
class ConfigedIMAPServer(IMAPServer):
|
||||
"""This class is designed for easier initialization given a ConfigParser
|
||||
|
@ -17,14 +17,14 @@
|
||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
import re, string, types
|
||||
from offlineimap.ui import UIBase
|
||||
from offlineimap.ui import getglobalui
|
||||
quotere = re.compile('^("(?:[^"]|\\\\")*")')
|
||||
|
||||
def debug(*args):
|
||||
msg = []
|
||||
for arg in args:
|
||||
msg.append(str(arg))
|
||||
UIBase.getglobalui().debug('imap', " ".join(msg))
|
||||
getglobalui().debug('imap', " ".join(msg))
|
||||
|
||||
def dequote(string):
|
||||
"""Takes a string which may or may not be quoted and returns it, unquoted.
|
||||
|
@ -20,7 +20,7 @@ from threading import *
|
||||
from StringIO import StringIO
|
||||
from Queue import Queue, Empty
|
||||
import sys, traceback, thread, time
|
||||
from offlineimap.ui import UIBase # for getglobalui()
|
||||
from offlineimap.ui import getglobalui
|
||||
|
||||
profiledir = None
|
||||
|
||||
@ -129,7 +129,7 @@ def exitnotifymonitorloop(callback):
|
||||
|
||||
def threadexited(thread):
|
||||
"""Called when a thread exits."""
|
||||
ui = UIBase.getglobalui()
|
||||
ui = getglobalui()
|
||||
if thread.getExitCause() == 'EXCEPTION':
|
||||
if isinstance(thread.getExitException(), SystemExit):
|
||||
# Bring a SystemExit into the main thread.
|
||||
@ -297,5 +297,3 @@ class MultiLock:
|
||||
self.lock.release()
|
||||
finally:
|
||||
self.statuslock.release()
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user