[PATCH] correctly reraise errors with six
Nicolas Sebrecht
nicolas.s-dev at laposte.net
Wed Jun 29 02:45:01 BST 2016
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev at laposte.net>
---
The following changes since commit 3293b75c9c735f054eb267afcc6f3f9713e6c1aa:
release.sh: get_git_who(): remove unnecessary blank line (2016-06-27 16:11:44 +0200)
are available in the git repository at:
https://github.com/nicolas33/offlineimap.git ns/reraise
for you to fetch changes up to 9ccfaa96697bff0154e010f76096ca5e34753546:
correctly reraise errors with six (2016-06-29 03:42:57 +0200)
----------------------------------------------------------------
offlineimap/CustomConfig.py | 11 ++++++-----
offlineimap/accounts.py | 19 ++++++++++++-------
offlineimap/folder/Gmail.py | 17 ++++++++++-------
offlineimap/folder/GmailMaildir.py | 9 ++++++---
offlineimap/folder/IMAP.py | 31 +++++++++++++++++++------------
offlineimap/folder/LocalStatus.py | 6 +++---
offlineimap/folder/LocalStatusSQLite.py | 13 ++++++++-----
offlineimap/folder/Maildir.py | 31 +++++++++++++++++++------------
offlineimap/folder/UIDMaps.py | 28 ++++++++++++++++++----------
offlineimap/imaplibutil.py | 10 ++++++----
offlineimap/imapserver.py | 33 ++++++++++++++++++++-------------
offlineimap/repository/IMAP.py | 8 ++++++--
offlineimap/repository/__init__.py | 14 ++++++++------
13 files changed, 141 insertions(+), 89 deletions(-)
diff --git a/offlineimap/CustomConfig.py b/offlineimap/CustomConfig.py
index 445a04f..f9a252d 100644
--- a/offlineimap/CustomConfig.py
+++ b/offlineimap/CustomConfig.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2015 John Goerzen & contributors
+# Copyright (C) 2003-2016 John Goerzen & contributors
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -16,9 +16,8 @@
import os
import re
-from sys import exc_info
-
import six
+from sys import exc_info
try:
from ConfigParser import SafeConfigParser, Error
@@ -77,8 +76,10 @@ class CustomConfigParser(SafeConfigParser):
val = self.get(section, option).strip()
return re.split(separator_re, val)
except re.error as e:
- six.reraise(Error("Bad split regexp '%s': %s" % \
- (separator_re, e)), None, exc_info()[2])
+ six.reraise(Error,
+ Error("Bad split regexp '%s': %s"%
+ (separator_re, e)),
+ exc_info()[2])
def getdefaultlist(self, section, option, default, separator_re):
"""Same as getlist, but returns the value of `default`
diff --git a/offlineimap/accounts.py b/offlineimap/accounts.py
index 8a9492e..fb0ef0e 100644
--- a/offlineimap/accounts.py
+++ b/offlineimap/accounts.py
@@ -228,9 +228,12 @@ class SyncableAccount(Account):
pass
except IOError:
self._lockfd.close()
- six.reraise(OfflineImapError("Could not lock account %s. Is another "
- "instance using this account?"% self,
- OfflineImapError.ERROR.REPO), None, exc_info()[2])
+ six.reraise(OfflineImapError,
+ OfflineImapError(
+ "Could not lock account %s. Is another "
+ "instance using this account?"% self,
+ OfflineImapError.ERROR.REPO),
+ exc_info()[2])
def _unlock(self):
"""Unlock the account, deleting the lock file"""
@@ -537,10 +540,12 @@ def syncfolder(account, remotefolder, quick):
localstart = localfolder.getstartdate()
remotestart = remotefolder.getstartdate()
if (maxage != None) + (localstart != None) + (remotestart != None) > 1:
- six.reraise(OfflineImapError("You can set at most one of the "
- "following: maxage, startdate (for the local folder), "
- "startdate (for the remote folder)",
- OfflineImapError.ERROR.REPO), None, exc_info()[2])
+ six.reraise(OfflineImapError,
+ OfflineImapError("You can set at most one of the "
+ "following: maxage, startdate (for the local "
+ "folder), startdate (for the remote folder)",
+ OfflineImapError.ERROR.REPO),
+ exc_info()[2])
if (maxage != None or localstart or remotestart) and quick:
# IMAP quickchanged isn't compatible with options that
# involve restricting the messagelist, since the "quick"
diff --git a/offlineimap/folder/Gmail.py b/offlineimap/folder/Gmail.py
index 968e23e..b55010c 100644
--- a/offlineimap/folder/Gmail.py
+++ b/offlineimap/folder/Gmail.py
@@ -1,6 +1,6 @@
# Gmail IMAP folder support
# Copyright (C) 2008 Riccardo Murri <riccardo.murri at gmail.com>
-# Copyright (C) 2002-2007 John Goerzen <jgoerzen at complete.org>
+# Copyright (C) 2002-2016 John Goerzen & contributors.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -17,6 +17,7 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
import re
+import six
from sys import exc_info
from offlineimap import imaputil, OfflineImapError
@@ -24,8 +25,6 @@ from offlineimap import imaplibutil
import offlineimap.accounts
from .IMAP import IMAPFolder
-import six
-
"""Folder implementation to support features of the Gmail IMAP server."""
class GmailFolder(IMAPFolder):
@@ -141,10 +140,14 @@ class GmailFolder(IMAPFolder):
res_type, response = imapobj.fetch("'%s'"% msgsToFetch,
'(FLAGS X-GM-LABELS UID)')
if res_type != 'OK':
- six.reraise(OfflineImapError("FETCHING UIDs in folder [%s]%s failed. " % \
- (self.getrepository(), self) + \
- "Server responded '[%s] %s'" % \
- (res_type, response), OfflineImapError.ERROR.FOLDER), None, exc_info()[2])
+ six.reraise(OfflineImapError,
+ OfflineImapError(
+ "FETCHING UIDs in folder [%s]%s failed. "%
+ (self.getrepository(), self) +
+ "Server responded '[%s] %s'"%
+ (res_type, response),
+ OfflineImapError.ERROR.FOLDER),
+ exc_info()[2])
finally:
self.imapserver.releaseconnection(imapobj)
diff --git a/offlineimap/folder/GmailMaildir.py b/offlineimap/folder/GmailMaildir.py
index 65626ea..8301623 100644
--- a/offlineimap/folder/GmailMaildir.py
+++ b/offlineimap/folder/GmailMaildir.py
@@ -1,5 +1,5 @@
# Maildir folder support with labels
-# Copyright (C) 2002 - 2016 John Goerzen & contributors
+# Copyright (C) 2002-2016 John Goerzen & contributors.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -176,8 +176,11 @@ class GmailMaildirFolder(MaildirFolder):
try:
os.rename(tmppath, filepath)
except OSError as e:
- six.reraise(OfflineImapError("Can't rename file '%s' to '%s': %s" % \
- (tmppath, filepath, e[1]), OfflineImapError.ERROR.FOLDER), None, exc_info()[2])
+ six.reraise(OfflineImapError,
+ OfflineImapError("Can't rename file '%s' to '%s': %s"%
+ (tmppath, filepath, e[1]),
+ OfflineImapError.ERROR.FOLDER),
+ exc_info()[2])
# if utime_from_header=true, we don't want to change the mtime.
if self.utime_from_header and mtime:
diff --git a/offlineimap/folder/IMAP.py b/offlineimap/folder/IMAP.py
index 11a3a2a..a3fbe08 100644
--- a/offlineimap/folder/IMAP.py
+++ b/offlineimap/folder/IMAP.py
@@ -1,5 +1,5 @@
# IMAP folder support
-# Copyright (C) 2002-2016 John Goerzen & contributors
+# Copyright (C) 2002-2016 John Goerzen & contributors.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -84,8 +84,11 @@ class IMAPFolder(BaseFolder):
def getmaxage(self):
if self.config.getdefault("Account %s"%
self.accountname, "maxage", None):
- six.reraise(OfflineImapError("maxage is not supported on IMAP-IMAP sync",
- OfflineImapError.ERROR.REPO), None, exc_info()[2])
+ six.reraise(OfflineImapError,
+ OfflineImapError(
+ "maxage is not supported on IMAP-IMAP sync",
+ OfflineImapError.ERROR.REPO),
+ exc_info()[2])
# Interface from BaseFolder
def getinstancelimitnamespace(self):
@@ -613,11 +616,13 @@ class IMAPFolder(BaseFolder):
self.imapserver.releaseconnection(imapobj, True)
imapobj = self.imapserver.acquireconnection()
if not retry_left:
- six.reraise(OfflineImapError("Saving msg (%s) in folder '%s', "
- "repository '%s' failed (abort). Server responded: %s\n"
- "Message content was: %s"%
- (msg_id, self, self.getrepository(), str(e), dbg_output),
- OfflineImapError.ERROR.MESSAGE), None, exc_info()[2])
+ six.reraise(OfflineImapError,
+ OfflineImapError("Saving msg (%s) in folder '%s', "
+ "repository '%s' failed (abort). Server responded: %s\n"
+ "Message content was: %s"%
+ (msg_id, self, self.getrepository(), str(e), dbg_output),
+ OfflineImapError.ERROR.MESSAGE),
+ exc_info()[2])
# XXX: is this still needed?
self.ui.error(e, exc_info()[2])
except imapobj.error as e: # APPEND failed
@@ -626,10 +631,12 @@ class IMAPFolder(BaseFolder):
# drop conn, it might be bad.
self.imapserver.releaseconnection(imapobj, True)
imapobj = None
- six.reraise(OfflineImapError("Saving msg (%s) folder '%s', repo '%s'"
- "failed (error). Server responded: %s\nMessage content was: "
- "%s" % (msg_id, self, self.getrepository(), str(e), dbg_output),
- OfflineImapError.ERROR.MESSAGE), None, exc_info()[2])
+ six.reraise(OfflineImapError,
+ OfflineImapError("Saving msg (%s) folder '%s', repo '%s'"
+ "failed (error). Server responded: %s\nMessage content was: "
+ "%s"% (msg_id, self, self.getrepository(), str(e), dbg_output),
+ OfflineImapError.ERROR.MESSAGE),
+ exc_info()[2])
# Checkpoint. Let it write out stuff, etc. Eg searches for
# just uploaded messages won't work if we don't do this.
(typ,dat) = imapobj.check()
diff --git a/offlineimap/folder/LocalStatus.py b/offlineimap/folder/LocalStatus.py
index 356918f..9d4075a 100644
--- a/offlineimap/folder/LocalStatus.py
+++ b/offlineimap/folder/LocalStatus.py
@@ -1,5 +1,5 @@
# Local status cache virtual folder
-# Copyright (C) 2002-2016 John Goerzen & contributors
+# Copyright (C) 2002-2016 John Goerzen & contributors.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -75,7 +75,7 @@ class LocalStatusFolder(BaseFolder):
errstr = ("Corrupt line '%s' in cache file '%s'"%
(line, self.filename))
self.ui.warn(errstr)
- six.reraise(ValueError(errstr), None, exc_info()[2])
+ six.reraise(ValueError, ValueError(errstr), exc_info()[2])
self.messagelist[uid] = self.msglist_item_initializer(uid)
self.messagelist[uid]['flags'] = flags
@@ -98,7 +98,7 @@ class LocalStatusFolder(BaseFolder):
errstr = "Corrupt line '%s' in cache file '%s'"% \
(line, self.filename)
self.ui.warn(errstr)
- six.reraise(ValueError(errstr), None, exc_info()[2])
+ six.reraise(ValueError, ValueError(errstr), exc_info()[2])
self.messagelist[uid] = self.msglist_item_initializer(uid)
self.messagelist[uid]['flags'] = flags
self.messagelist[uid]['mtime'] = mtime
diff --git a/offlineimap/folder/LocalStatusSQLite.py b/offlineimap/folder/LocalStatusSQLite.py
index 1806796..efff16e 100644
--- a/offlineimap/folder/LocalStatusSQLite.py
+++ b/offlineimap/folder/LocalStatusSQLite.py
@@ -1,5 +1,5 @@
# Local status cache virtual folder: SQLite backend
-# Copyright (C) 2009-2016 Stewart Smith and contributors
+# Copyright (C) 2009-2016 Stewart Smith and contributors.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -67,10 +67,13 @@ class LocalStatusSQLiteFolder(BaseFolder):
self.connection = sqlite.connect(self.filename, check_same_thread=False)
except sqlite.OperationalError as e:
# Operation had failed.
- six.reraise(UserWarning("cannot open database file '%s': %s.\nYou might "
- "want to check the rights to that file and if it cleanly opens "
- "with the 'sqlite<3>' command."%
- (self.filename, e)), None, exc_info()[2])
+ six.reraise(UserWarning,
+ UserWarning(
+ "cannot open database file '%s': %s.\nYou might "
+ "want to check the rights to that file and if it "
+ "cleanly opens with the 'sqlite<3>' command."%
+ (self.filename, e)),
+ exc_info()[2])
# Make sure sqlite is in multithreading SERIALIZE mode.
assert sqlite.threadsafety == 1, 'Your sqlite is not multithreading safe.'
diff --git a/offlineimap/folder/Maildir.py b/offlineimap/folder/Maildir.py
index f5b208c..1a2830f 100644
--- a/offlineimap/folder/Maildir.py
+++ b/offlineimap/folder/Maildir.py
@@ -1,5 +1,5 @@
# Maildir folder support
-# Copyright (C) 2002-2016 John Goerzen & contributors
+# Copyright (C) 2002-2016 John Goerzen & contributors.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -22,8 +22,6 @@ import os
import six
from sys import exc_info
from threading import Lock
-from .Base import BaseFolder
-
try:
from hashlib import md5
except ImportError:
@@ -34,6 +32,7 @@ except NameError:
from sets import Set as set
from offlineimap import OfflineImapError, emailutil
+from .Base import BaseFolder
# Find the UID in a message filename
re_uidmatch = re.compile(',U=(\d+)')
@@ -311,8 +310,11 @@ class MaildirFolder(BaseFolder):
time.sleep(0.23)
continue
severity = OfflineImapError.ERROR.MESSAGE
- six.reraise(OfflineImapError("Unique filename %s already exists."%
- filename, severity), None, exc_info()[2])
+ six.reraise(OfflineImapError,
+ OfflineImapError(
+ "Unique filename %s already exists."%
+ filename, severity),
+ exc_info()[2])
else:
raise
@@ -432,9 +434,12 @@ class MaildirFolder(BaseFolder):
os.rename(os.path.join(self.getfullname(), oldfilename),
os.path.join(self.getfullname(), newfilename))
except OSError as e:
- six.reraise(OfflineImapError("Can't rename file '%s' to '%s': %s" % (
- oldfilename, newfilename, e[1]),
- OfflineImapError.ERROR.FOLDER), None, exc_info()[2])
+ six.reraise(OfflineImapError,
+ OfflineImapError(
+ "Can't rename file '%s' to '%s': %s"%
+ (oldfilename, newfilename, e[1]),
+ OfflineImapError.ERROR.FOLDER),
+ exc_info()[2])
self.messagelist[uid]['flags'] = flags
self.messagelist[uid]['filename'] = newfilename
@@ -512,10 +517,12 @@ class MaildirFolder(BaseFolder):
try:
os.rename(filename, newfilename)
except OSError as e:
- six.reraise(OfflineImapError(
- "Can't rename file '%s' to '%s': %s" % (
- filename, newfilename, e[1]),
- OfflineImapError.ERROR.FOLDER), None, exc_info()[2])
+ six.reraise(OfflineImapError,
+ OfflineImapError(
+ "Can't rename file '%s' to '%s': %s"%
+ (filename, newfilename, e[1]),
+ OfflineImapError.ERROR.FOLDER),
+ exc_info()[2])
elif match.group(1) != self._foldermd5:
self.ui.warn(("Inconsistent FMD5 for file `%s':"
" Neither `%s' nor `%s' found")
diff --git a/offlineimap/folder/UIDMaps.py b/offlineimap/folder/UIDMaps.py
index 45c94bd..d4ec1e3 100644
--- a/offlineimap/folder/UIDMaps.py
+++ b/offlineimap/folder/UIDMaps.py
@@ -1,5 +1,5 @@
# Base folder support
-# Copyright (C) 2002-2015 John Goerzen & contributors
+# Copyright (C) 2002-2016 John Goerzen & contributors.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -15,13 +15,14 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-from sys import exc_info
+import six
from threading import Lock
+from sys import exc_info
+import os.path
+
from offlineimap import OfflineImapError
from .IMAP import IMAPFolder
-import os.path
-import six
class MappedIMAPFolder(IMAPFolder):
"""IMAP class to map between Folder() instances where both side assign a uid
@@ -63,8 +64,11 @@ class MappedIMAPFolder(IMAPFolder):
try:
line = line.strip()
except ValueError:
- six.reraise(Exception("Corrupt line '%s' in UID mapping file '%s'"%
- (line, mapfilename)), None, exc_info()[2])
+ six.reraise(Exception,
+ Exception(
+ "Corrupt line '%s' in UID mapping file '%s'"%
+ (line, mapfilename)),
+ exc_info()[2])
(str1, str2) = line.split(':')
loc = int(str1)
rem = int(str2)
@@ -90,10 +94,14 @@ class MappedIMAPFolder(IMAPFolder):
try:
return [mapping[x] for x in items]
except KeyError as e:
- six.reraise(OfflineImapError("Could not find UID for msg '{0}' (f:'{1}'."
- " This is usually a bad thing and should be reported on the ma"
- "iling list.".format(e.args[0], self),
- OfflineImapError.ERROR.MESSAGE), None, exc_info()[2])
+ six.reraise(OfflineImapError,
+ OfflineImapError(
+ "Could not find UID for msg '{0}' (f:'{1}'."
+ " This is usually a bad thing and should be "
+ "reported on the mailing list.".format(
+ e.args[0], self),
+ OfflineImapError.ERROR.MESSAGE),
+ exc_info()[2])
# Interface from BaseFolder
def cachemessagelist(self, min_date=None, min_uid=None):
diff --git a/offlineimap/imaplibutil.py b/offlineimap/imaplibutil.py
index 4d6f64e..a3824dd 100644
--- a/offlineimap/imaplibutil.py
+++ b/offlineimap/imaplibutil.py
@@ -18,16 +18,16 @@ import os
import fcntl
import time
import subprocess
-from sys import exc_info
import threading
-from hashlib import sha1
import socket
import errno
import zlib
import six
+from sys import exc_info
+from hashlib import sha1
-from offlineimap.ui import getglobalui
from offlineimap import OfflineImapError
+from offlineimap.ui import getglobalui
from offlineimap.virtual_imaplib2 import IMAP4, IMAP4_SSL, InternalDate, Mon2num
@@ -58,7 +58,9 @@ class UsefulIMAPMixIn(object):
errstr = "Server '%s' closed connection, error on SELECT '%s'. Ser"\
"ver said: %s" % (self.host, mailbox, e.args[0])
severity = OfflineImapError.ERROR.FOLDER_RETRY
- six.reraise(OfflineImapError(errstr, severity), None, exc_info()[2])
+ six.reraise(OfflineImapError,
+ OfflineImapError(errstr, severity),
+ exc_info()[2])
if result[0] != 'OK':
#in case of error, bail out with OfflineImapError
errstr = "Error SELECTing mailbox '%s', server reply:\n%s" %\
diff --git a/offlineimap/imapserver.py b/offlineimap/imapserver.py
index 9b39672..c0a5697 100644
--- a/offlineimap/imapserver.py
+++ b/offlineimap/imapserver.py
@@ -1,5 +1,5 @@
# IMAP server support
-# Copyright (C) 2002 - 2016 John Goerzen & contributors
+# Copyright (C) 2002-2016 John Goerzen & contributors.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -15,24 +15,22 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-from threading import Lock, BoundedSemaphore, Thread, Event, currentThread
import hmac
import socket
import base64
-
import json
import urllib
-
import socket
import time
import errno
+import six
from sys import exc_info
from socket import gaierror
from ssl import SSLError, cert_time_to_seconds
-import six
+from threading import Lock, BoundedSemaphore, Thread, Event, currentThread
-from offlineimap import imaplibutil, imaputil, threadutil, OfflineImapError
import offlineimap.accounts
+from offlineimap import imaplibutil, imaputil, threadutil, OfflineImapError
from offlineimap.ui import getglobalui
@@ -574,7 +572,9 @@ class IMAPServer(object):
"'%s'. Make sure you have configured the ser"\
"ver name correctly and that you are online."%\
(self.hostname, self.repos)
- six.reraise(OfflineImapError(reason, severity), None, exc_info()[2])
+ six.reraise(OfflineImapError,
+ OfflineImapError(reason, severity),
+ exc_info()[2])
elif isinstance(e, SSLError) and e.errno == errno.EPERM:
# SSL unknown protocol error
@@ -587,7 +587,9 @@ class IMAPServer(object):
reason = "Unknown SSL protocol connecting to host '%s' for "\
"repository '%s'. OpenSSL responded:\n%s"\
% (self.hostname, self.repos, e)
- six.reraise(OfflineImapError(reason, severity), None, exc_info()[2])
+ six.reraise(OfflineImapError,
+ OfflineImapError(reason, severity),
+ exc_info()[2])
elif isinstance(e, socket.error) and e.args[0] == errno.ECONNREFUSED:
# "Connection refused", can be a non-existing port, or an unauthorized
@@ -596,14 +598,19 @@ class IMAPServer(object):
"refused. Make sure you have the right host and port "\
"configured and that you are actually able to access the "\
"network."% (self.hostname, self.port, self.repos)
- six.reraise(OfflineImapError(reason, severity), None, exc_info()[2])
+ six.reraise(OfflineImapError,
+ OfflineImapError(reason, severity),
+ exc_info()[2])
# Could not acquire connection to the remote;
# socket.error(last_error) raised
if str(e)[:24] == "can't open socket; error":
- six.reraise(OfflineImapError("Could not connect to remote server '%s' "\
- "for repository '%s'. Remote does not answer."
- % (self.hostname, self.repos),
- OfflineImapError.ERROR.REPO), None, exc_info()[2])
+ six.reraise(OfflineImapError,
+ OfflineImapError(
+ "Could not connect to remote server '%s' "
+ "for repository '%s'. Remote does not answer."%
+ (self.hostname, self.repos),
+ OfflineImapError.ERROR.REPO),
+ exc_info()[2])
else:
# re-raise all other errors
raise
diff --git a/offlineimap/repository/IMAP.py b/offlineimap/repository/IMAP.py
index fdd9955..5057a79 100644
--- a/offlineimap/repository/IMAP.py
+++ b/offlineimap/repository/IMAP.py
@@ -110,8 +110,12 @@ class IMAPRepository(BaseRepository):
try:
host = self.localeval.eval(host)
except Exception as e:
- six.reraise(OfflineImapError("remotehosteval option for repository "
- "'%s' failed:\n%s"% (self, e), OfflineImapError.ERROR.REPO), None, exc_info()[2])
+ six.reraise(OfflineImapError,
+ OfflineImapError(
+ "remotehosteval option for repository "
+ "'%s' failed:\n%s"% (self, e),
+ OfflineImapError.ERROR.REPO),
+ exc_info()[2])
if host:
self._host = host
return self._host
diff --git a/offlineimap/repository/__init__.py b/offlineimap/repository/__init__.py
index e594e9d..90b2366 100644
--- a/offlineimap/repository/__init__.py
+++ b/offlineimap/repository/__init__.py
@@ -1,5 +1,4 @@
-# Copyright (C) 2002-2007 John Goerzen <jgoerzen at complete.org>
-# 2010 Sebastian Spaeth <Sebastian at SSpaeth.de> and contributors
+# Copyright (C) 2002-2016 John Goerzen & contributors.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -15,9 +14,8 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-from sys import exc_info
-
import six
+from sys import exc_info
try:
from configparser import NoSectionError
@@ -70,14 +68,18 @@ class Repository(object):
except NoSectionError as e:
errstr = ("Could not find section '%s' in configuration. Required "
"for account '%s'." % ('Repository %s' % name, account))
- six.reraise(OfflineImapError(errstr, OfflineImapError.ERROR.REPO), None, exc_info()[2])
+ six.reraise(OfflineImapError,
+ OfflineImapError(errstr, OfflineImapError.ERROR.REPO),
+ exc_info()[2])
try:
repo = typemap[repostype]
except KeyError:
errstr = "'%s' repository not supported for '%s' repositories."% \
(repostype, reqtype)
- six.reraise(OfflineImapError(errstr, OfflineImapError.ERROR.REPO), None, exc_info()[2])
+ six.reraise(OfflineImapError,
+ OfflineImapError(errstr, OfflineImapError.ERROR.REPO),
+ exc_info()[2])
return repo(name, account)
--
2.7.4
More information about the OfflineIMAP-project
mailing list