invasive patch to drop support for Python 2.5, part 03/03
Stephen Gildea <[email protected]> Thu, 04 Nov 2021 01:37:43 -0700
| Newsgroups | gmane.mail.getmail.user |
|---|---|
| Message-ID | <1687832.1636015063@pental> |
03-getmail-except-as-2of2.patch
(text/x-diff, 21.5 KB)
diff -ur getmail-5.16-for-python-2.6/getmailcore/message.py getmail-5.16-except-as-and-2.6/getmailcore/message.py
--- getmail-5.16-for-python-2.6/getmailcore/message.py 2021-11-03 09:49:03.140267922 -0700
+++ getmail-5.16-except-as-and-2.6/getmailcore/message.py 2021-11-01 23:04:17.819304012 -0700
@@ -19,10 +19,10 @@
from email.Generator import Generator
try:
from email.header import Header
-except ImportError, o:
+except ImportError as o:
try:
from email.Header import Header
- except ImportError, o:
+ except ImportError as o:
# Python < 2.5
from email import Header
@@ -111,19 +111,19 @@
if fromlines:
try:
self.__msg = parser.parsestr(os.linesep.join(fromlines))
- except email.Errors.MessageError, o:
+ except email.Errors.MessageError as o:
self.__msg = corrupt_message(o, fromlines=fromlines)
self.__raw = os.linesep.join(fromlines)
elif fromstring:
try:
self.__msg = parser.parsestr(fromstring)
- except email.Errors.MessageError, o:
+ except email.Errors.MessageError as o:
self.__msg = corrupt_message(o, fromstring=fromstring)
self.__raw = fromstring
elif fromfile:
try:
self.__msg = parser.parse(fromfile)
- except email.Errors.MessageError, o:
+ except email.Errors.MessageError as o:
# Shouldn't happen
self.__msg = corrupt_message(o, fromstring=fromfile.read())
# fromfile is only used by getmail_maildir, getmail_mbox, and
@@ -191,7 +191,7 @@
strmsg = RE_FROMLINE.sub(r'>\1', strmsg)
return (fromline + rpline + dtline + receivedline
+ os.linesep.join(strmsg.splitlines() + ['']))
- except TypeError, o:
+ except TypeError as o:
# email module chokes on some badly-misformatted messages, even
# late during flatten(). Hope this is fixed in Python 2.4.
if self.__raw is None:
diff -ur getmail-5.16-for-python-2.6/getmailcore/_pop3ssl.py getmail-5.16-except-as-and-2.6/getmailcore/_pop3ssl.py
--- getmail-5.16-for-python-2.6/getmailcore/_pop3ssl.py 2021-11-03 09:49:03.140267922 -0700
+++ getmail-5.16-except-as-and-2.6/getmailcore/_pop3ssl.py 2021-11-01 23:04:17.819304012 -0700
@@ -99,7 +99,7 @@
log.trace('end of loop\n')
log.trace('returning line "%r"\n' % line)
return line
- except (socket.sslerror, socket.error), o:
+ except (socket.sslerror, socket.error) as o:
raise getmailOperationError(
'socket/ssl error while reading from server (%s)' % o
)
@@ -130,7 +130,7 @@
self.sock = sslsocket(self.rawsock, keyfile, certfile)
else:
self.sock = sslsocket(self.rawsock)
- except socket.error, msg:
+ except socket.error as msg:
if self.rawsock:
self.rawsock.close()
self.rawsock = None
@@ -165,7 +165,7 @@
"""
try:
resp = self._shortcmd('QUIT')
- except (error_proto, socket.error), val:
+ except (error_proto, socket.error) as val:
resp = val
self.sock.close()
del self.sock
diff -ur getmail-5.16-for-python-2.6/getmailcore/_retrieverbases.py getmail-5.16-except-as-and-2.6/getmailcore/_retrieverbases.py
--- getmail-5.16-for-python-2.6/getmailcore/_retrieverbases.py 2021-11-03 09:49:03.140267922 -0700
+++ getmail-5.16-except-as-and-2.6/getmailcore/_retrieverbases.py 2021-11-01 23:04:17.815303983 -0700
@@ -209,7 +209,7 @@
try:
from email.header import decode_header
-except ImportError, o:
+except ImportError as o:
# python < 2.5
from email.Header import decode_header
@@ -298,12 +298,12 @@
try:
self.conn = poplib.POP3(self.conf['server'], self.conf['port'])
self.setup_received(self.conn.sock)
- except poplib.error_proto, o:
+ except poplib.error_proto as o:
raise getmailOperationError('POP error (%s)' % o)
except socket.timeout:
raise
#raise getmailOperationError('timeout during connect')
- except socket.gaierror, o:
+ except socket.gaierror as o:
raise getmailOperationError(
'error resolving name %s during connect (%s)'
% (self.conf['server'], o)
@@ -338,7 +338,7 @@
try:
self.sock = socket.socket(af, socktype, proto)
self.sock.connect(sa)
- except socket.error, msg:
+ except socket.error as msg:
if self.sock:
self.sock.close()
self.sock = None
@@ -463,12 +463,12 @@
% actual_hash
)
- except poplib.error_proto, o:
+ except poplib.error_proto as o:
raise getmailOperationError('POP error (%s)' % o)
except socket.timeout:
#raise getmailOperationError('timeout during connect')
raise
- except socket.gaierror, o:
+ except socket.gaierror as o:
raise getmailOperationError(
'error resolving name %s during connect (%s)'
% (self.conf['server'], o)
@@ -532,14 +532,14 @@
self.conn = POP3SSL(self.conf['server'], self.conf['port'])
self.setup_received(self.conn.rawsock)
- except poplib.error_proto, o:
+ except poplib.error_proto as o:
raise getmailOperationError('POP error (%s)' % o)
except socket.timeout:
#raise getmailOperationError('timeout during connect')
raise
- except socket.gaierror, o:
+ except socket.gaierror as o:
raise getmailOperationError('socket error during connect (%s)' % o)
- except socket.sslerror, o:
+ except socket.sslerror as o:
raise getmailOperationError(
'socket sslerror during connect (%s)' % o
)
@@ -558,12 +558,12 @@
try:
self.conn = imaplib.IMAP4(self.conf['server'], self.conf['port'])
self.setup_received(self.conn.sock)
- except imaplib.IMAP4.error, o:
+ except imaplib.IMAP4.error as o:
raise getmailOperationError('IMAP error (%s)' % o)
except socket.timeout:
#raise getmailOperationError('timeout during connect')
raise
- except socket.gaierror, o:
+ except socket.gaierror as o:
raise getmailOperationError('socket error during connect (%s)' % o)
self.log.trace('IMAP connection %s established' % self.conn
@@ -701,12 +701,12 @@
% actual_hash
)
- except imaplib.IMAP4.error, o:
+ except imaplib.IMAP4.error as o:
raise getmailOperationError('IMAP error (%s)' % o)
except socket.timeout:
#raise getmailOperationError('timeout during connect')
raise
- except socket.gaierror, o:
+ except socket.gaierror as o:
errcode = o[0]
if errcode in (EAI_NONAME, EAI_NODATA):
# No such DNS name
@@ -722,7 +722,7 @@
else:
raise getmailOperationError('socket error during connect (%s)'
% o)
- except socket.sslerror, o:
+ except socket.sslerror as o:
raise getmailOperationError(
'socket sslerror during connect (%s)' % o
)
@@ -948,7 +948,7 @@
oldmailfile.close()
self.log.moreinfo('wrote %i uids for %s%s'
% (wrote, logname, os.linesep))
- except IOError, o:
+ except IOError as o:
self.log.error('failed writing oldmail file for %s (%s)'
% (logname, o) + os.linesep)
if oldmailfile:
@@ -1116,7 +1116,7 @@
+ os.linesep)
del self.oldmail[msgid]
- except poplib.error_proto, o:
+ except poplib.error_proto as o:
raise getmailOperationError(
'POP error (%s) - if your server does not support the UIDL '
'command, use BrokenUIDLPOP3Retriever instead'
@@ -1139,7 +1139,7 @@
% (response, octets) + os.linesep)
msg = Message(fromlines=lines+[''])
return msg
- except poplib.error_proto, o:
+ except poplib.error_proto as o:
raise getmailRetrievalError(
'failed to retrieve msgid %s; server said %s'
% (msgid, o)
@@ -1198,7 +1198,7 @@
self.log.debug('removing vanished message id %s' % msgid
+ os.linesep)
del self.oldmail[msgid]
- except poplib.error_proto, o:
+ except poplib.error_proto as o:
raise getmailOperationError('POP error (%s)' % o)
def abort(self):
@@ -1209,7 +1209,7 @@
try:
self.conn.rset()
self.conn.quit()
- except (poplib.error_proto, socket.error), o:
+ except (poplib.error_proto, socket.error) as o:
pass
self.conn = None
@@ -1220,7 +1220,7 @@
return
try:
self.conn.quit()
- except (poplib.error_proto, socket.error), o:
+ except (poplib.error_proto, socket.error) as o:
raise getmailOperationError('POP error (%s)' % o)
except AttributeError:
pass
@@ -1261,7 +1261,7 @@
raise ValueError(self.conf['envelope_recipient'])
except IndexError:
pass
- except ValueError, o:
+ except ValueError as o:
raise getmailConfigurationError(
'invalid envelope_recipient specification format (%s)' % o
)
@@ -1280,7 +1280,7 @@
try:
line = data[self.envrecipname][self.envrecipnum]
- except (KeyError, IndexError), unused:
+ except (KeyError, IndexError) as unused:
raise getmailConfigurationError(
'envelope_recipient specified header missing (%s)'
% self.conf['envelope_recipient']
@@ -1356,7 +1356,7 @@
self.log.trace()
try:
result, resplist = getattr(self.conn, cmd)(*args)
- except imaplib.IMAP4.error, o:
+ except imaplib.IMAP4.error as o:
if cmd == 'login':
# Percolate up
raise
@@ -1381,7 +1381,7 @@
self.log.trace()
try:
result, resplist = self.conn.uid(cmd, *args)
- except imaplib.IMAP4.error, o:
+ except imaplib.IMAP4.error as o:
if cmd == 'login':
# Percolate up
raise
@@ -1416,7 +1416,7 @@
raise ValueError
name = parts.pop(0).lower()
r[name] = parts.pop(0)
- except (ValueError, IndexError, AttributeError), o:
+ except (ValueError, IndexError, AttributeError) as o:
raise getmailOperationError(
'IMAP error (failed to parse attr response line "%s": %s)'
% (line, o)
@@ -1445,7 +1445,7 @@
mailboxes.append(mailbox)
#log.debug(u'%20s : delimiter %s, attributes: %s',
# mailbox, g['delimiter'], ', '.join(attributes))
- except Exception, o:
+ except Exception as o:
raise getmailOperationError('error decoding mailbox "%s"'
% g['mailbox'])
return mailboxes
@@ -1501,9 +1501,9 @@
# use *last* EXISTS returned
count = int(count[-1])
uidvalidity = self.conn.response('UIDVALIDITY')[1][0]
- except imaplib.IMAP4.error, o:
+ except imaplib.IMAP4.error as o:
raise getmailOperationError('IMAP error (%s)' % o)
- except (IndexError, ValueError), o:
+ except (IndexError, ValueError) as o:
raise getmailOperationError(
'IMAP server failed to return correct SELECT response (%s)'
% o
@@ -1553,7 +1553,7 @@
+ os.linesep)
del self.oldmail[msgid]
- except imaplib.IMAP4.error, o:
+ except imaplib.IMAP4.error as o:
raise getmailOperationError('IMAP error (%s)' % o)
self.gotmsglist = True
@@ -1576,7 +1576,7 @@
response = self._parse_imapuidcmdresponse(
'STORE', uid, 'FLAGS', '(\Deleted \Seen)'
)
- except imaplib.IMAP4.error, o:
+ except imaplib.IMAP4.error as o:
raise getmailOperationError('IMAP error (%s)' % o)
def _getmsgpartbyid(self, msgid, part):
@@ -1588,7 +1588,7 @@
+ os.linesep)
try:
response = self._parse_imapuidcmdresponse('FETCH', uid, part)
- except (imaplib.IMAP4.error, getmailOperationError), o:
+ except (imaplib.IMAP4.error, getmailOperationError) as o:
# server gave a negative/NO response, most likely. Bad server,
# no doughnut.
raise getmailRetrievalError(
@@ -1612,13 +1612,13 @@
try:
try:
sbody = response[0][1]
- except Exception, o:
+ except Exception as o:
sbody = None
if not sbody:
self.log.error('bad message from server!')
sbody = str(response)
msg = Message(fromstring=sbody)
- except TypeError, o:
+ except TypeError as o:
# response[0] is None instead of a message tuple
raise getmailRetrievalError('failed to retrieve msgid %s'
% msgid)
@@ -1636,7 +1636,7 @@
return msg
- except imaplib.IMAP4.error, o:
+ except imaplib.IMAP4.error as o:
raise getmailOperationError('IMAP error (%s)' % o)
def _getgmailmetadata(self, uid, msg):
@@ -1652,7 +1652,7 @@
# 'separated) UID 167669)']
response = self._parse_imapuidcmdresponse('FETCH', uid,
'(X-GM-LABELS X-GM-THRID X-GM-MSGID)')
- except imaplib.IMAP4.error, o:
+ except imaplib.IMAP4.error as o:
self.log.warning('Could not fetch google imap extensions: %s' % o)
return {}
@@ -1745,9 +1745,9 @@
else:
self._parse_imapcmdresponse('login', self.conf['username'],
self.conf['password'])
- except imaplib.IMAP4.abort, o:
+ except imaplib.IMAP4.abort as o:
raise getmailLoginRefusedError(o)
- except imaplib.IMAP4.error, o:
+ except imaplib.IMAP4.error as o:
if str(o).startswith('[UNAVAILABLE]'):
raise getmailLoginRefusedError(o)
else:
@@ -1792,7 +1792,7 @@
# Special value meaning all mailboxes in account
self.mailboxes = tuple(self.list_mailboxes())
- except imaplib.IMAP4.error, o:
+ except imaplib.IMAP4.error as o:
raise getmailOperationError('IMAP error (%s)' % o)
def abort(self):
@@ -1802,7 +1802,7 @@
return
try:
self.quit()
- except (imaplib.IMAP4.error, socket.error), o:
+ except (imaplib.IMAP4.error, socket.error) as o:
pass
self.conn = None
@@ -1848,7 +1848,7 @@
try:
aborted = None
(readable, unused, unused) = select.select([sock], [], [], timeout)
- except KeyboardInterrupt, o:
+ except KeyboardInterrupt as o:
# Delay raising this until we've stopped IDLE mode
aborted = o
@@ -1864,7 +1864,7 @@
self.conn.untagged_responses = {}
self.conn.send('DONE\r\n')
self.conn._command_complete('IDLE', tag)
- except imaplib.IMAP4.error, o:
+ except imaplib.IMAP4.error as o:
return False
if aborted:
@@ -1880,7 +1880,7 @@
if self.mailbox_selected is not False:
self.close_mailbox()
self.conn.logout()
- except imaplib.IMAP4.error, o:
+ except imaplib.IMAP4.error as o:
#raise getmailOperationError('IMAP error (%s)' % o)
self.log.warning('IMAP error during logout (%s)' % o + os.linesep)
RetrieverSkeleton.quit(self)
@@ -1920,7 +1920,7 @@
raise ValueError(self.conf['envelope_recipient'])
except IndexError:
pass
- except ValueError, o:
+ except ValueError as o:
raise getmailConfigurationError(
'invalid envelope_recipient specification format (%s)' % o
)
@@ -1940,7 +1940,7 @@
try:
line = data[self.envrecipname][self.envrecipnum]
- except (KeyError, IndexError), unused:
+ except (KeyError, IndexError) as unused:
raise getmailConfigurationError(
'envelope_recipient specified header missing (%s)'
% self.conf['envelope_recipient']
diff -ur getmail-5.16-for-python-2.6/getmailcore/retrievers.py getmail-5.16-except-as-and-2.6/getmailcore/retrievers.py
--- getmail-5.16-for-python-2.6/getmailcore/retrievers.py 2021-11-03 09:49:03.140267922 -0700
+++ getmail-5.16-except-as-and-2.6/getmailcore/retrievers.py 2021-11-01 23:04:17.819304012 -0700
@@ -157,7 +157,7 @@
self.msgid_by_msgnum[msgnum] = msgnum
self.msgsizes[msgnum] = msgsize
self.sorted_msgnum_msgid = sorted(self.msgid_by_msgnum.items())
- except poplib.error_proto, o:
+ except poplib.error_proto as o:
raise getmailOperationError('POP error (%s)' % o)
self.gotmsglist = True
@@ -355,7 +355,7 @@
try:
msgnum = self._getmsgnumbyid(msgid)
resp, lines, octets = self.conn._longcmd('*ENV %i' % msgnum)
- except poplib.error_proto, o:
+ except poplib.error_proto as o:
raise getmailConfigurationError(
'server does not support *ENV (%s)' % o
)
diff -ur getmail-5.16-for-python-2.6/getmailcore/utilities.py getmail-5.16-except-as-and-2.6/getmailcore/utilities.py
--- getmail-5.16-for-python-2.6/getmailcore/utilities.py 2021-11-03 09:49:03.140267922 -0700
+++ getmail-5.16-except-as-and-2.6/getmailcore/utilities.py 2021-11-01 23:04:17.819304012 -0700
@@ -49,7 +49,7 @@
import errno
try:
import subprocess
-except ImportError, o:
+except ImportError as o:
subprocess = None
# hashlib only present in python2.5, ssl in python2.6; used together
@@ -115,7 +115,7 @@
try:
fd = os.open(path, os.O_RDWR | os.O_CREAT | os.O_EXCL, permissions)
file = os.fdopen(fd, mode)
- except OSError, o:
+ except OSError as o:
raise getmailDeliveryError('failure opening %s (%s)' % (path, o))
return file
@@ -333,7 +333,7 @@
os.fsync(f.fileno())
f.close()
- except IOError, o:
+ except IOError as o:
signal.alarm(0)
raise getmailDeliveryError('failure writing file %s (%s)'
% (fname_tmp, o))
@@ -391,14 +391,14 @@
def gid_of_uid(uid):
try:
return pwd.getpwuid(uid).pw_gid
- except KeyError, o:
+ except KeyError as o:
raise getmailConfigurationError('no such specified uid (%s)' % o)
#######################################
def uid_of_user(user):
try:
return pwd.getpwnam(user).pw_uid
- except KeyError, o:
+ except KeyError as o:
raise getmailConfigurationError('no such specified user (%s)' % o)
#######################################
@@ -414,7 +414,7 @@
logger.debug('Getting GID for specified group %s\n' % _group)
try:
gid = grp.getgrnam(_group).gr_gid
- except KeyError, o:
+ except KeyError as o:
raise getmailConfigurationError('no such specified group (%s)' % o)
if user:
if logger:
@@ -440,7 +440,7 @@
if logger:
logger.debug('Setting euid to %d\n' % uid)
os.setreuid(uid, uid)
- except OSError, o:
+ except OSError as o:
raise getmailDeliveryError('change UID/GID to %s/%s failed (%s)'
% (uid, gid, o))
@@ -455,13 +455,13 @@
try:
(lang, encoding) = lang.split('.')
return s.decode(encoding)
- except (UnicodeError, ValueError), o:
+ except (UnicodeError, ValueError) as o:
pass
# that failed; try well-formed in various common encodings next
for encoding in ('ascii', 'utf-8', 'latin-1', 'utf-16'):
try:
return s.decode(encoding)
- except UnicodeError, o:
+ except UnicodeError as o:
continue
# all failed - force it
return s.decode('utf-8', 'replace')
@@ -737,7 +737,7 @@
try:
p = subprocess.Popen(cmd, stdout=stdout, stderr=stderr)
- except OSError, o:
+ except OSError as o:
if o.errno == errno.ENOENT:
# no such file, command not found
raise getmailConfigurationError('Program "%s" not found' % command)