Skip to content

Commit 1fba05d

Browse files
committed
update
1 parent c657e6e commit 1fba05d

12 files changed

Lines changed: 76 additions & 81 deletions

Mailman/Digester.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929

3030
# Lazy import to avoid circular dependency
3131
def get_to_digest():
32-
from Mailman.Handlers import ToDigest
32+
import Mailman.Handlers.ToDigest as ToDigest
3333
return ToDigest
3434

3535

Mailman/Handlers/Moderate.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535

3636
# Lazy imports to avoid circular dependencies
3737
def get_hold():
38-
from Mailman.Handlers import Hold
38+
import Mailman.Handlers.Hold as Hold
3939
return Hold
4040

4141
def get_mail_list():

Mailman/ListAdmin.py

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@
2323
elsewhere.
2424
"""
2525

26-
from builtins import str
27-
from builtins import object
26+
from builtins import str, object
2827
import os
2928
import time
3029
import errno
@@ -41,11 +40,11 @@
4140
from email.generator import Generator
4241
from email.utils import getaddresses
4342
import email.message
44-
from email.message import Message
43+
from email.message import Message as EmailMessage
4544

4645
from Mailman import mm_cfg
4746
from Mailman import Utils
48-
from Mailman.Message import Message
47+
import Mailman.Message as Message
4948
from Mailman import Errors
5049
from Mailman.UserDesc import UserDesc
5150
from Mailman.Queue.sbcache import get_switchboard
@@ -379,12 +378,12 @@ def __handlepost(self, record, value, comment, preserve, forward, addr):
379378
elif value == mm_cfg.APPROVE:
380379
# Approved.
381380
try:
382-
msg = email.message_from_file(fp, Message)
381+
msg = email.message_from_file(fp, EmailMessage)
383382
except IOError as e:
384383
if e.errno != errno.ENOENT: raise
385384
return LOST
386385
# Convert to Mailman.Message if needed
387-
if isinstance(msg, Message) and not isinstance(msg, Message):
386+
if isinstance(msg, EmailMessage) and not isinstance(msg, Message):
388387
mailman_msg = Message()
389388
# Copy all attributes from the original message
390389
for key, value in msg.items():
@@ -436,12 +435,12 @@ def __handlepost(self, record, value, comment, preserve, forward, addr):
436435
# since we don't want to share any state or information with the
437436
# normal delivery.
438437
try:
439-
copy = email.message_from_file(fp, Message)
438+
copy = email.message_from_file(fp, EmailMessage)
440439
except IOError as e:
441440
if e.errno != errno.ENOENT: raise
442441
raise Errors.LostHeldMessage(path)
443442
# Convert to Mailman.Message if needed
444-
if isinstance(copy, Message) and not isinstance(copy, Message):
443+
if isinstance(copy, EmailMessage) and not isinstance(copy, Message):
445444
mailman_msg = Message()
446445
# Copy all attributes from the original message
447446
for key, value in copy.items():
@@ -804,9 +803,9 @@ def readMessage(path):
804803
fp = open(path, 'rb')
805804
try:
806805
if ext == '.txt':
807-
msg = email.message_from_file(fp, Message)
806+
msg = email.message_from_file(fp, EmailMessage)
808807
# Convert to Mailman.Message if needed
809-
if isinstance(msg, Message) and not isinstance(msg, Message):
808+
if isinstance(msg, EmailMessage) and not isinstance(msg, Message):
810809
mailman_msg = Message()
811810
# Copy all attributes from the original message
812811
for key, value in msg.items():
@@ -822,7 +821,7 @@ def readMessage(path):
822821
assert ext == '.pck'
823822
msg = pickle.load(fp, fix_imports=True, encoding='latin1')
824823
# Convert to Mailman.Message if needed
825-
if isinstance(msg, Message) and not isinstance(msg, Message):
824+
if isinstance(msg, EmailMessage) and not isinstance(msg, Message):
826825
mailman_msg = Message()
827826
# Copy all attributes from the original message
828827
for key, value in msg.items():

Mailman/Message.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
which is more convenient for use inside Mailman.
2222
"""
2323

24+
from builtins import object
2425
import re
2526
from io import StringIO
2627
import time
@@ -31,6 +32,7 @@
3132
import email.utils
3233
from email.charset import Charset
3334
from email.header import Header
35+
from email.message import Message as EmailMessage
3436

3537
from Mailman import mm_cfg
3638
from Mailman.Utils import GetCharSet, unique_message_id, get_site_email
@@ -62,11 +64,11 @@ def clone(self, fp):
6264
self.__children_maxheaderlen, self.__children_maxheaderlen)
6365

6466

65-
class Message(email.message.Message):
67+
class Message(EmailMessage):
6668
def __init__(self):
6769
# We need a version number so that we can optimize __setstate__()
6870
self.__version__ = VERSION
69-
email.message.Message.__init__(self)
71+
EmailMessage.__init__(self)
7072

7173
# BAW: For debugging w/ bin/dumpdb. Apparently pprint uses repr.
7274
def __repr__(self):

Mailman/Queue/BounceRunner.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@
1717

1818
"""Bounce queue runner.
1919
20-
This module is responsible for processing bounce messages.
20+
This module is responsible for processing bounce messages. It's a separate
21+
queue from the virgin queue because bounces need different handling.
2122
"""
2223

2324
from builtins import object, str
@@ -26,33 +27,31 @@
2627
import time
2728
import pickle
2829
import email
29-
from email.utils import getaddresses
30+
from email.utils import getaddresses, parseaddr
3031
from email.iterators import body_line_iterator
32+
from email.mime.text import MIMEText
33+
from email.mime.message import MIMEMessage
3134
import traceback
3235
from io import StringIO
3336
import sys
3437

35-
from email.mime.text import MIMEText
36-
from email.mime.message import MIMEMessage
37-
from email.utils import parseaddr
38-
3938
from Mailman import mm_cfg
4039
from Mailman import Utils
4140
from Mailman import LockFile
4241
from Mailman import Errors
4342
from Mailman import i18n
4443
from Mailman.Errors import NotAMemberError
45-
from Mailman.Message import Message, UserNotification
4644
from Mailman.Bouncer import _BounceInfo
4745
from Mailman.Bouncers import BouncerAPI
4846
from Mailman.Queue.Runner import Runner
4947
from Mailman.Queue.sbcache import get_switchboard
5048
from Mailman.Logging.Syslog import syslog
5149
from Mailman.i18n import _
50+
import Mailman.Message as Message
5251

5352
# Lazy import to avoid circular dependency
5453
def get_mail_list():
55-
from Mailman.MailList import MailList
54+
import Mailman.MailList as MailList
5655
return MailList
5756

5857
COMMASPACE = ', '

Mailman/Queue/CommandRunner.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
from Mailman.htmlformat import *
3333
from Mailman.Logging.Syslog import mailman_log, syslog
3434
from Mailman.Utils import validate_ip_address
35-
from Mailman.Handlers.Replybot import Replybot
35+
import Mailman.Handlers.Replybot as Replybot
3636
from Mailman.Message import Message
3737
from Mailman.i18n import _
3838
from Mailman.Queue.Runner import Runner
@@ -47,11 +47,11 @@
4747

4848
# Lazy imports to avoid circular dependencies
4949
def get_replybot():
50-
from Mailman.Handlers import Replybot
50+
import Mailman.Handlers.Replybot as Replybot
5151
return Replybot
5252

5353
def get_maillist():
54-
from Mailman.MailList import MailList
54+
import Mailman.MailList as MailList
5555
return MailList
5656

5757
NL = '\n'

Mailman/Queue/IncomingRunner.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,8 @@
116116
from Mailman import LockFile
117117
from Mailman.Queue.Runner import Runner
118118
from Mailman.Logging.Syslog import mailman_log
119-
from Mailman.MailList import MailList
119+
import Mailman.MailList as MailList
120+
import Mailman.Message as Message
120121

121122

122123
class PipelineError(Exception):
@@ -338,8 +339,8 @@ def _oneloop(self):
338339
# Create a MailList object using lazy import
339340
try:
340341
# Import MailList here to avoid circular imports
341-
from Mailman.MailList import MailList
342-
mlist = MailList(listname, lock=0)
342+
import Mailman.MailList as MailList
343+
mlist = MailList.MailList(listname, lock=0)
343344
except ImportError:
344345
# If we can't import MailList, try to get it from sys.modules
345346
import sys

Mailman/Queue/NewsRunner.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@
3838
from Mailman import i18n
3939
from Mailman.Queue.Runner import Runner
4040
from Mailman.Logging.Syslog import mailman_log, syslog
41-
from Mailman.Message import Message
42-
from Mailman.MailList import MailList
41+
import Mailman.Message as Message
42+
import Mailman.MailList as MailList
4343

4444
# Only import nntplib if NNTP support is enabled
4545
try:

Mailman/Queue/OutgoingRunner.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,19 +32,19 @@
3232
from Mailman import Utils
3333
from Mailman import Errors
3434
from Mailman import i18n
35-
from Mailman.Message import Message
3635
from Mailman.Logging.Syslog import mailman_log
3736
from Mailman.Queue.Runner import Runner
3837
from Mailman.Queue.Switchboard import Switchboard
3938
from Mailman.Queue.BounceRunner import BounceMixin
39+
import Mailman.Message as Message
4040

4141
# Lazy import to avoid circular dependency
4242
def get_mail_list():
43-
from Mailman.MailList import MailList
43+
import Mailman.MailList as MailList
4444
return MailList
4545

4646
def get_replybot():
47-
from Mailman.Handlers import Replybot
47+
import Mailman.Handlers.Replybot as Replybot
4848
return Replybot
4949

5050
# This controls how often _doperiodic() will try to deal with deferred

Mailman/Queue/RetryRunner.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright (C) 2003-2018 by the Free Software Foundation, Inc.
1+
# Copyright (C) 1998-2018 by the Free Software Foundation, Inc.
22
#
33
# This program is free software; you can redistribute it and/or
44
# modify it under the terms of the GNU General Public License
@@ -12,20 +12,31 @@
1212
#
1313
# You should have received a copy of the GNU General Public License
1414
# along with this program; if not, write to the Free Software
15-
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
16+
# USA.
1617

18+
"""Retry queue runner.
19+
20+
This module is responsible for retrying failed message deliveries. It's a
21+
separate queue from the virgin queue because retries need different handling.
22+
"""
23+
24+
from builtins import object
1725
import time
1826
import traceback
1927
import os
2028
import sys
2129
import threading
30+
import email.message
2231

2332
from Mailman import mm_cfg
2433
from Mailman import Errors
2534
from Mailman.Queue.Runner import Runner
2635
from Mailman.Queue.Switchboard import Switchboard
2736
from Mailman.Errors import MMUnknownListError
2837
from Mailman.Logging.Syslog import mailman_log
38+
import Mailman.MailList as MailList
39+
import Mailman.Message as Message
2940

3041
class RetryRunner(Runner):
3142
QDIR = mm_cfg.RETRYQUEUE_DIR

0 commit comments

Comments
 (0)