diff options
| author | Barry Warsaw | 2014-12-22 20:06:20 -0500 |
|---|---|---|
| committer | Barry Warsaw | 2014-12-22 20:06:20 -0500 |
| commit | 286fac3f7c580dfc137ac11290a2ba5713f69472 (patch) | |
| tree | 1449121ac40dca604016bdef820e32ac08964d39 /src | |
| parent | fdd4748e2bb8da32a737aef3ba4d7705f654c729 (diff) | |
| download | mailman-286fac3f7c580dfc137ac11290a2ba5713f69472.tar.gz mailman-286fac3f7c580dfc137ac11290a2ba5713f69472.tar.zst mailman-286fac3f7c580dfc137ac11290a2ba5713f69472.zip | |
Diffstat (limited to 'src')
305 files changed, 338 insertions, 1378 deletions
diff --git a/src/mailman/__init__.py b/src/mailman/__init__.py index db7befab7..74040d211 100644 --- a/src/mailman/__init__.py +++ b/src/mailman/__init__.py @@ -17,13 +17,6 @@ """The `mailman` package.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type -__all__ = [ - ] - - import sys diff --git a/src/mailman/app/bounces.py b/src/mailman/app/bounces.py index 4f3fd187a..ebfe63cff 100644 --- a/src/mailman/app/bounces.py +++ b/src/mailman/app/bounces.py @@ -17,9 +17,6 @@ """Application level bounce handling.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'ProbeVERP', 'StandardVERP', @@ -36,10 +33,6 @@ import logging from email.mime.message import MIMEMessage from email.mime.text import MIMEText from email.utils import parseaddr -from string import Template -from zope.component import getUtility -from zope.interface import implementer - from mailman.config import config from mailman.core.i18n import _ from mailman.email.message import OwnerNotification, UserNotification @@ -50,6 +43,10 @@ from mailman.interfaces.subscriptions import ISubscriptionService from mailman.utilities.email import split_email from mailman.utilities.i18n import make from mailman.utilities.string import oneline +from string import Template +from zope.component import getUtility +from zope.interface import implementer + log = logging.getLogger('mailman.config') elog = logging.getLogger('mailman.error') diff --git a/src/mailman/app/commands.py b/src/mailman/app/commands.py index a0f717138..cfa672de5 100644 --- a/src/mailman/app/commands.py +++ b/src/mailman/app/commands.py @@ -17,19 +17,15 @@ """Initialize the email commands.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'initialize', ] -from zope.interface.verify import verifyObject - from mailman.config import config from mailman.interfaces.command import IEmailCommand from mailman.utilities.modules import find_components +from zope.interface.verify import verifyObject diff --git a/src/mailman/app/domain.py b/src/mailman/app/domain.py index 7ad976699..a8a2cd71a 100644 --- a/src/mailman/app/domain.py +++ b/src/mailman/app/domain.py @@ -17,18 +17,14 @@ """Application level domain support.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'handle_DomainDeletingEvent', ] -from zope.component import getUtility - from mailman.interfaces.domain import DomainDeletingEvent from mailman.interfaces.listmanager import IListManager +from zope.component import getUtility diff --git a/src/mailman/app/events.py b/src/mailman/app/events.py index 16817c202..0b7f2309e 100644 --- a/src/mailman/app/events.py +++ b/src/mailman/app/events.py @@ -17,22 +17,18 @@ """Global events.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'initialize', ] -from zope import event - from mailman.app import ( domain, membership, moderator, registrar, subscriptions) from mailman.core import i18n, switchboard from mailman.languages import manager as language_manager from mailman.styles import manager as style_manager from mailman.utilities import passwords +from zope import event diff --git a/src/mailman/app/inject.py b/src/mailman/app/inject.py index 584bd7b8f..77ad8dedb 100644 --- a/src/mailman/app/inject.py +++ b/src/mailman/app/inject.py @@ -17,9 +17,6 @@ """Inject a message into a queue.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'inject_message', 'inject_text', @@ -28,7 +25,6 @@ __all__ = [ from email import message_from_string from email.utils import formatdate, make_msgid - from mailman.config import config from mailman.email.message import Message from mailman.utilities.email import add_message_hash diff --git a/src/mailman/app/lifecycle.py b/src/mailman/app/lifecycle.py index 8110fe69d..bef8320d0 100644 --- a/src/mailman/app/lifecycle.py +++ b/src/mailman/app/lifecycle.py @@ -17,9 +17,6 @@ """Application level list creation.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'create_list', 'remove_list', @@ -31,8 +28,6 @@ import errno import shutil import logging -from zope.component import getUtility - from mailman.config import config from mailman.interfaces.address import IEmailValidator from mailman.interfaces.domain import ( @@ -42,6 +37,7 @@ from mailman.interfaces.member import MemberRole from mailman.interfaces.styles import IStyleManager from mailman.interfaces.usermanager import IUserManager from mailman.utilities.modules import call_name +from zope.component import getUtility log = logging.getLogger('mailman.error') diff --git a/src/mailman/app/membership.py b/src/mailman/app/membership.py index 4ec6b7878..0a6c8b971 100644 --- a/src/mailman/app/membership.py +++ b/src/mailman/app/membership.py @@ -17,9 +17,6 @@ """Application support for membership management.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'add_member', 'delete_member', @@ -28,8 +25,6 @@ __all__ = [ from email.utils import formataddr -from zope.component import getUtility - from mailman.app.notifications import ( send_goodbye_message, send_welcome_message) from mailman.config import config @@ -40,6 +35,7 @@ from mailman.interfaces.member import ( MemberRole, MembershipIsBannedError, NotAMemberError, SubscriptionEvent) from mailman.interfaces.usermanager import IUserManager from mailman.utilities.i18n import make +from zope.component import getUtility diff --git a/src/mailman/app/moderator.py b/src/mailman/app/moderator.py index e5fbc9044..d4c5b1036 100644 --- a/src/mailman/app/moderator.py +++ b/src/mailman/app/moderator.py @@ -17,9 +17,6 @@ """Application support for moderators.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'handle_ListDeletingEvent', 'handle_message', diff --git a/src/mailman/app/notifications.py b/src/mailman/app/notifications.py index f5dd7ed19..163b02653 100644 --- a/src/mailman/app/notifications.py +++ b/src/mailman/app/notifications.py @@ -17,9 +17,6 @@ """Sending notifications.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'send_admin_subscription_notice', 'send_goodbye_message', diff --git a/src/mailman/app/registrar.py b/src/mailman/app/registrar.py index aa4e35483..fd84f7aa0 100644 --- a/src/mailman/app/registrar.py +++ b/src/mailman/app/registrar.py @@ -17,9 +17,6 @@ """Implementation of the IUserRegistrar interface.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Registrar', 'handle_ConfirmationNeededEvent', @@ -28,10 +25,6 @@ __all__ = [ import logging -from zope.component import getUtility -from zope.event import notify -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.email.message import UserNotification from mailman.interfaces.address import IEmailValidator @@ -42,6 +35,9 @@ from mailman.interfaces.registrar import ConfirmationNeededEvent, IRegistrar from mailman.interfaces.templates import ITemplateLoader from mailman.interfaces.usermanager import IUserManager from mailman.utilities.datetime import now +from zope.component import getUtility +from zope.event import notify +from zope.interface import implementer log = logging.getLogger('mailman.error') diff --git a/src/mailman/app/replybot.py b/src/mailman/app/replybot.py index 4ade73faf..ca563ea0a 100644 --- a/src/mailman/app/replybot.py +++ b/src/mailman/app/replybot.py @@ -21,9 +21,6 @@ # mailing list. The reply governor should really apply site-wide per # recipient (I think). -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'can_acknowledge', ] diff --git a/src/mailman/app/subscriptions.py b/src/mailman/app/subscriptions.py index 620b99c20..e3239e97e 100644 --- a/src/mailman/app/subscriptions.py +++ b/src/mailman/app/subscriptions.py @@ -15,19 +15,14 @@ # You should have received a copy of the GNU General Public License along with # GNU Mailman. If not, see <http://www.gnu.org/licenses/>. -"""Module stuff.""" +"""Handle subscriptions.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'SubscriptionService', 'handle_ListDeletingEvent', ] -import six - from operator import attrgetter from passlib.utils import generate_password as generate from sqlalchemy import and_, or_ @@ -110,7 +105,7 @@ class SubscriptionService: # the parameter can either be an email address or a user id. query = [] if subscriber is not None: - if isinstance(subscriber, six.text_type): + if isinstance(subscriber, str): # subscriber is an email address. address = user_manager.get_address(subscriber) user = user_manager.get_user(subscriber) diff --git a/src/mailman/app/templates.py b/src/mailman/app/templates.py index d62ac7f16..a5f9fc1b5 100644 --- a/src/mailman/app/templates.py +++ b/src/mailman/app/templates.py @@ -17,9 +17,6 @@ """Template loader.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TemplateLoader', ] diff --git a/src/mailman/app/tests/test_bounces.py b/src/mailman/app/tests/test_bounces.py index 0cb1728cd..b89664209 100644 --- a/src/mailman/app/tests/test_bounces.py +++ b/src/mailman/app/tests/test_bounces.py @@ -17,9 +17,6 @@ """Testing app.bounces functions.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestBounceMessage', 'TestMaybeForward', @@ -36,8 +33,6 @@ import shutil import tempfile import unittest -from zope.component import getUtility - from mailman.app.bounces import ( ProbeVERP, StandardVERP, bounce_message, maybe_forward, send_probe) from mailman.app.lifecycle import create_list @@ -49,10 +44,9 @@ from mailman.interfaces.member import DeliveryMode, MemberRole from mailman.interfaces.pending import IPendings from mailman.interfaces.usermanager import IUserManager from mailman.testing.helpers import ( - LogFileMark, - get_queue_messages, - specialized_message_from_string as mfs) + LogFileMark, get_queue_messages, specialized_message_from_string as mfs) from mailman.testing.layers import ConfigLayer +from zope.component import getUtility diff --git a/src/mailman/app/tests/test_inject.py b/src/mailman/app/tests/test_inject.py index 23abc6943..196c32182 100644 --- a/src/mailman/app/tests/test_inject.py +++ b/src/mailman/app/tests/test_inject.py @@ -17,10 +17,9 @@ """Testing app.inject functions.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ + 'TestInjectMessage', + 'TestInjectText', ] diff --git a/src/mailman/app/tests/test_lifecycle.py b/src/mailman/app/tests/test_lifecycle.py index 0fb54f193..75386b870 100644 --- a/src/mailman/app/tests/test_lifecycle.py +++ b/src/mailman/app/tests/test_lifecycle.py @@ -17,9 +17,6 @@ """Test the high level list lifecycle API.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestLifecycle', ] diff --git a/src/mailman/app/tests/test_membership.py b/src/mailman/app/tests/test_membership.py index 95e8de1d0..5b2caf103 100644 --- a/src/mailman/app/tests/test_membership.py +++ b/src/mailman/app/tests/test_membership.py @@ -17,9 +17,6 @@ """Tests of application level membership functions.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestAddMember', 'TestAddMemberPassword', @@ -29,8 +26,6 @@ __all__ = [ import unittest -from zope.component import getUtility - from mailman.app.lifecycle import create_list from mailman.app.membership import add_member, delete_member from mailman.core.constants import system_preferences @@ -40,6 +35,7 @@ from mailman.interfaces.member import ( NotAMemberError) from mailman.interfaces.usermanager import IUserManager from mailman.testing.layers import ConfigLayer +from zope.component import getUtility diff --git a/src/mailman/app/tests/test_moderation.py b/src/mailman/app/tests/test_moderation.py index edb6b8c28..190b670d8 100644 --- a/src/mailman/app/tests/test_moderation.py +++ b/src/mailman/app/tests/test_moderation.py @@ -17,9 +17,6 @@ """Moderation tests.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestModeration', ] @@ -27,8 +24,6 @@ __all__ = [ import unittest -from zope.component import getUtility - from mailman.app.lifecycle import create_list from mailman.app.moderator import handle_message, hold_message from mailman.interfaces.action import Action @@ -41,6 +36,7 @@ from mailman.testing.helpers import ( get_queue_messages, make_testable_runner, specialized_message_from_string) from mailman.testing.layers import SMTPLayer from mailman.utilities.datetime import now +from zope.component import getUtility diff --git a/src/mailman/app/tests/test_notifications.py b/src/mailman/app/tests/test_notifications.py index 4cdc1c01c..fda4aaa0b 100644 --- a/src/mailman/app/tests/test_notifications.py +++ b/src/mailman/app/tests/test_notifications.py @@ -17,10 +17,8 @@ """Test notifications.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ + 'TestNotifications', ] @@ -29,8 +27,6 @@ import shutil import tempfile import unittest -from zope.component import getUtility - from mailman.app.lifecycle import create_list from mailman.app.membership import add_member from mailman.config import config @@ -38,6 +34,7 @@ from mailman.interfaces.languages import ILanguageManager from mailman.interfaces.member import DeliveryMode, MemberRole from mailman.testing.helpers import get_queue_messages from mailman.testing.layers import ConfigLayer +from zope.component import getUtility diff --git a/src/mailman/app/tests/test_registration.py b/src/mailman/app/tests/test_registration.py index ff128ae6f..fa34005c8 100644 --- a/src/mailman/app/tests/test_registration.py +++ b/src/mailman/app/tests/test_registration.py @@ -1,4 +1,4 @@ -# Copyright (C) 2012 by the Free Software Foundation, Inc. +# Copyright (C) 2012-2014 by the Free Software Foundation, Inc. # # This file is part of GNU Mailman. # @@ -17,9 +17,6 @@ """Test email address registration.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestEmailValidation', 'TestRegistration', @@ -28,14 +25,13 @@ __all__ = [ import unittest -from zope.component import getUtility - from mailman.app.lifecycle import create_list from mailman.interfaces.address import InvalidEmailAddressError from mailman.interfaces.pending import IPendings from mailman.interfaces.registrar import ConfirmationNeededEvent, IRegistrar from mailman.testing.helpers import event_subscribers from mailman.testing.layers import ConfigLayer +from zope.component import getUtility diff --git a/src/mailman/app/tests/test_subscriptions.py b/src/mailman/app/tests/test_subscriptions.py index bd1994c19..1ba3cc24b 100644 --- a/src/mailman/app/tests/test_subscriptions.py +++ b/src/mailman/app/tests/test_subscriptions.py @@ -17,9 +17,6 @@ """Tests for the subscription service.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestJoin' ] @@ -28,14 +25,13 @@ __all__ = [ import uuid import unittest -from zope.component import getUtility - from mailman.app.lifecycle import create_list from mailman.interfaces.address import InvalidEmailAddressError from mailman.interfaces.member import MemberRole, MissingPreferredAddressError from mailman.interfaces.subscriptions import ( MissingUserError, ISubscriptionService) from mailman.testing.layers import ConfigLayer +from zope.component import getUtility diff --git a/src/mailman/app/tests/test_templates.py b/src/mailman/app/tests/test_templates.py index c20c98280..68bab9f49 100644 --- a/src/mailman/app/tests/test_templates.py +++ b/src/mailman/app/tests/test_templates.py @@ -17,9 +17,6 @@ """Test the template downloader API.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestTemplateLoader', ] diff --git a/src/mailman/archiving/mailarchive.py b/src/mailman/archiving/mailarchive.py index e6b43b530..a712e4052 100644 --- a/src/mailman/archiving/mailarchive.py +++ b/src/mailman/archiving/mailarchive.py @@ -17,9 +17,6 @@ """The Mail-Archive.com archiver.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'MailArchive', ] diff --git a/src/mailman/archiving/mhonarc.py b/src/mailman/archiving/mhonarc.py index b50ceaf51..31853183f 100644 --- a/src/mailman/archiving/mhonarc.py +++ b/src/mailman/archiving/mhonarc.py @@ -17,9 +17,6 @@ """MHonArc archiver.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'MHonArc', ] diff --git a/src/mailman/archiving/prototype.py b/src/mailman/archiving/prototype.py index 3085f5700..a27a2e57f 100644 --- a/src/mailman/archiving/prototype.py +++ b/src/mailman/archiving/prototype.py @@ -17,9 +17,6 @@ """Prototypical permalinking archiver.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Prototype', ] diff --git a/src/mailman/archiving/tests/test_prototype.py b/src/mailman/archiving/tests/test_prototype.py index 6bc4f25b4..4cd33d431 100644 --- a/src/mailman/archiving/tests/test_prototype.py +++ b/src/mailman/archiving/tests/test_prototype.py @@ -17,9 +17,6 @@ """Test the prototype archiver.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestPrototypeArchiver', ] @@ -33,7 +30,6 @@ import threading from email import message_from_file from flufl.lock import Lock - from mailman.app.lifecycle import create_list from mailman.archiving.prototype import Prototype from mailman.config import config diff --git a/src/mailman/bin/mailman.py b/src/mailman/bin/mailman.py index f9352fac6..ad8de144f 100644 --- a/src/mailman/bin/mailman.py +++ b/src/mailman/bin/mailman.py @@ -17,9 +17,6 @@ """The 'mailman' command dispatcher.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'main', ] @@ -29,13 +26,12 @@ import os import argparse from functools import cmp_to_key -from zope.interface.verify import verifyObject - from mailman.core.i18n import _ from mailman.core.initialize import initialize from mailman.interfaces.command import ICLISubCommand from mailman.utilities.modules import find_components from mailman.version import MAILMAN_VERSION_FULL +from zope.interface.verify import verifyObject diff --git a/src/mailman/bin/master.py b/src/mailman/bin/master.py index fa0ec0f16..6dc2a451f 100644 --- a/src/mailman/bin/master.py +++ b/src/mailman/bin/master.py @@ -17,9 +17,6 @@ """Master subprocess watcher.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Loop', 'main', @@ -37,7 +34,6 @@ from datetime import timedelta from enum import Enum from flufl.lock import Lock, NotLockedError, TimeOutError from lazr.config import as_boolean - from mailman.config import config from mailman.core.i18n import _ from mailman.core.logging import reopen diff --git a/src/mailman/bin/onebounce.py b/src/mailman/bin/onebounce.py index 1c23fc42a..b504b4c00 100644 --- a/src/mailman/bin/onebounce.py +++ b/src/mailman/bin/onebounce.py @@ -18,9 +18,6 @@ """Test bounce detection on message files.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'main', ] diff --git a/src/mailman/bin/runner.py b/src/mailman/bin/runner.py index 7648ed961..88e02254f 100644 --- a/src/mailman/bin/runner.py +++ b/src/mailman/bin/runner.py @@ -17,9 +17,6 @@ """The runner process.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'main', ] diff --git a/src/mailman/bin/tests/test_master.py b/src/mailman/bin/tests/test_master.py index d6e301e58..c65777e5e 100644 --- a/src/mailman/bin/tests/test_master.py +++ b/src/mailman/bin/tests/test_master.py @@ -17,9 +17,6 @@ """Test master watcher utilities.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestMasterLock', ] diff --git a/src/mailman/chains/accept.py b/src/mailman/chains/accept.py index f5dd5a73d..89995b5a1 100644 --- a/src/mailman/chains/accept.py +++ b/src/mailman/chains/accept.py @@ -17,9 +17,6 @@ """The terminal 'accept' chain.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'AcceptChain', ] @@ -27,12 +24,11 @@ __all__ = [ import logging -from zope.event import notify - from mailman.chains.base import TerminalChainBase from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.chain import AcceptEvent +from zope.event import notify log = logging.getLogger('mailman.vette') diff --git a/src/mailman/chains/base.py b/src/mailman/chains/base.py index 37d8e76f3..7db31de73 100644 --- a/src/mailman/chains/base.py +++ b/src/mailman/chains/base.py @@ -17,9 +17,6 @@ """Base class for terminal chains.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Chain', 'Link', @@ -27,11 +24,10 @@ __all__ = [ ] -from zope.interface import implementer - from mailman.config import config from mailman.interfaces.chain import ( IChain, IChainIterator, IChainLink, IMutableChain, LinkAction) +from zope.interface import implementer diff --git a/src/mailman/chains/builtin.py b/src/mailman/chains/builtin.py index bce9349a1..b26b31550 100644 --- a/src/mailman/chains/builtin.py +++ b/src/mailman/chains/builtin.py @@ -17,9 +17,6 @@ """The default built-in starting chain.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'BuiltInChain', ] @@ -27,12 +24,11 @@ __all__ = [ import logging -from zope.interface import implementer - from mailman.chains.base import Link from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.chain import IChain, LinkAction +from zope.interface import implementer log = logging.getLogger('mailman.vette') diff --git a/src/mailman/chains/discard.py b/src/mailman/chains/discard.py index 001b243ac..9eb419201 100644 --- a/src/mailman/chains/discard.py +++ b/src/mailman/chains/discard.py @@ -17,20 +17,17 @@ """The terminal 'discard' chain.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'DiscardChain', ] import logging -from zope.event import notify from mailman.chains.base import TerminalChainBase from mailman.core.i18n import _ from mailman.interfaces.chain import DiscardEvent +from zope.event import notify log = logging.getLogger('mailman.vette') diff --git a/src/mailman/chains/headers.py b/src/mailman/chains/headers.py index b37079f7f..5738336e8 100644 --- a/src/mailman/chains/headers.py +++ b/src/mailman/chains/headers.py @@ -17,9 +17,6 @@ """The header-matching chain.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'HeaderMatchChain', ] @@ -28,13 +25,12 @@ __all__ = [ import re import logging -from zope.interface import implementer - from mailman.chains.base import Chain, Link from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.chain import LinkAction from mailman.interfaces.rules import IRule +from zope.interface import implementer log = logging.getLogger('mailman.error') diff --git a/src/mailman/chains/hold.py b/src/mailman/chains/hold.py index 5bb482cd5..7a516dc0d 100644 --- a/src/mailman/chains/hold.py +++ b/src/mailman/chains/hold.py @@ -17,9 +17,6 @@ """The terminal 'hold' chain.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'HoldChain', ] @@ -30,10 +27,6 @@ import logging from email.mime.message import MIMEMessage from email.mime.text import MIMEText from email.utils import formatdate, make_msgid -from zope.component import getUtility -from zope.event import notify -from zope.interface import implementer - from mailman.app.moderator import hold_message from mailman.app.replybot import can_acknowledge from mailman.chains.base import TerminalChainBase @@ -47,6 +40,9 @@ from mailman.interfaces.pending import IPendable, IPendings from mailman.interfaces.usermanager import IUserManager from mailman.utilities.i18n import make from mailman.utilities.string import oneline, wrap +from zope.component import getUtility +from zope.event import notify +from zope.interface import implementer log = logging.getLogger('mailman.vette') diff --git a/src/mailman/chains/moderation.py b/src/mailman/chains/moderation.py index 9b34f6389..944a66089 100644 --- a/src/mailman/chains/moderation.py +++ b/src/mailman/chains/moderation.py @@ -34,21 +34,17 @@ made as to the disposition of the message. `defer` is the default for members, while `hold` is the default for nonmembers. """ -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'ModerationChain', ] -from zope.interface import implementer - from mailman.chains.base import Link from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.action import Action from mailman.interfaces.chain import IChain, LinkAction +from zope.interface import implementer diff --git a/src/mailman/chains/owner.py b/src/mailman/chains/owner.py index 8e9aac154..9b0670ac9 100644 --- a/src/mailman/chains/owner.py +++ b/src/mailman/chains/owner.py @@ -17,9 +17,6 @@ """The standard -owner posting chain.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'BuiltInOwnerChain', ] @@ -27,12 +24,11 @@ __all__ = [ import logging -from zope.event import notify - from mailman.chains.base import TerminalChainBase from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.chain import AcceptOwnerEvent +from zope.event import notify log = logging.getLogger('mailman.vette') diff --git a/src/mailman/chains/reject.py b/src/mailman/chains/reject.py index e24cedb85..2f358afe1 100644 --- a/src/mailman/chains/reject.py +++ b/src/mailman/chains/reject.py @@ -17,9 +17,6 @@ """The terminal 'reject' chain.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'RejectChain', ] @@ -27,12 +24,11 @@ __all__ = [ import logging -from zope.event import notify - from mailman.app.bounces import bounce_message from mailman.chains.base import TerminalChainBase from mailman.core.i18n import _ from mailman.interfaces.chain import RejectEvent +from zope.event import notify log = logging.getLogger('mailman.vette') diff --git a/src/mailman/chains/tests/test_base.py b/src/mailman/chains/tests/test_base.py index 8d0d70449..784309395 100644 --- a/src/mailman/chains/tests/test_base.py +++ b/src/mailman/chains/tests/test_base.py @@ -17,9 +17,6 @@ """Test the base chain stuff.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestMiscellaneous', ] diff --git a/src/mailman/chains/tests/test_headers.py b/src/mailman/chains/tests/test_headers.py index adfc0ecb6..55bed3af0 100644 --- a/src/mailman/chains/tests/test_headers.py +++ b/src/mailman/chains/tests/test_headers.py @@ -17,9 +17,6 @@ """Test the header chain.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestHeaderChain', ] diff --git a/src/mailman/chains/tests/test_hold.py b/src/mailman/chains/tests/test_hold.py index a1fddd558..2a49b0ff0 100644 --- a/src/mailman/chains/tests/test_hold.py +++ b/src/mailman/chains/tests/test_hold.py @@ -17,9 +17,6 @@ """Additional tests for the hold chain.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestAutorespond', ] @@ -27,14 +24,13 @@ __all__ = [ import unittest -from zope.component import getUtility - from mailman.app.lifecycle import create_list from mailman.chains.hold import autorespond_to_sender from mailman.interfaces.autorespond import IAutoResponseSet, Response from mailman.interfaces.usermanager import IUserManager from mailman.testing.helpers import configuration, get_queue_messages from mailman.testing.layers import ConfigLayer +from zope.component import getUtility diff --git a/src/mailman/chains/tests/test_owner.py b/src/mailman/chains/tests/test_owner.py index 96b858317..0766ba630 100644 --- a/src/mailman/chains/tests/test_owner.py +++ b/src/mailman/chains/tests/test_owner.py @@ -17,9 +17,6 @@ """Test the owner chain.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestOwnerChain', ] @@ -32,8 +29,7 @@ from mailman.chains.owner import BuiltInOwnerChain from mailman.core.chains import process from mailman.interfaces.chain import AcceptOwnerEvent from mailman.testing.helpers import ( - event_subscribers, - get_queue_messages, + event_subscribers, get_queue_messages, specialized_message_from_string as mfs) from mailman.testing.layers import ConfigLayer diff --git a/src/mailman/commands/cli_aliases.py b/src/mailman/commands/cli_aliases.py index 7c85ad9e0..2e1dc88ec 100644 --- a/src/mailman/commands/cli_aliases.py +++ b/src/mailman/commands/cli_aliases.py @@ -17,20 +17,16 @@ """Generate Mailman alias files for your MTA.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Aliases', ] -from zope.interface import implementer - from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.command import ICLISubCommand from mailman.utilities.modules import call_name +from zope.interface import implementer diff --git a/src/mailman/commands/cli_conf.py b/src/mailman/commands/cli_conf.py index 7fe9fce7d..d0b7f7d2f 100644 --- a/src/mailman/commands/cli_conf.py +++ b/src/mailman/commands/cli_conf.py @@ -17,9 +17,6 @@ """Print the mailman configuration.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Conf' ] @@ -29,11 +26,10 @@ import sys from contextlib import closing from lazr.config._config import Section -from zope.interface import implementer - from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.command import ICLISubCommand +from zope.interface import implementer diff --git a/src/mailman/commands/cli_control.py b/src/mailman/commands/cli_control.py index b0afc1337..2febe08e5 100644 --- a/src/mailman/commands/cli_control.py +++ b/src/mailman/commands/cli_control.py @@ -15,11 +15,8 @@ # You should have received a copy of the GNU General Public License along with # GNU Mailman. If not, see <http://www.gnu.org/licenses/>. -"""Module stuff.""" +"""Start/stop/reopen/restart commands.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Reopen', 'Restart', @@ -34,12 +31,11 @@ import errno import signal import logging -from zope.interface import implementer - from mailman.bin.master import WatcherState, master_state from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.command import ICLISubCommand +from zope.interface import implementer qlog = logging.getLogger('mailman.runner') diff --git a/src/mailman/commands/cli_help.py b/src/mailman/commands/cli_help.py index ce39eeda5..721c8936e 100644 --- a/src/mailman/commands/cli_help.py +++ b/src/mailman/commands/cli_help.py @@ -17,17 +17,13 @@ """The 'help' subcommand.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Help', ] -from zope.interface import implementer - from mailman.interfaces.command import ICLISubCommand +from zope.interface import implementer diff --git a/src/mailman/commands/cli_import.py b/src/mailman/commands/cli_import.py index 7b18b888c..38b6fcef4 100644 --- a/src/mailman/commands/cli_import.py +++ b/src/mailman/commands/cli_import.py @@ -17,9 +17,6 @@ """Importing list data into Mailman 3.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Import21', ] diff --git a/src/mailman/commands/cli_info.py b/src/mailman/commands/cli_info.py index 4304e0ddb..6dd938127 100644 --- a/src/mailman/commands/cli_info.py +++ b/src/mailman/commands/cli_info.py @@ -17,9 +17,6 @@ """Information about this Mailman instance.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Info' ] @@ -28,13 +25,12 @@ __all__ = [ import sys from lazr.config import as_boolean -from zope.interface import implementer - from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.command import ICLISubCommand from mailman.rest.helpers import path_to from mailman.version import MAILMAN_VERSION_FULL +from zope.interface import implementer diff --git a/src/mailman/commands/cli_inject.py b/src/mailman/commands/cli_inject.py index 9339dc074..ad4b53291 100644 --- a/src/mailman/commands/cli_inject.py +++ b/src/mailman/commands/cli_inject.py @@ -17,9 +17,6 @@ """bin/mailman inject""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Inject', ] diff --git a/src/mailman/commands/cli_lists.py b/src/mailman/commands/cli_lists.py index 9d857992c..fac1dcd1d 100644 --- a/src/mailman/commands/cli_lists.py +++ b/src/mailman/commands/cli_lists.py @@ -17,9 +17,6 @@ """The 'lists' subcommand.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Create', 'Lists', @@ -27,9 +24,6 @@ __all__ = [ ] -from zope.component import getUtility -from zope.interface import implementer - from mailman.app.lifecycle import create_list, remove_list from mailman.core.constants import system_preferences from mailman.core.i18n import _ @@ -43,6 +37,8 @@ from mailman.interfaces.domain import ( from mailman.interfaces.languages import ILanguageManager from mailman.interfaces.listmanager import IListManager, ListAlreadyExistsError from mailman.utilities.i18n import make +from zope.component import getUtility +from zope.interface import implementer COMMASPACE = ', ' diff --git a/src/mailman/commands/cli_members.py b/src/mailman/commands/cli_members.py index 756771877..21d78ec54 100644 --- a/src/mailman/commands/cli_members.py +++ b/src/mailman/commands/cli_members.py @@ -17,9 +17,6 @@ """The 'members' subcommand.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Members', ] @@ -29,11 +26,6 @@ import sys import codecs from email.utils import formataddr, parseaddr -from operator import attrgetter -from passlib.utils import generate_password as generate -from zope.component import getUtility -from zope.interface import implementer - from mailman.app.membership import add_member from mailman.config import config from mailman.core.i18n import _ @@ -42,6 +34,10 @@ from mailman.interfaces.command import ICLISubCommand from mailman.interfaces.listmanager import IListManager from mailman.interfaces.member import ( AlreadySubscribedError, DeliveryMode, DeliveryStatus) +from operator import attrgetter +from passlib.utils import generate_password as generate +from zope.component import getUtility +from zope.interface import implementer diff --git a/src/mailman/commands/cli_qfile.py b/src/mailman/commands/cli_qfile.py index 499476772..e502deac8 100644 --- a/src/mailman/commands/cli_qfile.py +++ b/src/mailman/commands/cli_qfile.py @@ -17,9 +17,6 @@ """Getting information out of a qfile.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'QFile', ] @@ -35,6 +32,7 @@ from six.moves import cPickle from zope.interface import implementer +# This is deliberately called 'm' for use with --interactive. m = [] diff --git a/src/mailman/commands/cli_status.py b/src/mailman/commands/cli_status.py index 207b44e04..2bef9d73c 100644 --- a/src/mailman/commands/cli_status.py +++ b/src/mailman/commands/cli_status.py @@ -17,9 +17,6 @@ """bin/mailman status.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Status', ] @@ -27,11 +24,10 @@ __all__ = [ import socket -from zope.interface import implementer - from mailman.bin.master import WatcherState, master_state from mailman.core.i18n import _ from mailman.interfaces.command import ICLISubCommand +from zope.interface import implementer diff --git a/src/mailman/commands/cli_unshunt.py b/src/mailman/commands/cli_unshunt.py index 77196565b..7cfa9e4ed 100644 --- a/src/mailman/commands/cli_unshunt.py +++ b/src/mailman/commands/cli_unshunt.py @@ -17,9 +17,6 @@ """The 'unshunt' command.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Unshunt', ] @@ -27,11 +24,10 @@ __all__ = [ import sys -from zope.interface import implementer - from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.command import ICLISubCommand +from zope.interface import implementer @@ -62,7 +58,7 @@ class Unshunt: which_queue = msgdata.get('whichq', 'in') if not args.discard: config.switchboards[which_queue].enqueue(msg, msgdata) - except Exception as error: + except Exception: print(_('Cannot unshunt message $filebase, skipping:\n$error'), file=sys.stderr) else: diff --git a/src/mailman/commands/cli_version.py b/src/mailman/commands/cli_version.py index 86ce9ab68..bc0f34a34 100644 --- a/src/mailman/commands/cli_version.py +++ b/src/mailman/commands/cli_version.py @@ -17,18 +17,14 @@ """The Mailman version.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Version', ] -from zope.interface import implementer - from mailman.interfaces.command import ICLISubCommand from mailman.version import MAILMAN_VERSION_FULL +from zope.interface import implementer diff --git a/src/mailman/commands/cli_withlist.py b/src/mailman/commands/cli_withlist.py index fc2363816..7cf8c0451 100644 --- a/src/mailman/commands/cli_withlist.py +++ b/src/mailman/commands/cli_withlist.py @@ -17,9 +17,6 @@ """bin/mailman withlist""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Shell', 'Withlist', @@ -30,15 +27,15 @@ import re import sys from lazr.config import as_boolean -from zope.component import getUtility -from zope.interface import implementer - from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.command import ICLISubCommand from mailman.interfaces.listmanager import IListManager from mailman.utilities.interact import DEFAULT_BANNER, interact from mailman.utilities.modules import call_name +from zope.component import getUtility +from zope.interface import implementer + # Global holding onto the open mailing list. m = None diff --git a/src/mailman/commands/eml_confirm.py b/src/mailman/commands/eml_confirm.py index 0239e0f25..2cef7cbad 100644 --- a/src/mailman/commands/eml_confirm.py +++ b/src/mailman/commands/eml_confirm.py @@ -15,22 +15,18 @@ # You should have received a copy of the GNU General Public License along with # GNU Mailman. If not, see <http://www.gnu.org/licenses/>. -"""Module stuff.""" +"""The 'confirm' email command.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Confirm', ] -from zope.component import getUtility -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.interfaces.command import ContinueProcessing, IEmailCommand from mailman.interfaces.registrar import IRegistrar +from zope.component import getUtility +from zope.interface import implementer diff --git a/src/mailman/commands/eml_echo.py b/src/mailman/commands/eml_echo.py index eb476dc7d..2bd55edbc 100644 --- a/src/mailman/commands/eml_echo.py +++ b/src/mailman/commands/eml_echo.py @@ -17,18 +17,14 @@ """The email command 'echo'.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Echo', ] -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.interfaces.command import ContinueProcessing, IEmailCommand +from zope.interface import implementer SPACE = ' ' diff --git a/src/mailman/commands/eml_end.py b/src/mailman/commands/eml_end.py index 447d4066b..d25c19fcb 100644 --- a/src/mailman/commands/eml_end.py +++ b/src/mailman/commands/eml_end.py @@ -17,19 +17,15 @@ """The email commands 'end' and 'stop'.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'End', 'Stop', ] -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.interfaces.command import ContinueProcessing, IEmailCommand +from zope.interface import implementer diff --git a/src/mailman/commands/eml_help.py b/src/mailman/commands/eml_help.py index 139d484fb..8b93b272a 100644 --- a/src/mailman/commands/eml_help.py +++ b/src/mailman/commands/eml_help.py @@ -17,20 +17,16 @@ """The email command 'help'.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Help', ] -from zope.interface import implementer - from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.command import ContinueProcessing, IEmailCommand from mailman.utilities.string import wrap +from zope.interface import implementer SPACE = ' ' diff --git a/src/mailman/commands/eml_membership.py b/src/mailman/commands/eml_membership.py index c56b14041..e6a6825ed 100644 --- a/src/mailman/commands/eml_membership.py +++ b/src/mailman/commands/eml_membership.py @@ -17,9 +17,6 @@ """The email commands 'join' and 'subscribe'.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Join', 'Subscribe', @@ -29,15 +26,14 @@ __all__ = [ from email.utils import formataddr, parseaddr -from zope.component import getUtility -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.interfaces.command import ContinueProcessing, IEmailCommand from mailman.interfaces.member import DeliveryMode, MemberRole from mailman.interfaces.registrar import IRegistrar from mailman.interfaces.subscriptions import ISubscriptionService from mailman.interfaces.usermanager import IUserManager +from zope.component import getUtility +from zope.interface import implementer @@ -182,6 +178,7 @@ You may be asked to confirm your request.""") return ContinueProcessing.yes + class Unsubscribe(Leave): """The email 'unsubscribe' command (an alias for 'leave').""" diff --git a/src/mailman/commands/tests/test_conf.py b/src/mailman/commands/tests/test_conf.py index cc0f61ba2..07036df3a 100644 --- a/src/mailman/commands/tests/test_conf.py +++ b/src/mailman/commands/tests/test_conf.py @@ -17,9 +17,6 @@ """Test the conf subcommand.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestConf', ] diff --git a/src/mailman/commands/tests/test_confirm.py b/src/mailman/commands/tests/test_confirm.py index 19a9068bc..f067a2a0a 100644 --- a/src/mailman/commands/tests/test_confirm.py +++ b/src/mailman/commands/tests/test_confirm.py @@ -17,9 +17,6 @@ """Test the `confirm` command.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestConfirm', ] @@ -27,8 +24,6 @@ __all__ = [ import unittest -from zope.component import getUtility - from mailman.app.lifecycle import create_list from mailman.commands.eml_confirm import Confirm from mailman.email.message import Message @@ -37,6 +32,7 @@ from mailman.interfaces.registrar import IRegistrar from mailman.runners.command import Results from mailman.testing.helpers import get_queue_messages, reset_the_world from mailman.testing.layers import ConfigLayer +from zope.component import getUtility diff --git a/src/mailman/commands/tests/test_control.py b/src/mailman/commands/tests/test_control.py index 0847d86b1..299f0da25 100644 --- a/src/mailman/commands/tests/test_control.py +++ b/src/mailman/commands/tests/test_control.py @@ -17,9 +17,6 @@ """Test some additional corner cases for starting/stopping.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestStart', 'find_master', @@ -37,11 +34,11 @@ import socket import unittest from datetime import timedelta, datetime - from mailman.commands.cli_control import Start, kill_watcher from mailman.config import config from mailman.testing.layers import ConfigLayer + SEP = '|' diff --git a/src/mailman/commands/tests/test_create.py b/src/mailman/commands/tests/test_create.py index c2dffb929..47808c997 100644 --- a/src/mailman/commands/tests/test_create.py +++ b/src/mailman/commands/tests/test_create.py @@ -17,9 +17,6 @@ """Test `bin/mailman create`.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestCreate', ] diff --git a/src/mailman/commands/tests/test_help.py b/src/mailman/commands/tests/test_help.py index ea8105d2a..b2de0297d 100644 --- a/src/mailman/commands/tests/test_help.py +++ b/src/mailman/commands/tests/test_help.py @@ -17,10 +17,8 @@ """Additional tests for the `help` email command.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ + 'TestHelp', ] diff --git a/src/mailman/config/__init__.py b/src/mailman/config/__init__.py index fb240ad76..4b9b1d07a 100644 --- a/src/mailman/config/__init__.py +++ b/src/mailman/config/__init__.py @@ -17,9 +17,6 @@ """Mailman configuration package.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'config', ] diff --git a/src/mailman/config/config.py b/src/mailman/config/config.py index 7a9befa83..b2f400fc3 100644 --- a/src/mailman/config/config.py +++ b/src/mailman/config/config.py @@ -17,9 +17,6 @@ """Configuration file loading and management.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Configuration', 'external_configuration', @@ -29,9 +26,16 @@ __all__ = [ import os import sys +import mailman.templates from flufl.lock import Lock from lazr.config import ConfigSchema, as_boolean +from mailman import version +from mailman.interfaces.configuration import ( + ConfigurationUpdatedEvent, IConfiguration, MissingConfigurationFileError) +from mailman.interfaces.languages import ILanguageManager +from mailman.utilities.filesystem import makedirs +from mailman.utilities.modules import call_name, expand_path from pkg_resources import resource_filename, resource_string as resource_bytes from six.moves.configparser import ConfigParser, RawConfigParser from string import Template @@ -40,15 +44,6 @@ from zope.component import getUtility from zope.event import notify from zope.interface import implementer -import mailman.templates - -from mailman import version -from mailman.interfaces.configuration import ( - ConfigurationUpdatedEvent, IConfiguration, MissingConfigurationFileError) -from mailman.interfaces.languages import ILanguageManager -from mailman.utilities.filesystem import makedirs -from mailman.utilities.modules import call_name, expand_path - SPACE = ' ' diff --git a/src/mailman/config/tests/test_archivers.py b/src/mailman/config/tests/test_archivers.py index 08e466878..b74f680d9 100644 --- a/src/mailman/config/tests/test_archivers.py +++ b/src/mailman/config/tests/test_archivers.py @@ -17,9 +17,6 @@ """Site-wide archiver configuration tests.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestArchivers', ] diff --git a/src/mailman/config/tests/test_configuration.py b/src/mailman/config/tests/test_configuration.py index f6bee4209..b4b2145c0 100644 --- a/src/mailman/config/tests/test_configuration.py +++ b/src/mailman/config/tests/test_configuration.py @@ -17,9 +17,6 @@ """Test the system-wide global configuration.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestConfiguration', 'TestConfigurationErrors', diff --git a/src/mailman/core/chains.py b/src/mailman/core/chains.py index df4c199d5..610c396b0 100644 --- a/src/mailman/core/chains.py +++ b/src/mailman/core/chains.py @@ -17,21 +17,17 @@ """Application support for chain processing.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'initialize', 'process', ] -from zope.interface.verify import verifyObject - from mailman.chains.base import Chain, TerminalChainBase from mailman.config import config from mailman.interfaces.chain import LinkAction, IChain from mailman.utilities.modules import find_components +from zope.interface.verify import verifyObject diff --git a/src/mailman/core/constants.py b/src/mailman/core/constants.py index f8e354199..63fa0d0d8 100644 --- a/src/mailman/core/constants.py +++ b/src/mailman/core/constants.py @@ -17,21 +17,17 @@ """Various constants and enumerations.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'system_preferences', ] -from zope.component import getUtility -from zope.interface import implementer - from mailman.config import config from mailman.interfaces.languages import ILanguageManager from mailman.interfaces.member import DeliveryMode, DeliveryStatus from mailman.interfaces.preferences import IPreferences +from zope.component import getUtility +from zope.interface import implementer diff --git a/src/mailman/core/errors.py b/src/mailman/core/errors.py index b8f5a1f64..95b1ae821 100644 --- a/src/mailman/core/errors.py +++ b/src/mailman/core/errors.py @@ -26,9 +26,6 @@ interfaces. """ -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'AlreadyReceivingDigests', 'AlreadyReceivingRegularDeliveries', diff --git a/src/mailman/core/i18n.py b/src/mailman/core/i18n.py index b078a985f..ae9dcc8b8 100644 --- a/src/mailman/core/i18n.py +++ b/src/mailman/core/i18n.py @@ -17,9 +17,6 @@ """Internationalization.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ '_', 'ctime', @@ -28,11 +25,12 @@ __all__ = [ import time -from flufl.i18n import PackageStrategy, registry - import mailman.messages + +from flufl.i18n import PackageStrategy, registry from mailman.interfaces.configuration import ConfigurationUpdatedEvent + _ = None diff --git a/src/mailman/core/initialize.py b/src/mailman/core/initialize.py index 6c7196990..6c93a8162 100644 --- a/src/mailman/core/initialize.py +++ b/src/mailman/core/initialize.py @@ -24,9 +24,6 @@ line argument parsing, since some of the initialization behavior is controlled by the command line arguments. """ -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'initialize', 'initialize_1', @@ -38,16 +35,15 @@ __all__ = [ import os import sys - -from pkg_resources import resource_string as resource_bytes -from zope.component import getUtility -from zope.configuration import xmlconfig - import mailman.config.config import mailman.core.logging from mailman.interfaces.database import IDatabaseFactory from mailman.utilities.modules import call_name +from pkg_resources import resource_string as resource_bytes +from zope.component import getUtility +from zope.configuration import xmlconfig + # The test infrastructure uses this to prevent the search and loading of any # existing configuration file. Otherwise the existence of say a diff --git a/src/mailman/core/logging.py b/src/mailman/core/logging.py index c5ce1a538..7529cc1d7 100644 --- a/src/mailman/core/logging.py +++ b/src/mailman/core/logging.py @@ -17,9 +17,6 @@ """Logging initialization, using Python's standard logging package.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'initialize', 'reopen', diff --git a/src/mailman/core/pipelines.py b/src/mailman/core/pipelines.py index 5fdba8358..b7773736c 100644 --- a/src/mailman/core/pipelines.py +++ b/src/mailman/core/pipelines.py @@ -17,9 +17,6 @@ """Built-in pipelines.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'BasePipeline', 'OwnerPipeline', @@ -32,9 +29,6 @@ __all__ = [ import logging -from zope.interface import implementer -from zope.interface.verify import verifyObject - from mailman.app.bounces import bounce_message from mailman.config import config from mailman.core import errors @@ -42,6 +36,8 @@ from mailman.core.i18n import _ from mailman.interfaces.handler import IHandler from mailman.interfaces.pipeline import IPipeline from mailman.utilities.modules import find_components +from zope.interface import implementer +from zope.interface.verify import verifyObject dlog = logging.getLogger('mailman.debug') diff --git a/src/mailman/core/rules.py b/src/mailman/core/rules.py index 1a2b9f56d..0110c07f7 100644 --- a/src/mailman/core/rules.py +++ b/src/mailman/core/rules.py @@ -17,19 +17,15 @@ """Various rule helpers""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'initialize', ] -from zope.interface.verify import verifyObject - from mailman.config import config from mailman.interfaces.rules import IRule from mailman.utilities.modules import find_components +from zope.interface.verify import verifyObject diff --git a/src/mailman/core/runner.py b/src/mailman/core/runner.py index 83f1b469c..1fabe0a8f 100644 --- a/src/mailman/core/runner.py +++ b/src/mailman/core/runner.py @@ -17,9 +17,6 @@ """The process runner base class.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Runner', ] diff --git a/src/mailman/core/switchboard.py b/src/mailman/core/switchboard.py index d4884c4c9..f54bc243a 100644 --- a/src/mailman/core/switchboard.py +++ b/src/mailman/core/switchboard.py @@ -24,9 +24,6 @@ written. First, the message is written to the pickle, then the metadata dictionary is written. """ -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Switchboard', 'handle_ConfigurationUpdatedEvent', diff --git a/src/mailman/core/system.py b/src/mailman/core/system.py index 495cc37ee..0c01d94aa 100644 --- a/src/mailman/core/system.py +++ b/src/mailman/core/system.py @@ -17,9 +17,6 @@ """System information.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'system', ] @@ -27,10 +24,9 @@ __all__ = [ import sys -from zope.interface import implementer - from mailman import version from mailman.interfaces.system import ISystem +from zope.interface import implementer diff --git a/src/mailman/core/tests/test_pipelines.py b/src/mailman/core/tests/test_pipelines.py index 67e6af36e..91be1f79f 100644 --- a/src/mailman/core/tests/test_pipelines.py +++ b/src/mailman/core/tests/test_pipelines.py @@ -17,9 +17,6 @@ """Test the core modification pipelines.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestOwnerPipeline', 'TestPostingPipeline', @@ -28,9 +25,6 @@ __all__ = [ import unittest -from zope.component import getUtility -from zope.interface import implementer - from mailman.app.lifecycle import create_list from mailman.config import config from mailman.core.errors import DiscardMessage, RejectMessage @@ -40,11 +34,11 @@ from mailman.interfaces.member import MemberRole from mailman.interfaces.pipeline import IPipeline from mailman.interfaces.usermanager import IUserManager from mailman.testing.helpers import ( - LogFileMark, - get_queue_messages, - reset_the_world, + LogFileMark, get_queue_messages, reset_the_world, specialized_message_from_string as mfs) from mailman.testing.layers import ConfigLayer +from zope.component import getUtility +from zope.interface import implementer @@ -175,5 +169,5 @@ To: test-owner@example.com pipeline_name='default-owner-pipeline') messages = get_queue_messages('out', sort_on='to') self.assertEqual(len(messages), 1) - self.assertEqual(messages[0].msgdata['recipients'], + self.assertEqual(messages[0].msgdata['recipients'], set(('anne@example.com', 'bart@example.com'))) diff --git a/src/mailman/core/tests/test_runner.py b/src/mailman/core/tests/test_runner.py index 3ebddd7cc..3d2e76096 100644 --- a/src/mailman/core/tests/test_runner.py +++ b/src/mailman/core/tests/test_runner.py @@ -17,9 +17,6 @@ """Test some Runner base class behavior.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestRunner', ] diff --git a/src/mailman/database/alembic/__init__.py b/src/mailman/database/alembic/__init__.py index ffd3af6df..4dbbc31d9 100644 --- a/src/mailman/database/alembic/__init__.py +++ b/src/mailman/database/alembic/__init__.py @@ -17,9 +17,6 @@ """Alembic configuration initization.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'alembic_cfg', ] diff --git a/src/mailman/database/alembic/env.py b/src/mailman/database/alembic/env.py index 125868566..261782d29 100644 --- a/src/mailman/database/alembic/env.py +++ b/src/mailman/database/alembic/env.py @@ -17,9 +17,6 @@ """Alembic migration environment.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'run_migrations_offline', 'run_migrations_online', @@ -28,11 +25,10 @@ __all__ = [ from alembic import context from contextlib import closing -from sqlalchemy import create_engine - from mailman.config import config from mailman.database.model import Model from mailman.utilities.string import expand +from sqlalchemy import create_engine diff --git a/src/mailman/database/alembic/versions/51b7f92bd06c_initial.py b/src/mailman/database/alembic/versions/51b7f92bd06c_initial.py index 3feb24fff..5e3527abe 100644 --- a/src/mailman/database/alembic/versions/51b7f92bd06c_initial.py +++ b/src/mailman/database/alembic/versions/51b7f92bd06c_initial.py @@ -29,9 +29,6 @@ Revises: None Create Date: 2014-10-10 09:53:35.624472 """ -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'downgrade', 'upgrade', diff --git a/src/mailman/database/base.py b/src/mailman/database/base.py index 55edf6005..09fd47b80 100644 --- a/src/mailman/database/base.py +++ b/src/mailman/database/base.py @@ -15,9 +15,8 @@ # You should have received a copy of the GNU General Public License along with # GNU Mailman. If not, see <http://www.gnu.org/licenses/>. -from __future__ import absolute_import, print_function, unicode_literals +"""Common database support.""" -__metaclass__ = type __all__ = [ 'SABaseDatabase', ] @@ -25,17 +24,15 @@ __all__ = [ import logging -from sqlalchemy import create_engine -from sqlalchemy.orm import sessionmaker -from zope.interface import implementer - from mailman.config import config from mailman.interfaces.database import IDatabase from mailman.utilities.string import expand +from sqlalchemy import create_engine +from sqlalchemy.orm import sessionmaker +from zope.interface import implementer log = logging.getLogger('mailman.database') -NL = '\n' diff --git a/src/mailman/database/factory.py b/src/mailman/database/factory.py index 64174449d..9fffd4545 100644 --- a/src/mailman/database/factory.py +++ b/src/mailman/database/factory.py @@ -17,9 +17,6 @@ """Database factory.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'DatabaseFactory', 'DatabaseTestingFactory', @@ -33,16 +30,15 @@ import alembic.command from alembic.migration import MigrationContext from alembic.script import ScriptDirectory from flufl.lock import Lock -from sqlalchemy import MetaData -from zope.interface import implementer -from zope.interface.verify import verifyObject - from mailman.config import config from mailman.database.alembic import alembic_cfg from mailman.database.model import Model from mailman.interfaces.database import ( DatabaseError, IDatabase, IDatabaseFactory) from mailman.utilities.modules import call_name +from sqlalchemy import MetaData +from zope.interface import implementer +from zope.interface.verify import verifyObject LAST_STORM_SCHEMA_VERSION = '20130406000000' diff --git a/src/mailman/database/model.py b/src/mailman/database/model.py index a6056bf63..8dad6f0cf 100644 --- a/src/mailman/database/model.py +++ b/src/mailman/database/model.py @@ -17,9 +17,6 @@ """Base class for all database classes.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Model', ] diff --git a/src/mailman/database/postgresql.py b/src/mailman/database/postgresql.py index 717b69dd1..4a6f02da6 100644 --- a/src/mailman/database/postgresql.py +++ b/src/mailman/database/postgresql.py @@ -17,9 +17,6 @@ """PostgreSQL database support.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'PostgreSQLDatabase', ] diff --git a/src/mailman/database/sqlite.py b/src/mailman/database/sqlite.py index 8540846e1..95dba460e 100644 --- a/src/mailman/database/sqlite.py +++ b/src/mailman/database/sqlite.py @@ -17,9 +17,6 @@ """SQLite database support.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'SQLiteDatabase', ] diff --git a/src/mailman/database/tests/test_factory.py b/src/mailman/database/tests/test_factory.py index 29cca41ba..71f810a56 100644 --- a/src/mailman/database/tests/test_factory.py +++ b/src/mailman/database/tests/test_factory.py @@ -17,9 +17,6 @@ """Test database schema migrations""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestSchemaManager', ] @@ -28,17 +25,16 @@ __all__ = [ import unittest import alembic.command -from mock import patch -from sqlalchemy import MetaData, Table, Column, Integer, Unicode -from sqlalchemy.exc import ProgrammingError, OperationalError -from sqlalchemy.schema import Index - from mailman.config import config from mailman.database.alembic import alembic_cfg from mailman.database.factory import LAST_STORM_SCHEMA_VERSION, SchemaManager from mailman.database.model import Model from mailman.interfaces.database import DatabaseError from mailman.testing.layers import ConfigLayer +from mock import patch +from sqlalchemy import MetaData, Table, Column, Integer, Unicode +from sqlalchemy.exc import ProgrammingError, OperationalError +from sqlalchemy.schema import Index diff --git a/src/mailman/database/transaction.py b/src/mailman/database/transaction.py index 3e156cfb8..dc468aaab 100644 --- a/src/mailman/database/transaction.py +++ b/src/mailman/database/transaction.py @@ -17,9 +17,6 @@ """Transactional support.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'dbconnection', 'transaction', @@ -28,7 +25,6 @@ __all__ = [ from contextlib import contextmanager - from mailman.config import config diff --git a/src/mailman/database/types.py b/src/mailman/database/types.py index 1984b08b5..463d271f0 100644 --- a/src/mailman/database/types.py +++ b/src/mailman/database/types.py @@ -15,17 +15,14 @@ # You should have received a copy of the GNU General Public License along with # GNU Mailman. If not, see <http://www.gnu.org/licenses/>. -"""Storm type conversions.""" +"""Database type conversions.""" - -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Enum', 'UUID', ] + import uuid from sqlalchemy import Integer diff --git a/src/mailman/docs/__init__.py b/src/mailman/docs/__init__.py index f588eb14d..fa09dde76 100644 --- a/src/mailman/docs/__init__.py +++ b/src/mailman/docs/__init__.py @@ -17,9 +17,6 @@ """General Mailman doc tests.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'layer', ] diff --git a/src/mailman/email/message.py b/src/mailman/email/message.py index d77afcbe0..d4b373bea 100644 --- a/src/mailman/email/message.py +++ b/src/mailman/email/message.py @@ -23,9 +23,6 @@ safe pickle deserialization, even if the email package adds additional Message attributes. """ -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Message', 'MultipartDigestMessage', @@ -40,7 +37,6 @@ import email.utils from email.header import Header from email.mime.multipart import MIMEMultipart - from mailman.config import config diff --git a/src/mailman/email/tests/test_message.py b/src/mailman/email/tests/test_message.py index 280a86477..59335b890 100644 --- a/src/mailman/email/tests/test_message.py +++ b/src/mailman/email/tests/test_message.py @@ -17,9 +17,6 @@ """Test the message API.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestMessage', 'TestMessageSubclass', @@ -27,8 +24,8 @@ __all__ = [ import unittest -from email.parser import FeedParser +from email.parser import FeedParser from mailman.app.lifecycle import create_list from mailman.email.message import Message, UserNotification from mailman.testing.helpers import get_queue_messages @@ -88,6 +85,6 @@ Test content attachment = msg.get_payload(1) try: filename = attachment.get_filename() - except TypeError as e: - self.fail(e) + except TypeError as error: + self.fail(error) self.assertEqual(filename, u'd\xe9jeuner.txt') diff --git a/src/mailman/email/validate.py b/src/mailman/email/validate.py index b4cf8b5e2..d6f664b01 100644 --- a/src/mailman/email/validate.py +++ b/src/mailman/email/validate.py @@ -17,9 +17,6 @@ """Email address validation.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Validator', ] @@ -27,11 +24,10 @@ __all__ = [ import re -from zope.interface import implementer - from mailman.interfaces.address import ( IEmailValidator, InvalidEmailAddressError) from mailman.utilities.email import split_email +from zope.interface import implementer # What other characters should be disallowed? diff --git a/src/mailman/handlers/acknowledge.py b/src/mailman/handlers/acknowledge.py index bd8b8861d..c10043981 100644 --- a/src/mailman/handlers/acknowledge.py +++ b/src/mailman/handlers/acknowledge.py @@ -20,23 +20,19 @@ This only happens if the sender has set their AcknowledgePosts attribute. """ -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Acknowledge', ] -from zope.component import getUtility -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.email.message import UserNotification from mailman.interfaces.handler import IHandler from mailman.interfaces.languages import ILanguageManager from mailman.utilities.i18n import make from mailman.utilities.string import oneline +from zope.component import getUtility +from zope.interface import implementer diff --git a/src/mailman/handlers/after_delivery.py b/src/mailman/handlers/after_delivery.py index 7fa7a4554..464fafd8c 100644 --- a/src/mailman/handlers/after_delivery.py +++ b/src/mailman/handlers/after_delivery.py @@ -17,19 +17,15 @@ """Perform some bookkeeping after a successful post.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'AfterDelivery', ] -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.interfaces.handler import IHandler from mailman.utilities.datetime import now +from zope.interface import implementer diff --git a/src/mailman/handlers/avoid_duplicates.py b/src/mailman/handlers/avoid_duplicates.py index 529a99f68..636a9f24d 100644 --- a/src/mailman/handlers/avoid_duplicates.py +++ b/src/mailman/handlers/avoid_duplicates.py @@ -23,19 +23,15 @@ has already received a copy, we either drop the message, add a duplicate warning header, or pass it through, depending on the user's preferences. """ -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'AvoidDuplicates', ] from email.utils import getaddresses, formataddr -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.interfaces.handler import IHandler +from zope.interface import implementer COMMASPACE = ', ' diff --git a/src/mailman/handlers/cleanse.py b/src/mailman/handlers/cleanse.py index 6b653bb34..0dad3077e 100644 --- a/src/mailman/handlers/cleanse.py +++ b/src/mailman/handlers/cleanse.py @@ -17,9 +17,6 @@ """Cleanse certain headers from all messages.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Cleanse', ] @@ -28,11 +25,10 @@ __all__ = [ import logging from email.utils import formataddr -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.handlers.cook_headers import uheader from mailman.interfaces.handler import IHandler +from zope.interface import implementer log = logging.getLogger('mailman.post') diff --git a/src/mailman/handlers/cleanse_dkim.py b/src/mailman/handlers/cleanse_dkim.py index 225666bf1..a4c16d31e 100644 --- a/src/mailman/handlers/cleanse_dkim.py +++ b/src/mailman/handlers/cleanse_dkim.py @@ -25,20 +25,16 @@ and it will also give the MTA the opportunity to regenerate valid keys originating at the Mailman server for the outgoing message. """ -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'CleanseDKIM', ] from lazr.config import as_boolean -from zope.interface import implementer - from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.handler import IHandler +from zope.interface import implementer diff --git a/src/mailman/handlers/cook_headers.py b/src/mailman/handlers/cook_headers.py index f37e8f0e2..44ef02e36 100644 --- a/src/mailman/handlers/cook_headers.py +++ b/src/mailman/handlers/cook_headers.py @@ -17,9 +17,6 @@ """Cook a message's headers.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'CookHeaders', ] @@ -29,18 +26,16 @@ import re from email.header import Header from email.utils import parseaddr, formataddr, getaddresses -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.interfaces.handler import IHandler from mailman.interfaces.mailinglist import Personalization, ReplyToMunging from mailman.version import VERSION +from zope.interface import implementer COMMASPACE = ', ' MAXLINELEN = 78 - -nonascii = re.compile('[^\s!-~]') +NONASCII = re.compile('[^\s!-~]') @@ -53,12 +48,12 @@ def uheader(mlist, s, header_name=None, continuation_ws='\t', maxlinelen=None): specified. """ charset = mlist.preferred_language.charset - if nonascii.search(s): + if NONASCII.search(s): # use list charset but ... if charset == 'us-ascii': charset = 'iso-8859-1' else: - # there is no nonascii so ... + # there is no non-ascii so ... charset = 'us-ascii' return Header(s, charset, maxlinelen, header_name, continuation_ws) diff --git a/src/mailman/handlers/decorate.py b/src/mailman/handlers/decorate.py index 03f0c009f..78fafb3ca 100644 --- a/src/mailman/handlers/decorate.py +++ b/src/mailman/handlers/decorate.py @@ -17,9 +17,6 @@ """Decorate a message by sticking the header and footer around it.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Decorate', 'decorate', diff --git a/src/mailman/handlers/file_recipients.py b/src/mailman/handlers/file_recipients.py index ec8868649..4b115bb53 100644 --- a/src/mailman/handlers/file_recipients.py +++ b/src/mailman/handlers/file_recipients.py @@ -17,9 +17,6 @@ """Get the normal delivery recipients from a Sendmail style :include: file.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'FileRecipients', ] @@ -28,10 +25,9 @@ __all__ = [ import os import errno -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.interfaces.handler import IHandler +from zope.interface import implementer diff --git a/src/mailman/handlers/member_recipients.py b/src/mailman/handlers/member_recipients.py index 0f99bf709..7497746eb 100644 --- a/src/mailman/handlers/member_recipients.py +++ b/src/mailman/handlers/member_recipients.py @@ -23,22 +23,18 @@ on the `recipients' attribute of the message. This attribute is used by the SendmailDeliver and BulkDeliver modules. """ -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'MemberRecipients', ] -from zope.interface import implementer - from mailman.config import config from mailman.core import errors from mailman.core.i18n import _ from mailman.interfaces.handler import IHandler from mailman.interfaces.member import DeliveryStatus from mailman.utilities.string import wrap +from zope.interface import implementer diff --git a/src/mailman/handlers/mime_delete.py b/src/mailman/handlers/mime_delete.py index b5c937fdb..1d107522d 100644 --- a/src/mailman/handlers/mime_delete.py +++ b/src/mailman/handlers/mime_delete.py @@ -24,9 +24,6 @@ wrapping only single sections after other processing are replaced by their contents. """ -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'MIMEDelete', ] @@ -41,9 +38,6 @@ from email.iterators import typed_subpart_iterator from email.mime.message import MIMEMessage from email.mime.text import MIMEText from lazr.config import as_boolean -from os.path import splitext -from zope.interface import implementer - from mailman.config import config from mailman.core import errors from mailman.core.i18n import _ @@ -52,6 +46,8 @@ from mailman.interfaces.action import FilterAction from mailman.interfaces.handler import IHandler from mailman.utilities.string import oneline from mailman.version import VERSION +from os.path import splitext +from zope.interface import implementer log = logging.getLogger('mailman.error') diff --git a/src/mailman/handlers/owner_recipients.py b/src/mailman/handlers/owner_recipients.py index 5a1d0bd2e..dbb203728 100644 --- a/src/mailman/handlers/owner_recipients.py +++ b/src/mailman/handlers/owner_recipients.py @@ -17,20 +17,16 @@ """Calculate the list owner recipients (includes moderators).""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'OwnerRecipients', ] -from zope.interface import implementer - from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.handler import IHandler from mailman.interfaces.member import DeliveryStatus +from zope.interface import implementer diff --git a/src/mailman/handlers/replybot.py b/src/mailman/handlers/replybot.py index 63f3ca4cf..44df2344e 100644 --- a/src/mailman/handlers/replybot.py +++ b/src/mailman/handlers/replybot.py @@ -17,9 +17,6 @@ """Handler for automatic responses.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Replybot', ] @@ -27,9 +24,6 @@ __all__ = [ import logging -from zope.component import getUtility -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.email.message import UserNotification from mailman.interfaces.autorespond import ( @@ -38,6 +32,8 @@ from mailman.interfaces.handler import IHandler from mailman.interfaces.usermanager import IUserManager from mailman.utilities.datetime import today from mailman.utilities.string import expand, wrap +from zope.component import getUtility +from zope.interface import implementer log = logging.getLogger('mailman.error') diff --git a/src/mailman/handlers/rfc_2369.py b/src/mailman/handlers/rfc_2369.py index ea909f41b..c835f2a67 100644 --- a/src/mailman/handlers/rfc_2369.py +++ b/src/mailman/handlers/rfc_2369.py @@ -17,22 +17,18 @@ """RFC 2369 List-* and related headers.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'RFC2369', ] from email.utils import formataddr -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.handlers.cook_headers import uheader from mailman.interfaces.archiver import ArchivePolicy from mailman.interfaces.mailinglist import IListArchiverSet from mailman.interfaces.handler import IHandler +from zope.interface import implementer CONTINUATION = ',\n\t' diff --git a/src/mailman/handlers/subject_prefix.py b/src/mailman/handlers/subject_prefix.py index ee1921ac2..20abd1036 100644 --- a/src/mailman/handlers/subject_prefix.py +++ b/src/mailman/handlers/subject_prefix.py @@ -17,9 +17,6 @@ """Subject header prefix munging.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'SubjectPrefix', ] diff --git a/src/mailman/handlers/tagger.py b/src/mailman/handlers/tagger.py index 51ff6b39e..199c5907f 100644 --- a/src/mailman/handlers/tagger.py +++ b/src/mailman/handlers/tagger.py @@ -17,9 +17,6 @@ """Extract topics from the original mail message.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Tagger', ] @@ -29,10 +26,9 @@ import re import email.iterators import email.parser -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.interfaces.handler import IHandler +from zope.interface import implementer OR = '|' diff --git a/src/mailman/handlers/tests/test_cook_headers.py b/src/mailman/handlers/tests/test_cook_headers.py index d83a44f20..385f402c5 100644 --- a/src/mailman/handlers/tests/test_cook_headers.py +++ b/src/mailman/handlers/tests/test_cook_headers.py @@ -17,9 +17,6 @@ """Test the cook_headers handler.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestCookHeaders', ] @@ -50,6 +47,6 @@ class TestCookHeaders(unittest.TestCase): for msg in messages: try: cook_headers.process(self._mlist, msg, {}) - except AttributeError as e: + except AttributeError as error: # LP: #1130696 would raise an AttributeError on .sender - self.fail(e) + self.fail(error) diff --git a/src/mailman/handlers/tests/test_file_recips.py b/src/mailman/handlers/tests/test_file_recips.py index 9f3e0ec6e..906530762 100644 --- a/src/mailman/handlers/tests/test_file_recips.py +++ b/src/mailman/handlers/tests/test_file_recips.py @@ -17,9 +17,6 @@ """Test file-recips handler.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestFileRecips', ] diff --git a/src/mailman/handlers/tests/test_filter.py b/src/mailman/handlers/tests/test_filter.py index 292e646cd..b81744008 100644 --- a/src/mailman/handlers/tests/test_filter.py +++ b/src/mailman/handlers/tests/test_filter.py @@ -17,9 +17,6 @@ """Test the filter handler.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestFilters', ] diff --git a/src/mailman/handlers/tests/test_mimedel.py b/src/mailman/handlers/tests/test_mimedel.py index c7c37152f..02cb275e0 100644 --- a/src/mailman/handlers/tests/test_mimedel.py +++ b/src/mailman/handlers/tests/test_mimedel.py @@ -17,9 +17,6 @@ """Test the mime_delete handler.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestDispose', ] @@ -27,8 +24,6 @@ __all__ = [ import unittest -from zope.component import getUtility - from mailman.app.lifecycle import create_list from mailman.config import config from mailman.core import errors @@ -40,6 +35,7 @@ from mailman.testing.helpers import ( LogFileMark, configuration, get_queue_messages, specialized_message_from_string as mfs) from mailman.testing.layers import ConfigLayer +from zope.component import getUtility diff --git a/src/mailman/handlers/tests/test_recipients.py b/src/mailman/handlers/tests/test_recipients.py index ef2021d2c..688dcce04 100644 --- a/src/mailman/handlers/tests/test_recipients.py +++ b/src/mailman/handlers/tests/test_recipients.py @@ -17,9 +17,6 @@ """Testing various recipients stuff.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestMemberRecipients', 'TestOwnerRecipients', diff --git a/src/mailman/handlers/tests/test_subject_prefix.py b/src/mailman/handlers/tests/test_subject_prefix.py index 1125f3811..f4fd8c113 100644 --- a/src/mailman/handlers/tests/test_subject_prefix.py +++ b/src/mailman/handlers/tests/test_subject_prefix.py @@ -17,9 +17,6 @@ """Test the Subject header prefix munging..""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestSubjectPrefix', ] diff --git a/src/mailman/handlers/tests/test_to_digest.py b/src/mailman/handlers/tests/test_to_digest.py index 451ebf9a5..8562c3fd7 100644 --- a/src/mailman/handlers/tests/test_to_digest.py +++ b/src/mailman/handlers/tests/test_to_digest.py @@ -17,9 +17,6 @@ """Test the to_digest handler.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestToDigest', ] diff --git a/src/mailman/handlers/to_archive.py b/src/mailman/handlers/to_archive.py index d18742f3c..d8c61bc7d 100644 --- a/src/mailman/handlers/to_archive.py +++ b/src/mailman/handlers/to_archive.py @@ -17,20 +17,16 @@ """Add the message to the archives.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'ToArchive', ] -from zope.interface import implementer - from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.archiver import ArchivePolicy from mailman.interfaces.handler import IHandler +from zope.interface import implementer diff --git a/src/mailman/handlers/to_digest.py b/src/mailman/handlers/to_digest.py index e2d6657b7..70aeb0dcc 100644 --- a/src/mailman/handlers/to_digest.py +++ b/src/mailman/handlers/to_digest.py @@ -17,9 +17,6 @@ """Add the message to the list's current digest.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'ToDigest', ] @@ -27,8 +24,6 @@ __all__ = [ import os -from zope.interface import implementer - from mailman.config import config from mailman.core.i18n import _ from mailman.email.message import Message @@ -36,6 +31,7 @@ from mailman.interfaces.digests import DigestFrequency from mailman.interfaces.handler import IHandler from mailman.utilities.datetime import now as right_now from mailman.utilities.mailbox import Mailbox +from zope.interface import implementer diff --git a/src/mailman/handlers/to_outgoing.py b/src/mailman/handlers/to_outgoing.py index 92fb7fee0..95686d9c7 100644 --- a/src/mailman/handlers/to_outgoing.py +++ b/src/mailman/handlers/to_outgoing.py @@ -22,19 +22,15 @@ posted to the list membership. Anything else that needs to go out to some recipient should just be placed in the out queue directly. """ -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'ToOutgoing', ] -from zope.interface import implementer - from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.handler import IHandler +from zope.interface import implementer diff --git a/src/mailman/handlers/to_usenet.py b/src/mailman/handlers/to_usenet.py index 28c18c520..8d86ea86e 100644 --- a/src/mailman/handlers/to_usenet.py +++ b/src/mailman/handlers/to_usenet.py @@ -17,9 +17,6 @@ """Move the message to the mail->news queue.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'ToUsenet', ] @@ -27,14 +24,13 @@ __all__ = [ import logging -from zope.interface import implementer - from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.handler import IHandler +from zope.interface import implementer -COMMASPACE = ', ' +COMMASPACE = ', ' log = logging.getLogger('mailman.error') diff --git a/src/mailman/interfaces/action.py b/src/mailman/interfaces/action.py index 5d4b150a3..c4147f57a 100644 --- a/src/mailman/interfaces/action.py +++ b/src/mailman/interfaces/action.py @@ -17,7 +17,6 @@ """Message actions.""" -__metaclass__ = type __all__ = [ 'Action', 'FilterAction', diff --git a/src/mailman/interfaces/address.py b/src/mailman/interfaces/address.py index 28a9e8ef4..24d0899f5 100644 --- a/src/mailman/interfaces/address.py +++ b/src/mailman/interfaces/address.py @@ -17,9 +17,6 @@ """Interface for email address related information.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'AddressAlreadyLinkedError', 'AddressError', @@ -33,9 +30,8 @@ __all__ = [ ] -from zope.interface import Interface, Attribute - from mailman.interfaces.errors import MailmanError +from zope.interface import Interface, Attribute diff --git a/src/mailman/interfaces/archiver.py b/src/mailman/interfaces/archiver.py index 8b843bc60..b2fc4f1af 100644 --- a/src/mailman/interfaces/archiver.py +++ b/src/mailman/interfaces/archiver.py @@ -17,9 +17,6 @@ """Interface for archiving schemes.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'ArchivePolicy', 'ClobberDate', diff --git a/src/mailman/interfaces/autorespond.py b/src/mailman/interfaces/autorespond.py index 8da2fc795..d53e181f0 100644 --- a/src/mailman/interfaces/autorespond.py +++ b/src/mailman/interfaces/autorespond.py @@ -17,9 +17,6 @@ """Autoresponder.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'ALWAYS_REPLY', 'IAutoResponseRecord', @@ -33,6 +30,7 @@ from datetime import timedelta from enum import Enum from zope.interface import Interface, Attribute + ALWAYS_REPLY = timedelta() diff --git a/src/mailman/interfaces/bans.py b/src/mailman/interfaces/bans.py index 48b3415c8..ea19abc38 100644 --- a/src/mailman/interfaces/bans.py +++ b/src/mailman/interfaces/bans.py @@ -17,9 +17,6 @@ """Manager of email address bans.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'IBan', 'IBanManager', diff --git a/src/mailman/interfaces/bounce.py b/src/mailman/interfaces/bounce.py index 8a0ffd4b2..9556830eb 100644 --- a/src/mailman/interfaces/bounce.py +++ b/src/mailman/interfaces/bounce.py @@ -17,9 +17,6 @@ """Interface to bounce detection components.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'BounceContext', 'IBounceEvent', diff --git a/src/mailman/interfaces/chain.py b/src/mailman/interfaces/chain.py index 85bad22a4..788112f0b 100644 --- a/src/mailman/interfaces/chain.py +++ b/src/mailman/interfaces/chain.py @@ -17,9 +17,6 @@ """Interfaces describing the basics of chains and links.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'AcceptEvent', 'AcceptOwnerEvent', diff --git a/src/mailman/interfaces/command.py b/src/mailman/interfaces/command.py index 720e59ee8..a73d0b1de 100644 --- a/src/mailman/interfaces/command.py +++ b/src/mailman/interfaces/command.py @@ -17,9 +17,6 @@ """Interfaces defining email commands.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'ContinueProcessing', 'ICLISubCommand', diff --git a/src/mailman/interfaces/configuration.py b/src/mailman/interfaces/configuration.py index 65547d44d..49d0bb3c6 100644 --- a/src/mailman/interfaces/configuration.py +++ b/src/mailman/interfaces/configuration.py @@ -17,9 +17,6 @@ """Configuration system interface.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'ConfigurationUpdatedEvent', 'IConfiguration', @@ -27,9 +24,8 @@ __all__ = [ ] -from zope.interface import Interface - from mailman.core.errors import MailmanError +from zope.interface import Interface diff --git a/src/mailman/interfaces/database.py b/src/mailman/interfaces/database.py index 9ca05b747..37830329a 100644 --- a/src/mailman/interfaces/database.py +++ b/src/mailman/interfaces/database.py @@ -17,9 +17,6 @@ """Interfaces for database interaction.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'DatabaseError', 'IDatabase', diff --git a/src/mailman/interfaces/digests.py b/src/mailman/interfaces/digests.py index c5231e488..c343669f5 100644 --- a/src/mailman/interfaces/digests.py +++ b/src/mailman/interfaces/digests.py @@ -17,9 +17,6 @@ """One last digest.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'IOneLastDigest' ] diff --git a/src/mailman/interfaces/domain.py b/src/mailman/interfaces/domain.py index a4f929ddb..aed76ebe9 100644 --- a/src/mailman/interfaces/domain.py +++ b/src/mailman/interfaces/domain.py @@ -17,9 +17,6 @@ """Interface representing domains.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'BadDomainSpecificationError', 'DomainCreatedEvent', diff --git a/src/mailman/interfaces/errors.py b/src/mailman/interfaces/errors.py index 187c329b3..ecb4270f1 100644 --- a/src/mailman/interfaces/errors.py +++ b/src/mailman/interfaces/errors.py @@ -22,9 +22,6 @@ components. More specific exceptions will be located in the relevant interfaces. """ -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'MailmanError', ] diff --git a/src/mailman/interfaces/handler.py b/src/mailman/interfaces/handler.py index 2e6c3fa20..6c52f017b 100644 --- a/src/mailman/interfaces/handler.py +++ b/src/mailman/interfaces/handler.py @@ -17,9 +17,6 @@ """Interface describing a pipeline handler.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'IHandler', ] diff --git a/src/mailman/interfaces/languages.py b/src/mailman/interfaces/languages.py index 9e88dd78f..810de7af1 100644 --- a/src/mailman/interfaces/languages.py +++ b/src/mailman/interfaces/languages.py @@ -17,9 +17,6 @@ """Interfaces for managing languages.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'ILanguage', 'ILanguageManager', diff --git a/src/mailman/interfaces/listmanager.py b/src/mailman/interfaces/listmanager.py index 7fe8ed35a..27b6b5838 100644 --- a/src/mailman/interfaces/listmanager.py +++ b/src/mailman/interfaces/listmanager.py @@ -17,9 +17,6 @@ """Interface for list storage, deleting, and finding.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'IListManager', 'ListAlreadyExistsError', diff --git a/src/mailman/interfaces/mailinglist.py b/src/mailman/interfaces/mailinglist.py index 3900e3349..2d145dc6c 100644 --- a/src/mailman/interfaces/mailinglist.py +++ b/src/mailman/interfaces/mailinglist.py @@ -17,9 +17,6 @@ """Interface for a mailing list.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'IAcceptableAlias', 'IAcceptableAliasSet', @@ -32,9 +29,8 @@ __all__ = [ from enum import Enum -from zope.interface import Interface, Attribute - from mailman.interfaces.member import MemberRole +from zope.interface import Interface, Attribute diff --git a/src/mailman/interfaces/member.py b/src/mailman/interfaces/member.py index e2a5dc4fe..9e3917b86 100644 --- a/src/mailman/interfaces/member.py +++ b/src/mailman/interfaces/member.py @@ -17,9 +17,6 @@ """Interface describing the basics of a member.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'AlreadySubscribedError', 'DeliveryMode', @@ -37,9 +34,8 @@ __all__ = [ from enum import Enum -from zope.interface import Interface, Attribute - from mailman.core.errors import MailmanError +from zope.interface import Interface, Attribute diff --git a/src/mailman/interfaces/messages.py b/src/mailman/interfaces/messages.py index 7b99578c4..c78971dfd 100644 --- a/src/mailman/interfaces/messages.py +++ b/src/mailman/interfaces/messages.py @@ -17,9 +17,6 @@ """The message storage service.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'IMessage', 'IMessageStore', diff --git a/src/mailman/interfaces/mime.py b/src/mailman/interfaces/mime.py index 4729c426c..11feca331 100644 --- a/src/mailman/interfaces/mime.py +++ b/src/mailman/interfaces/mime.py @@ -17,9 +17,6 @@ """MIME content filtering.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'FilterAction', 'FilterType', diff --git a/src/mailman/interfaces/mlistrequest.py b/src/mailman/interfaces/mlistrequest.py index 77451f8bf..2af0f1776 100644 --- a/src/mailman/interfaces/mlistrequest.py +++ b/src/mailman/interfaces/mlistrequest.py @@ -17,9 +17,6 @@ """Interface for a web request accessing a mailing list.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'IMailingListRequest', ] diff --git a/src/mailman/interfaces/mta.py b/src/mailman/interfaces/mta.py index 22c3d121e..44c0aba42 100644 --- a/src/mailman/interfaces/mta.py +++ b/src/mailman/interfaces/mta.py @@ -17,9 +17,6 @@ """Interface for mail transport agent integration.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'IMailTransportAgentAliases', 'IMailTransportAgentDelivery', @@ -27,9 +24,8 @@ __all__ = [ ] -from zope.interface import Interface - from mailman.core.errors import MailmanError +from zope.interface import Interface diff --git a/src/mailman/interfaces/nntp.py b/src/mailman/interfaces/nntp.py index 8e73c2c50..46d705489 100644 --- a/src/mailman/interfaces/nntp.py +++ b/src/mailman/interfaces/nntp.py @@ -17,9 +17,6 @@ """NNTP and newsgroup interfaces.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'NewsgroupModeration', ] diff --git a/src/mailman/interfaces/pending.py b/src/mailman/interfaces/pending.py index a97552306..ff156d95a 100644 --- a/src/mailman/interfaces/pending.py +++ b/src/mailman/interfaces/pending.py @@ -22,9 +22,6 @@ maps these events to a unique hash that can be used as a token for end user confirmation. """ -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'IPendable', 'IPended', diff --git a/src/mailman/interfaces/permissions.py b/src/mailman/interfaces/permissions.py index 8d06e9ffb..cf32936ff 100644 --- a/src/mailman/interfaces/permissions.py +++ b/src/mailman/interfaces/permissions.py @@ -17,9 +17,6 @@ """Interfaces for various permissions.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'IPostingPermission', ] diff --git a/src/mailman/interfaces/pipeline.py b/src/mailman/interfaces/pipeline.py index 817ebfc62..4ce11d8a6 100644 --- a/src/mailman/interfaces/pipeline.py +++ b/src/mailman/interfaces/pipeline.py @@ -17,9 +17,6 @@ """Interface for describing pipelines.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'IPipeline', ] @@ -37,4 +34,3 @@ class IPipeline(Interface): def __iter__(): """Iterate over all the handlers in this pipeline.""" - diff --git a/src/mailman/interfaces/preferences.py b/src/mailman/interfaces/preferences.py index 27ae49faa..b68d7a0f5 100644 --- a/src/mailman/interfaces/preferences.py +++ b/src/mailman/interfaces/preferences.py @@ -17,9 +17,6 @@ """Interface for preferences.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'IPreferences', ] diff --git a/src/mailman/interfaces/registrar.py b/src/mailman/interfaces/registrar.py index 413f3284e..df7c4ed86 100644 --- a/src/mailman/interfaces/registrar.py +++ b/src/mailman/interfaces/registrar.py @@ -22,9 +22,6 @@ etc. than the IUserManager. The latter does no validation, syntax checking, or confirmation, while this interface does. """ -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'ConfirmationNeededEvent', 'IRegistrar', diff --git a/src/mailman/interfaces/requests.py b/src/mailman/interfaces/requests.py index 4dcb3cace..ed3540e4c 100644 --- a/src/mailman/interfaces/requests.py +++ b/src/mailman/interfaces/requests.py @@ -21,9 +21,6 @@ The request database handles events that must be approved by the list moderators, such as subscription requests and held messages. """ -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'IListRequests', 'RequestType', diff --git a/src/mailman/interfaces/roster.py b/src/mailman/interfaces/roster.py index c4a7f5567..79c9fd573 100644 --- a/src/mailman/interfaces/roster.py +++ b/src/mailman/interfaces/roster.py @@ -17,9 +17,6 @@ """Interface for a roster of members.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'IRoster', ] diff --git a/src/mailman/interfaces/rules.py b/src/mailman/interfaces/rules.py index feb773fca..2118a0b43 100644 --- a/src/mailman/interfaces/rules.py +++ b/src/mailman/interfaces/rules.py @@ -17,9 +17,6 @@ """Interface describing the basics of rules.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'IRule', ] diff --git a/src/mailman/interfaces/runner.py b/src/mailman/interfaces/runner.py index 9cb554597..74038ab71 100644 --- a/src/mailman/interfaces/runner.py +++ b/src/mailman/interfaces/runner.py @@ -17,9 +17,6 @@ """Interface for runners.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'IRunner', 'RunnerCrashEvent', diff --git a/src/mailman/interfaces/styles.py b/src/mailman/interfaces/styles.py index 33ab8ee84..615cb6abd 100644 --- a/src/mailman/interfaces/styles.py +++ b/src/mailman/interfaces/styles.py @@ -17,9 +17,6 @@ """Interfaces for list styles.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'DuplicateStyleError', 'IStyle', @@ -27,8 +24,8 @@ __all__ = [ ] -from zope.interface import Interface, Attribute from mailman.interfaces.errors import MailmanError +from zope.interface import Interface, Attribute diff --git a/src/mailman/interfaces/subscriptions.py b/src/mailman/interfaces/subscriptions.py index 64d4280d6..036cc4631 100644 --- a/src/mailman/interfaces/subscriptions.py +++ b/src/mailman/interfaces/subscriptions.py @@ -17,18 +17,14 @@ """Membership interface for REST.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'ISubscriptionService', ] -from zope.interface import Interface - from mailman.interfaces.errors import MailmanError from mailman.interfaces.member import DeliveryMode, MemberRole +from zope.interface import Interface diff --git a/src/mailman/interfaces/switchboard.py b/src/mailman/interfaces/switchboard.py index ae613700a..c763c142b 100644 --- a/src/mailman/interfaces/switchboard.py +++ b/src/mailman/interfaces/switchboard.py @@ -17,9 +17,6 @@ """Interface for switchboards.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'ISwitchboard', ] diff --git a/src/mailman/interfaces/system.py b/src/mailman/interfaces/system.py index 83992629c..36aa3279e 100644 --- a/src/mailman/interfaces/system.py +++ b/src/mailman/interfaces/system.py @@ -17,9 +17,6 @@ """System information.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'ISystem', ] diff --git a/src/mailman/interfaces/templates.py b/src/mailman/interfaces/templates.py index de5fa11a9..9e39747a3 100644 --- a/src/mailman/interfaces/templates.py +++ b/src/mailman/interfaces/templates.py @@ -17,9 +17,6 @@ """Template downloader with cache.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'ITemplateLoader', ] diff --git a/src/mailman/interfaces/user.py b/src/mailman/interfaces/user.py index e1c1df243..c42bb6c33 100644 --- a/src/mailman/interfaces/user.py +++ b/src/mailman/interfaces/user.py @@ -17,9 +17,6 @@ """Interface describing the basics of a user.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'IUser', 'PasswordChangeEvent', @@ -27,9 +24,8 @@ __all__ = [ ] -from zope.interface import Interface, Attribute - from mailman.interfaces.address import AddressError +from zope.interface import Interface, Attribute diff --git a/src/mailman/interfaces/usermanager.py b/src/mailman/interfaces/usermanager.py index f37d39f6a..ab58347dc 100644 --- a/src/mailman/interfaces/usermanager.py +++ b/src/mailman/interfaces/usermanager.py @@ -17,9 +17,6 @@ """Interface describing the user management service.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'IUserManager', ] diff --git a/src/mailman/languages/language.py b/src/mailman/languages/language.py index 35e142559..de406e10c 100644 --- a/src/mailman/languages/language.py +++ b/src/mailman/languages/language.py @@ -18,17 +18,13 @@ """The representation of a language.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Language', ] -from zope.interface import implementer - from mailman.interfaces.languages import ILanguage +from zope.interface import implementer diff --git a/src/mailman/languages/manager.py b/src/mailman/languages/manager.py index 7e73c11b0..2732d490a 100644 --- a/src/mailman/languages/manager.py +++ b/src/mailman/languages/manager.py @@ -17,20 +17,16 @@ """Language manager.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'LanguageManager', ] -from zope.component import getUtility -from zope.interface import implementer - from mailman.interfaces.configuration import ConfigurationUpdatedEvent from mailman.interfaces.languages import ILanguageManager from mailman.languages.language import Language +from zope.component import getUtility +from zope.interface import implementer diff --git a/src/mailman/model/address.py b/src/mailman/model/address.py index 5d1994567..5ded77dd8 100644 --- a/src/mailman/model/address.py +++ b/src/mailman/model/address.py @@ -17,26 +17,22 @@ """Model for addresses.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Address', ] from email.utils import formataddr +from mailman.database.model import Model +from mailman.interfaces.address import ( + AddressVerificationEvent, IAddress, IEmailValidator) +from mailman.utilities.datetime import now from sqlalchemy import Column, DateTime, ForeignKey, Integer, Unicode from sqlalchemy.orm import relationship, backref from zope.component import getUtility from zope.event import notify from zope.interface import implementer -from mailman.database.model import Model -from mailman.interfaces.address import ( - AddressVerificationEvent, IAddress, IEmailValidator) -from mailman.utilities.datetime import now - @implementer(IAddress) diff --git a/src/mailman/model/autorespond.py b/src/mailman/model/autorespond.py index cfb9e017d..332d04521 100644 --- a/src/mailman/model/autorespond.py +++ b/src/mailman/model/autorespond.py @@ -17,25 +17,21 @@ """Module stuff.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'AutoResponseRecord', 'AutoResponseSet', ] -from sqlalchemy import Column, Date, ForeignKey, Integer, desc -from sqlalchemy.orm import relationship -from zope.interface import implementer - from mailman.database.model import Model from mailman.database.transaction import dbconnection from mailman.database.types import Enum from mailman.interfaces.autorespond import ( IAutoResponseRecord, IAutoResponseSet, Response) from mailman.utilities.datetime import today +from sqlalchemy import Column, Date, ForeignKey, Integer, desc +from sqlalchemy.orm import relationship +from zope.interface import implementer diff --git a/src/mailman/model/bans.py b/src/mailman/model/bans.py index 8678fc1e7..3ad11cbf6 100644 --- a/src/mailman/model/bans.py +++ b/src/mailman/model/bans.py @@ -17,9 +17,6 @@ """Ban manager.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'BanManager', ] @@ -27,12 +24,11 @@ __all__ = [ import re -from sqlalchemy import Column, Integer, Unicode -from zope.interface import implementer - from mailman.database.model import Model from mailman.database.transaction import dbconnection from mailman.interfaces.bans import IBan, IBanManager +from sqlalchemy import Column, Integer, Unicode +from zope.interface import implementer diff --git a/src/mailman/model/bounce.py b/src/mailman/model/bounce.py index 26ebbe0c6..585a92594 100644 --- a/src/mailman/model/bounce.py +++ b/src/mailman/model/bounce.py @@ -17,9 +17,6 @@ """Bounce support.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'BounceEvent', 'BounceProcessor', @@ -27,15 +24,14 @@ __all__ = [ -from sqlalchemy import Boolean, Column, DateTime, Integer, Unicode -from zope.interface import implementer - from mailman.database.model import Model from mailman.database.transaction import dbconnection from mailman.database.types import Enum from mailman.interfaces.bounce import ( BounceContext, IBounceEvent, IBounceProcessor) from mailman.utilities.datetime import now +from sqlalchemy import Boolean, Column, DateTime, Integer, Unicode +from zope.interface import implementer diff --git a/src/mailman/model/digests.py b/src/mailman/model/digests.py index 7bfd512b6..8e8f7dedd 100644 --- a/src/mailman/model/digests.py +++ b/src/mailman/model/digests.py @@ -17,22 +17,18 @@ """One last digest.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'OneLastDigest', ] -from sqlalchemy import Column, Integer, ForeignKey -from sqlalchemy.orm import relationship -from zope.interface import implementer - from mailman.database.model import Model from mailman.database.types import Enum from mailman.interfaces.digests import IOneLastDigest from mailman.interfaces.member import DeliveryMode +from sqlalchemy import Column, Integer, ForeignKey +from sqlalchemy.orm import relationship +from zope.interface import implementer diff --git a/src/mailman/model/domain.py b/src/mailman/model/domain.py index a9020e816..b9d2c88ab 100644 --- a/src/mailman/model/domain.py +++ b/src/mailman/model/domain.py @@ -17,9 +17,6 @@ """Domains.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Domain', 'DomainManager', diff --git a/src/mailman/model/language.py b/src/mailman/model/language.py index f4d48fc97..7317b6328 100644 --- a/src/mailman/model/language.py +++ b/src/mailman/model/language.py @@ -17,19 +17,15 @@ """Model for languages.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Language', ] -from sqlalchemy import Column, Integer, Unicode -from zope.interface import implementer - from mailman.database.model import Model from mailman.interfaces.languages import ILanguage +from sqlalchemy import Column, Integer, Unicode +from zope.interface import implementer diff --git a/src/mailman/model/listmanager.py b/src/mailman/model/listmanager.py index 261490a92..7c228bcb9 100644 --- a/src/mailman/model/listmanager.py +++ b/src/mailman/model/listmanager.py @@ -17,17 +17,11 @@ """A mailing list manager.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'ListManager', ] -from zope.event import notify -from zope.interface import implementer - from mailman.database.transaction import dbconnection from mailman.interfaces.address import InvalidEmailAddressError from mailman.interfaces.listmanager import ( @@ -36,6 +30,8 @@ from mailman.interfaces.listmanager import ( from mailman.model.mailinglist import MailingList from mailman.model.mime import ContentFilter from mailman.utilities.datetime import now +from zope.event import notify +from zope.interface import implementer diff --git a/src/mailman/model/mailinglist.py b/src/mailman/model/mailinglist.py index 8e42bb172..ea3317bb6 100644 --- a/src/mailman/model/mailinglist.py +++ b/src/mailman/model/mailinglist.py @@ -17,9 +17,6 @@ """Model for mailing lists.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'MailingList', ] diff --git a/src/mailman/model/member.py b/src/mailman/model/member.py index 9da9d5d0d..19a30074e 100644 --- a/src/mailman/model/member.py +++ b/src/mailman/model/member.py @@ -17,18 +17,10 @@ """Model for members.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Member', ] -from sqlalchemy import Column, ForeignKey, Integer, Unicode -from sqlalchemy.orm import relationship -from zope.component import getUtility -from zope.event import notify -from zope.interface import implementer from mailman.core.constants import system_preferences from mailman.database.model import Model @@ -42,6 +34,11 @@ from mailman.interfaces.member import ( from mailman.interfaces.user import IUser, UnverifiedAddressError from mailman.interfaces.usermanager import IUserManager from mailman.utilities.uid import UniqueIDFactory +from sqlalchemy import Column, ForeignKey, Integer, Unicode +from sqlalchemy.orm import relationship +from zope.component import getUtility +from zope.event import notify +from zope.interface import implementer uid_factory = UniqueIDFactory(context='members') diff --git a/src/mailman/model/message.py b/src/mailman/model/message.py index 099e5a511..105066daa 100644 --- a/src/mailman/model/message.py +++ b/src/mailman/model/message.py @@ -17,19 +17,16 @@ """Model for messages.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Message', ] -from sqlalchemy import Column, Integer, Unicode -from zope.interface import implementer from mailman.database.model import Model from mailman.database.transaction import dbconnection from mailman.interfaces.messages import IMessage +from sqlalchemy import Column, Integer, Unicode +from zope.interface import implementer diff --git a/src/mailman/model/messagestore.py b/src/mailman/model/messagestore.py index 8dbe19b80..05069119c 100644 --- a/src/mailman/model/messagestore.py +++ b/src/mailman/model/messagestore.py @@ -17,9 +17,6 @@ """Model for message stores.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'MessageStore', ] diff --git a/src/mailman/model/mime.py b/src/mailman/model/mime.py index dc6a54437..240fd6e2b 100644 --- a/src/mailman/model/mime.py +++ b/src/mailman/model/mime.py @@ -17,21 +17,17 @@ """The content filter.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'ContentFilter' ] -from sqlalchemy import Column, ForeignKey, Integer, Unicode -from sqlalchemy.orm import relationship -from zope.interface import implementer - from mailman.database.model import Model from mailman.database.types import Enum from mailman.interfaces.mime import IContentFilter, FilterType +from sqlalchemy import Column, ForeignKey, Integer, Unicode +from sqlalchemy.orm import relationship +from zope.interface import implementer diff --git a/src/mailman/model/pending.py b/src/mailman/model/pending.py index 80fbeafe2..05cea4e29 100644 --- a/src/mailman/model/pending.py +++ b/src/mailman/model/pending.py @@ -17,9 +17,6 @@ """Implementations of the IPendable and IPending interfaces.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Pended', 'Pendings', @@ -32,18 +29,16 @@ import random import hashlib from lazr.config import as_timedelta -from sqlalchemy import Column, DateTime, ForeignKey, Integer, Unicode -from sqlalchemy.orm import relationship -from zope.interface import implementer -from zope.interface.verify import verifyObject - from mailman.config import config from mailman.database.model import Model from mailman.database.transaction import dbconnection from mailman.interfaces.pending import ( IPendable, IPended, IPendedKeyValue, IPendings) from mailman.utilities.datetime import now -from mailman.utilities.modules import call_name +from sqlalchemy import Column, DateTime, ForeignKey, Integer, Unicode +from sqlalchemy.orm import relationship +from zope.interface import implementer +from zope.interface.verify import verifyObject diff --git a/src/mailman/model/preferences.py b/src/mailman/model/preferences.py index 1278f80b7..8cec6036e 100644 --- a/src/mailman/model/preferences.py +++ b/src/mailman/model/preferences.py @@ -17,23 +17,19 @@ """Model for preferences.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Preferences', ] -from sqlalchemy import Boolean, Column, Integer, Unicode -from zope.component import getUtility -from zope.interface import implementer - from mailman.database.model import Model from mailman.database.types import Enum from mailman.interfaces.languages import ILanguageManager from mailman.interfaces.member import DeliveryMode, DeliveryStatus from mailman.interfaces.preferences import IPreferences +from sqlalchemy import Boolean, Column, Integer, Unicode +from zope.component import getUtility +from zope.interface import implementer diff --git a/src/mailman/model/requests.py b/src/mailman/model/requests.py index 394084b71..9d9692b30 100644 --- a/src/mailman/model/requests.py +++ b/src/mailman/model/requests.py @@ -17,10 +17,9 @@ """Implementations of the pending requests interfaces.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ + 'DataPendable', + 'ListRequests', ] diff --git a/src/mailman/model/roster.py b/src/mailman/model/roster.py index 54bc11617..7ea3ad2a4 100644 --- a/src/mailman/model/roster.py +++ b/src/mailman/model/roster.py @@ -22,9 +22,6 @@ the ones that fit a particular role. These are used as the member, owner, moderator, and administrator roster filters. """ -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'AdministratorRoster', 'DigestMemberRoster', @@ -37,14 +34,13 @@ __all__ = [ ] -from sqlalchemy import and_, or_ -from zope.interface import implementer - from mailman.database.transaction import dbconnection from mailman.interfaces.member import DeliveryMode, MemberRole from mailman.interfaces.roster import IRoster from mailman.model.address import Address from mailman.model.member import Member +from sqlalchemy import and_, or_ +from zope.interface import implementer diff --git a/src/mailman/model/tests/test_address.py b/src/mailman/model/tests/test_address.py index 7de77c019..29b32f542 100644 --- a/src/mailman/model/tests/test_address.py +++ b/src/mailman/model/tests/test_address.py @@ -17,9 +17,6 @@ """Test addresses.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestAddress', ] diff --git a/src/mailman/model/tests/test_bounce.py b/src/mailman/model/tests/test_bounce.py index a22da4416..2929747bc 100644 --- a/src/mailman/model/tests/test_bounce.py +++ b/src/mailman/model/tests/test_bounce.py @@ -17,24 +17,21 @@ """Test bounce model objects.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ + 'TestBounceEvents', ] import unittest from datetime import datetime -from zope.component import getUtility - from mailman.app.lifecycle import create_list from mailman.database.transaction import transaction from mailman.interfaces.bounce import BounceContext, IBounceProcessor from mailman.testing.helpers import ( specialized_message_from_string as message_from_string) from mailman.testing.layers import ConfigLayer +from zope.component import getUtility diff --git a/src/mailman/model/tests/test_domain.py b/src/mailman/model/tests/test_domain.py index 88e2fe312..a483d9567 100644 --- a/src/mailman/model/tests/test_domain.py +++ b/src/mailman/model/tests/test_domain.py @@ -17,9 +17,6 @@ """Test domains.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestDomainLifecycleEvents', 'TestDomainManager', @@ -28,8 +25,6 @@ __all__ = [ import unittest -from zope.component import getUtility - from mailman.app.lifecycle import create_list from mailman.interfaces.domain import ( DomainCreatedEvent, DomainCreatingEvent, DomainDeletedEvent, @@ -37,6 +32,7 @@ from mailman.interfaces.domain import ( from mailman.interfaces.listmanager import IListManager from mailman.testing.helpers import event_subscribers from mailman.testing.layers import ConfigLayer +from zope.component import getUtility diff --git a/src/mailman/model/tests/test_listmanager.py b/src/mailman/model/tests/test_listmanager.py index 5582b46c1..a28698eb1 100644 --- a/src/mailman/model/tests/test_listmanager.py +++ b/src/mailman/model/tests/test_listmanager.py @@ -17,9 +17,6 @@ """Test the ListManager.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestListCreation', 'TestListLifecycleEvents', diff --git a/src/mailman/model/tests/test_mailinglist.py b/src/mailman/model/tests/test_mailinglist.py index 2fd000422..6e7c11fe6 100644 --- a/src/mailman/model/tests/test_mailinglist.py +++ b/src/mailman/model/tests/test_mailinglist.py @@ -17,9 +17,6 @@ """Test MailingLists and related model objects..""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestDisabledListArchiver', 'TestListArchiver', diff --git a/src/mailman/model/tests/test_member.py b/src/mailman/model/tests/test_member.py index 5bd3d1594..38f36acde 100644 --- a/src/mailman/model/tests/test_member.py +++ b/src/mailman/model/tests/test_member.py @@ -17,9 +17,6 @@ """Test members.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestMember', ] diff --git a/src/mailman/model/tests/test_messagestore.py b/src/mailman/model/tests/test_messagestore.py index 9661a109e..39d1d97ed 100644 --- a/src/mailman/model/tests/test_messagestore.py +++ b/src/mailman/model/tests/test_messagestore.py @@ -17,9 +17,6 @@ """Test the message store.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestMessageStore', ] diff --git a/src/mailman/model/tests/test_requests.py b/src/mailman/model/tests/test_requests.py index 419c6077f..c47c61013 100644 --- a/src/mailman/model/tests/test_requests.py +++ b/src/mailman/model/tests/test_requests.py @@ -17,9 +17,6 @@ """Test the various pending requests interfaces.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestRequests', ] diff --git a/src/mailman/model/tests/test_roster.py b/src/mailman/model/tests/test_roster.py index 5bd06f485..8cf189e08 100644 --- a/src/mailman/model/tests/test_roster.py +++ b/src/mailman/model/tests/test_roster.py @@ -17,9 +17,6 @@ """Test rosters.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestMailingListRoster', 'TestMembershipsRoster', @@ -28,13 +25,12 @@ __all__ = [ import unittest -from zope.component import getUtility - from mailman.app.lifecycle import create_list from mailman.interfaces.member import DeliveryMode, MemberRole from mailman.interfaces.usermanager import IUserManager from mailman.testing.layers import ConfigLayer from mailman.utilities.datetime import now +from zope.component import getUtility diff --git a/src/mailman/model/tests/test_uid.py b/src/mailman/model/tests/test_uid.py index 4c541205a..dd61ccc51 100644 --- a/src/mailman/model/tests/test_uid.py +++ b/src/mailman/model/tests/test_uid.py @@ -17,10 +17,8 @@ """Test the UID model class.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ + 'TestUID', ] diff --git a/src/mailman/model/tests/test_user.py b/src/mailman/model/tests/test_user.py index c0da87515..ba5ba116f 100644 --- a/src/mailman/model/tests/test_user.py +++ b/src/mailman/model/tests/test_user.py @@ -17,9 +17,6 @@ """Test users.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestUser', ] diff --git a/src/mailman/model/uid.py b/src/mailman/model/uid.py index 72ddd7b5a..94a4f1a17 100644 --- a/src/mailman/model/uid.py +++ b/src/mailman/model/uid.py @@ -17,20 +17,16 @@ """Unique IDs.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'UID', ] -from sqlalchemy import Column, Integer - from mailman.database.model import Model from mailman.database.transaction import dbconnection from mailman.database.types import UUID +from sqlalchemy import Column, Integer diff --git a/src/mailman/model/user.py b/src/mailman/model/user.py index 3a268fd6f..a85ef0d00 100644 --- a/src/mailman/model/user.py +++ b/src/mailman/model/user.py @@ -17,19 +17,11 @@ """Model for users.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'User', ] -from sqlalchemy import Column, DateTime, ForeignKey, Integer, Unicode -from sqlalchemy.orm import relationship, backref -from zope.event import notify -from zope.interface import implementer - from mailman.database.model import Model from mailman.database.transaction import dbconnection from mailman.database.types import UUID @@ -42,6 +34,10 @@ from mailman.model.preferences import Preferences from mailman.model.roster import Memberships from mailman.utilities.datetime import factory as date_factory from mailman.utilities.uid import UniqueIDFactory +from sqlalchemy import Column, DateTime, ForeignKey, Integer, Unicode +from sqlalchemy.orm import relationship, backref +from zope.event import notify +from zope.interface import implementer uid_factory = UniqueIDFactory(context='users') diff --git a/src/mailman/model/usermanager.py b/src/mailman/model/usermanager.py index 726aa6120..374352033 100644 --- a/src/mailman/model/usermanager.py +++ b/src/mailman/model/usermanager.py @@ -17,16 +17,11 @@ """A user manager.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'UserManager', ] -from zope.interface import implementer - from mailman.database.transaction import dbconnection from mailman.interfaces.address import ExistingAddressError from mailman.interfaces.usermanager import IUserManager @@ -34,6 +29,7 @@ from mailman.model.address import Address from mailman.model.member import Member from mailman.model.preferences import Preferences from mailman.model.user import User +from zope.interface import implementer diff --git a/src/mailman/mta/aliases.py b/src/mailman/mta/aliases.py index 1b5f37d44..c309fb27b 100644 --- a/src/mailman/mta/aliases.py +++ b/src/mailman/mta/aliases.py @@ -17,17 +17,13 @@ """Utility for generating all the aliases of a mailing list.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'MailTransportAgentAliases', ] -from zope.interface import implementer - from mailman.interfaces.mta import IMailTransportAgentAliases +from zope.interface import implementer SUBDESTINATIONS = ( diff --git a/src/mailman/mta/base.py b/src/mailman/mta/base.py index 7b9180ea3..8d7ca75af 100644 --- a/src/mailman/mta/base.py +++ b/src/mailman/mta/base.py @@ -17,9 +17,6 @@ """Base delivery class.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'BaseDelivery', 'IndividualDelivery', @@ -31,11 +28,10 @@ import socket import logging import smtplib -from zope.interface import implementer - from mailman.config import config from mailman.interfaces.mta import IMailTransportAgentDelivery from mailman.mta.connection import Connection +from zope.interface import implementer log = logging.getLogger('mailman.smtp') diff --git a/src/mailman/mta/bulk.py b/src/mailman/mta/bulk.py index 4255e0c33..0dcd2cdf6 100644 --- a/src/mailman/mta/bulk.py +++ b/src/mailman/mta/bulk.py @@ -17,9 +17,6 @@ """Bulk message delivery.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'BulkDelivery', ] @@ -108,4 +105,3 @@ class BulkDelivery(BaseDelivery): mlist, msg, msgdata, recipients) refused.update(chunk_refused) return refused - diff --git a/src/mailman/mta/connection.py b/src/mailman/mta/connection.py index 8cf419545..9c49e5fb0 100644 --- a/src/mailman/mta/connection.py +++ b/src/mailman/mta/connection.py @@ -17,9 +17,6 @@ """MTA connections.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Connection', ] diff --git a/src/mailman/mta/decorating.py b/src/mailman/mta/decorating.py index ac99b3624..b4944d960 100644 --- a/src/mailman/mta/decorating.py +++ b/src/mailman/mta/decorating.py @@ -17,9 +17,6 @@ """Individualized delivery with header/footer decorations.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'DecoratingDelivery', 'DecoratingMixin', diff --git a/src/mailman/mta/deliver.py b/src/mailman/mta/deliver.py index be04a48bd..f01390397 100644 --- a/src/mailman/mta/deliver.py +++ b/src/mailman/mta/deliver.py @@ -17,9 +17,6 @@ """Generic delivery.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'deliver', ] diff --git a/src/mailman/mta/exim4.py b/src/mailman/mta/exim4.py index 1180b59eb..f25b12233 100644 --- a/src/mailman/mta/exim4.py +++ b/src/mailman/mta/exim4.py @@ -17,9 +17,6 @@ """Creation/deletion hooks for the Exim4 MTA.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'LMTP', ] diff --git a/src/mailman/mta/null.py b/src/mailman/mta/null.py index 7a3624b31..3b9f6322e 100644 --- a/src/mailman/mta/null.py +++ b/src/mailman/mta/null.py @@ -20,17 +20,13 @@ Exim one example of an MTA that Just Works. """ -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'NullMTA', ] -from zope.interface import implementer - from mailman.interfaces.mta import IMailTransportAgentLifecycle +from zope.interface import implementer diff --git a/src/mailman/mta/personalized.py b/src/mailman/mta/personalized.py index 967bca68a..4ea9075a3 100644 --- a/src/mailman/mta/personalized.py +++ b/src/mailman/mta/personalized.py @@ -17,9 +17,6 @@ """Personalized delivery.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'PersonalizedDelivery', 'PersonalizedMixin', @@ -28,11 +25,10 @@ __all__ = [ from email.header import Header from email.utils import formataddr -from zope.component import getUtility - from mailman.interfaces.mailinglist import Personalization from mailman.interfaces.usermanager import IUserManager from mailman.mta.verp import VERPDelivery +from zope.component import getUtility diff --git a/src/mailman/mta/postfix.py b/src/mailman/mta/postfix.py index bb709c6b4..f76a401fa 100644 --- a/src/mailman/mta/postfix.py +++ b/src/mailman/mta/postfix.py @@ -17,9 +17,6 @@ """Creation/deletion hooks for the Postfix MTA.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'LMTP', ] @@ -29,16 +26,15 @@ import os import logging from flufl.lock import Lock -from operator import attrgetter -from zope.component import getUtility -from zope.interface import implementer - from mailman.config import config from mailman.config.config import external_configuration from mailman.interfaces.listmanager import IListManager from mailman.interfaces.mta import ( IMailTransportAgentAliases, IMailTransportAgentLifecycle) from mailman.utilities.datetime import now +from operator import attrgetter +from zope.component import getUtility +from zope.interface import implementer log = logging.getLogger('mailman.error') diff --git a/src/mailman/mta/tests/test_aliases.py b/src/mailman/mta/tests/test_aliases.py index 30c57e292..8eeeef2c8 100644 --- a/src/mailman/mta/tests/test_aliases.py +++ b/src/mailman/mta/tests/test_aliases.py @@ -17,9 +17,6 @@ """Test the MTA file generating utility.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestAliases', 'TestPostfix', @@ -31,13 +28,12 @@ import shutil import tempfile import unittest -from zope.component import getUtility - from mailman.app.lifecycle import create_list from mailman.interfaces.domain import IDomainManager from mailman.interfaces.mta import IMailTransportAgentAliases from mailman.mta.postfix import LMTP from mailman.testing.layers import ConfigLayer +from zope.component import getUtility NL = '\n' diff --git a/src/mailman/mta/tests/test_connection.py b/src/mailman/mta/tests/test_connection.py index 94b5904b5..74d0e537c 100644 --- a/src/mailman/mta/tests/test_connection.py +++ b/src/mailman/mta/tests/test_connection.py @@ -17,9 +17,6 @@ """Test MTA connections.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestConnection', ] diff --git a/src/mailman/mta/tests/test_delivery.py b/src/mailman/mta/tests/test_delivery.py index 0a910c13d..a2960f7cc 100644 --- a/src/mailman/mta/tests/test_delivery.py +++ b/src/mailman/mta/tests/test_delivery.py @@ -17,9 +17,6 @@ """Test various aspects of email delivery.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestIndividualDelivery', ] diff --git a/src/mailman/mta/verp.py b/src/mailman/mta/verp.py index c3d1d0999..2d436b8cb 100644 --- a/src/mailman/mta/verp.py +++ b/src/mailman/mta/verp.py @@ -17,9 +17,6 @@ """VERP delivery.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'VERPDelivery', 'VERPMixin', diff --git a/src/mailman/options.py b/src/mailman/options.py index 07565f611..93ada95ab 100644 --- a/src/mailman/options.py +++ b/src/mailman/options.py @@ -17,9 +17,6 @@ """Common argument parsing.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Options', 'SingleMailingListOptions', @@ -31,12 +28,11 @@ import os import sys from copy import copy -from optparse import Option, OptionParser, OptionValueError - from mailman.config import config from mailman.core.i18n import _ from mailman.core.initialize import initialize from mailman.version import MAILMAN_VERSION +from optparse import Option, OptionParser, OptionValueError diff --git a/src/mailman/rest/addresses.py b/src/mailman/rest/addresses.py index ce2aa4288..6cca24393 100644 --- a/src/mailman/rest/addresses.py +++ b/src/mailman/rest/addresses.py @@ -17,9 +17,6 @@ """REST for addresses.""" -from __future__ import absolute_import, print_function,unicode_literals - -__metaclass__ = type __all__ = [ 'AllAddresses', 'AnAddress', @@ -29,9 +26,6 @@ __all__ = [ import six -from operator import attrgetter -from zope.component import getUtility - from mailman.interfaces.address import ( ExistingAddressError, InvalidEmailAddressError) from mailman.interfaces.usermanager import IUserManager @@ -42,6 +36,8 @@ from mailman.rest.members import MemberCollection from mailman.rest.preferences import Preferences from mailman.rest.validator import Validator from mailman.utilities.datetime import now +from operator import attrgetter +from zope.component import getUtility diff --git a/src/mailman/rest/configuration.py b/src/mailman/rest/configuration.py index 6d3c85fd8..6cf54a00e 100644 --- a/src/mailman/rest/configuration.py +++ b/src/mailman/rest/configuration.py @@ -17,9 +17,6 @@ """Mailing list configuration via REST API.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'ListConfiguration', ] diff --git a/src/mailman/rest/docs/__init__.py b/src/mailman/rest/docs/__init__.py index 2daf8a681..fcd8b41bb 100644 --- a/src/mailman/rest/docs/__init__.py +++ b/src/mailman/rest/docs/__init__.py @@ -17,9 +17,6 @@ """Doctest layer setup.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'layer', ] diff --git a/src/mailman/rest/domains.py b/src/mailman/rest/domains.py index bd221abeb..9bc0edf6a 100644 --- a/src/mailman/rest/domains.py +++ b/src/mailman/rest/domains.py @@ -17,9 +17,6 @@ """REST for domains.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'ADomain', 'AllDomains', diff --git a/src/mailman/rest/helpers.py b/src/mailman/rest/helpers.py index 2b79a0e8a..a39d6ceb3 100644 --- a/src/mailman/rest/helpers.py +++ b/src/mailman/rest/helpers.py @@ -17,9 +17,6 @@ """Web service helpers.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'BadRequest', 'ChildError', diff --git a/src/mailman/rest/lists.py b/src/mailman/rest/lists.py index 87aa9f4b5..866c6211f 100644 --- a/src/mailman/rest/lists.py +++ b/src/mailman/rest/lists.py @@ -17,9 +17,6 @@ """REST for mailing lists.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'AList', 'AllLists', @@ -33,9 +30,6 @@ __all__ = [ import six from lazr.config import as_boolean -from operator import attrgetter -from zope.component import getUtility - from mailman.app.lifecycle import create_list, remove_list from mailman.config import config from mailman.interfaces.domain import BadDomainSpecificationError @@ -52,6 +46,8 @@ from mailman.rest.helpers import ( from mailman.rest.members import AMember, MemberCollection from mailman.rest.moderation import HeldMessages, SubscriptionRequests from mailman.rest.validator import Validator +from operator import attrgetter +from zope.component import getUtility diff --git a/src/mailman/rest/members.py b/src/mailman/rest/members.py index b63f65658..ceaf54fc2 100644 --- a/src/mailman/rest/members.py +++ b/src/mailman/rest/members.py @@ -17,9 +17,6 @@ """REST for members.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'AMember', 'AllMembers', @@ -30,10 +27,6 @@ __all__ = [ import six -from uuid import UUID -from operator import attrgetter -from zope.component import getUtility - from mailman.app.membership import delete_member from mailman.interfaces.address import InvalidEmailAddressError from mailman.interfaces.listmanager import IListManager, NoSuchListError @@ -49,6 +42,9 @@ from mailman.rest.helpers import ( from mailman.rest.preferences import Preferences, ReadOnlyPreferences from mailman.rest.validator import ( Validator, enum_validator, subscriber_validator) +from operator import attrgetter +from uuid import UUID +from zope.component import getUtility diff --git a/src/mailman/rest/moderation.py b/src/mailman/rest/moderation.py index 4373067ec..da182acb7 100644 --- a/src/mailman/rest/moderation.py +++ b/src/mailman/rest/moderation.py @@ -17,9 +17,6 @@ """REST API for Message moderation.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'HeldMessage', 'HeldMessages', diff --git a/src/mailman/rest/preferences.py b/src/mailman/rest/preferences.py index b85388ec9..9eafa8d77 100644 --- a/src/mailman/rest/preferences.py +++ b/src/mailman/rest/preferences.py @@ -17,9 +17,6 @@ """Preferences.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'ReadOnlyPreferences', 'Preferences', diff --git a/src/mailman/rest/root.py b/src/mailman/rest/root.py index a82f7cdef..654b230a3 100644 --- a/src/mailman/rest/root.py +++ b/src/mailman/rest/root.py @@ -17,9 +17,6 @@ """The root of the REST API.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Root', ] @@ -28,8 +25,6 @@ __all__ = [ import falcon from base64 import b64decode -from zope.component import getUtility - from mailman.config import config from mailman.core.constants import system_preferences from mailman.core.system import system @@ -43,6 +38,7 @@ from mailman.rest.members import AMember, AllMembers, FindMembers from mailman.rest.preferences import ReadOnlyPreferences from mailman.rest.templates import TemplateFinder from mailman.rest.users import AUser, AllUsers +from zope.component import getUtility diff --git a/src/mailman/rest/templates.py b/src/mailman/rest/templates.py index 44dcdefc5..8d448a704 100644 --- a/src/mailman/rest/templates.py +++ b/src/mailman/rest/templates.py @@ -17,9 +17,6 @@ """Template finder.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TemplateFinder', ] diff --git a/src/mailman/rest/tests/test_addresses.py b/src/mailman/rest/tests/test_addresses.py index 5c70fad97..65c0c1e5a 100644 --- a/src/mailman/rest/tests/test_addresses.py +++ b/src/mailman/rest/tests/test_addresses.py @@ -17,9 +17,6 @@ """REST address tests.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestAddresses', ] diff --git a/src/mailman/rest/tests/test_configuration.py b/src/mailman/rest/tests/test_configuration.py index 93171ec4b..d013cdce9 100644 --- a/src/mailman/rest/tests/test_configuration.py +++ b/src/mailman/rest/tests/test_configuration.py @@ -17,9 +17,6 @@ """Test list configuration via the REST API.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestConfiguration', ] diff --git a/src/mailman/rest/tests/test_domains.py b/src/mailman/rest/tests/test_domains.py index cda9a9b89..72ba4c003 100644 --- a/src/mailman/rest/tests/test_domains.py +++ b/src/mailman/rest/tests/test_domains.py @@ -17,9 +17,6 @@ """REST domain tests.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestDomains', ] diff --git a/src/mailman/rest/tests/test_lists.py b/src/mailman/rest/tests/test_lists.py index 23d082fb8..839fd0f58 100644 --- a/src/mailman/rest/tests/test_lists.py +++ b/src/mailman/rest/tests/test_lists.py @@ -17,9 +17,6 @@ """REST list tests.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestListArchivers', 'TestListPagination', diff --git a/src/mailman/rest/tests/test_membership.py b/src/mailman/rest/tests/test_membership.py index 4beea9090..4ca28626f 100644 --- a/src/mailman/rest/tests/test_membership.py +++ b/src/mailman/rest/tests/test_membership.py @@ -17,9 +17,6 @@ """REST membership tests.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestMembership', 'TestNonmembership', diff --git a/src/mailman/rest/tests/test_moderation.py b/src/mailman/rest/tests/test_moderation.py index 207123168..2b72b91eb 100644 --- a/src/mailman/rest/tests/test_moderation.py +++ b/src/mailman/rest/tests/test_moderation.py @@ -17,10 +17,8 @@ """REST moderation tests.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ + 'TestModeration', ] diff --git a/src/mailman/rest/tests/test_paginate.py b/src/mailman/rest/tests/test_paginate.py index e267100c7..a482c7007 100644 --- a/src/mailman/rest/tests/test_paginate.py +++ b/src/mailman/rest/tests/test_paginate.py @@ -17,9 +17,6 @@ """paginate helper tests.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestPaginateHelper', ] diff --git a/src/mailman/rest/tests/test_preferences.py b/src/mailman/rest/tests/test_preferences.py index 06e0b035b..6d34d7763 100644 --- a/src/mailman/rest/tests/test_preferences.py +++ b/src/mailman/rest/tests/test_preferences.py @@ -17,9 +17,6 @@ """Test various preference functionality.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestPreferences', ] @@ -36,6 +33,7 @@ from six.moves.urllib_error import HTTPError from zope.component import getUtility + class TestPreferences(unittest.TestCase): """Test various preference functionality.""" diff --git a/src/mailman/rest/tests/test_root.py b/src/mailman/rest/tests/test_root.py index 49877c3ae..5c134159d 100644 --- a/src/mailman/rest/tests/test_root.py +++ b/src/mailman/rest/tests/test_root.py @@ -17,9 +17,6 @@ """REST root object tests.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestRoot', ] diff --git a/src/mailman/rest/tests/test_users.py b/src/mailman/rest/tests/test_users.py index d4d49889d..b4bd50330 100644 --- a/src/mailman/rest/tests/test_users.py +++ b/src/mailman/rest/tests/test_users.py @@ -17,9 +17,6 @@ """REST user tests.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestLP1074374', 'TestLogin', diff --git a/src/mailman/rest/users.py b/src/mailman/rest/users.py index a1c46bc52..175c1f76c 100644 --- a/src/mailman/rest/users.py +++ b/src/mailman/rest/users.py @@ -17,21 +17,15 @@ """REST for users.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'AUser', + 'AddressUser', 'AllUsers', 'Login', ] from lazr.config import as_boolean -from passlib.utils import generate_password as generate -from uuid import UUID -from zope.component import getUtility - from mailman.config import config from mailman.core.errors import ( ReadOnlyPATCHRequestError, UnknownPATCHRequestError) @@ -44,8 +38,12 @@ from mailman.rest.helpers import ( path_to) from mailman.rest.preferences import Preferences from mailman.rest.validator import PatchValidator, Validator +from passlib.utils import generate_password as generate +from uuid import UUID +from zope.component import getUtility + # Attributes of a user which can be changed via the REST API. class PasswordEncrypterGetterSetter(GetterSetter): def __init__(self): @@ -73,6 +71,7 @@ CREATION_FIELDS = dict( ) + def create_user(arguments, response): """Create a new user.""" # We can't pass the 'password' argument to the user creation method, so diff --git a/src/mailman/rest/validator.py b/src/mailman/rest/validator.py index c185c6694..017e31847 100644 --- a/src/mailman/rest/validator.py +++ b/src/mailman/rest/validator.py @@ -17,9 +17,6 @@ """REST web form validation.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'PatchValidator', 'Validator', @@ -29,12 +26,11 @@ __all__ = [ ] -from uuid import UUID -from zope.component import getUtility - from mailman.core.errors import ( ReadOnlyPATCHRequestError, UnknownPATCHRequestError) from mailman.interfaces.languages import ILanguageManager +from uuid import UUID +from zope.component import getUtility COMMASPACE = ', ' diff --git a/src/mailman/rest/wsgiapp.py b/src/mailman/rest/wsgiapp.py index 445adf278..ad62244c8 100644 --- a/src/mailman/rest/wsgiapp.py +++ b/src/mailman/rest/wsgiapp.py @@ -17,9 +17,6 @@ """Basic WSGI Application object for REST server.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'make_application', 'make_server', diff --git a/src/mailman/rules/administrivia.py b/src/mailman/rules/administrivia.py index be63b93c8..866463d6c 100644 --- a/src/mailman/rules/administrivia.py +++ b/src/mailman/rules/administrivia.py @@ -17,20 +17,16 @@ """The administrivia rule.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Administrivia', ] from email.iterators import typed_subpart_iterator -from zope.interface import implementer - from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.rules import IRule +from zope.interface import implementer # The list of email commands we search for in the Subject header and payload. diff --git a/src/mailman/rules/any.py b/src/mailman/rules/any.py index e5f80fbc4..72f6da873 100644 --- a/src/mailman/rules/any.py +++ b/src/mailman/rules/any.py @@ -17,18 +17,14 @@ """Check if any previous rules have matched.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Any', ] -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.interfaces.rules import IRule +from zope.interface import implementer diff --git a/src/mailman/rules/approved.py b/src/mailman/rules/approved.py index 054bb1e3d..5aa66c7df 100644 --- a/src/mailman/rules/approved.py +++ b/src/mailman/rules/approved.py @@ -17,9 +17,6 @@ """Look for moderator pre-approval.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Approved', ] @@ -28,11 +25,10 @@ __all__ = [ import re from email.iterators import typed_subpart_iterator -from zope.interface import implementer - from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.rules import IRule +from zope.interface import implementer EMPTYSTRING = '' diff --git a/src/mailman/rules/emergency.py b/src/mailman/rules/emergency.py index ba7abe562..a1addcdb7 100644 --- a/src/mailman/rules/emergency.py +++ b/src/mailman/rules/emergency.py @@ -17,18 +17,14 @@ """The emergency hold rule.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Emergency', ] -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.interfaces.rules import IRule +from zope.interface import implementer diff --git a/src/mailman/rules/implicit_dest.py b/src/mailman/rules/implicit_dest.py index 0bc229b15..9d3e6d079 100644 --- a/src/mailman/rules/implicit_dest.py +++ b/src/mailman/rules/implicit_dest.py @@ -17,21 +17,18 @@ """The implicit destination rule.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'ImplicitDestination', ] import re -from email.utils import getaddresses -from zope.interface import implementer +from email.utils import getaddresses from mailman.core.i18n import _ from mailman.interfaces.mailinglist import IAcceptableAliasSet from mailman.interfaces.rules import IRule +from zope.interface import implementer diff --git a/src/mailman/rules/loop.py b/src/mailman/rules/loop.py index 145af8b34..30d7dde59 100644 --- a/src/mailman/rules/loop.py +++ b/src/mailman/rules/loop.py @@ -17,18 +17,14 @@ """Look for a posting loop.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Loop', ] -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.interfaces.rules import IRule +from zope.interface import implementer diff --git a/src/mailman/rules/max_recipients.py b/src/mailman/rules/max_recipients.py index 3b1d4f0c5..485368c0b 100644 --- a/src/mailman/rules/max_recipients.py +++ b/src/mailman/rules/max_recipients.py @@ -17,19 +17,15 @@ """The maximum number of recipients rule.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'MaximumRecipients', ] from email.utils import getaddresses -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.interfaces.rules import IRule +from zope.interface import implementer diff --git a/src/mailman/rules/max_size.py b/src/mailman/rules/max_size.py index 1e2b46184..4c8b58451 100644 --- a/src/mailman/rules/max_size.py +++ b/src/mailman/rules/max_size.py @@ -17,18 +17,14 @@ """The maximum message size rule.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'MaximumSize', ] -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.interfaces.rules import IRule +from zope.interface import implementer diff --git a/src/mailman/rules/moderation.py b/src/mailman/rules/moderation.py index 46ed242fa..5b79677ed 100644 --- a/src/mailman/rules/moderation.py +++ b/src/mailman/rules/moderation.py @@ -17,23 +17,19 @@ """Membership related rules.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'MemberModeration', 'NonmemberModeration', ] -from zope.component import getUtility -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.interfaces.action import Action from mailman.interfaces.member import MemberRole from mailman.interfaces.rules import IRule from mailman.interfaces.usermanager import IUserManager +from zope.component import getUtility +from zope.interface import implementer diff --git a/src/mailman/rules/news_moderation.py b/src/mailman/rules/news_moderation.py index c4372eb80..358368624 100644 --- a/src/mailman/rules/news_moderation.py +++ b/src/mailman/rules/news_moderation.py @@ -17,19 +17,15 @@ """The news moderation rule.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'ModeratedNewsgroup', ] -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.interfaces.nntp import NewsgroupModeration from mailman.interfaces.rules import IRule +from zope.interface import implementer diff --git a/src/mailman/rules/no_subject.py b/src/mailman/rules/no_subject.py index 8f01f0c15..e66046832 100644 --- a/src/mailman/rules/no_subject.py +++ b/src/mailman/rules/no_subject.py @@ -17,18 +17,14 @@ """The no-Subject header rule.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'NoSubject', ] -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.interfaces.rules import IRule +from zope.interface import implementer diff --git a/src/mailman/rules/suspicious.py b/src/mailman/rules/suspicious.py index 1841ed69e..fbd76b794 100644 --- a/src/mailman/rules/suspicious.py +++ b/src/mailman/rules/suspicious.py @@ -17,9 +17,6 @@ """The historical 'suspicious header' rule.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'SuspiciousHeader', ] @@ -28,10 +25,10 @@ __all__ = [ import re import logging -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.interfaces.rules import IRule +from zope.interface import implementer + log = logging.getLogger('mailman.error') diff --git a/src/mailman/rules/tests/test_approved.py b/src/mailman/rules/tests/test_approved.py index 00c556069..83088da55 100644 --- a/src/mailman/rules/tests/test_approved.py +++ b/src/mailman/rules/tests/test_approved.py @@ -17,9 +17,6 @@ """Test the `approved` handler.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestApproved', 'TestApprovedNonASCII', @@ -36,8 +33,7 @@ from mailman.app.lifecycle import create_list from mailman.config import config from mailman.rules import approved from mailman.testing.helpers import ( - configuration, - specialized_message_from_string as mfs) + configuration, specialized_message_from_string as mfs) from mailman.testing.layers import ConfigLayer diff --git a/src/mailman/rules/tests/test_moderation.py b/src/mailman/rules/tests/test_moderation.py index c0c3cf417..2db4e53cc 100644 --- a/src/mailman/rules/tests/test_moderation.py +++ b/src/mailman/rules/tests/test_moderation.py @@ -17,9 +17,6 @@ """Test the `member-moderation` and `nonmember-moderation` rules.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestModeration', ] diff --git a/src/mailman/rules/truth.py b/src/mailman/rules/truth.py index d50b5eae4..0bf3345b7 100644 --- a/src/mailman/rules/truth.py +++ b/src/mailman/rules/truth.py @@ -17,18 +17,14 @@ """A rule which always matches.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Truth', ] -from zope.interface import implementer - from mailman.core.i18n import _ from mailman.interfaces.rules import IRule +from zope.interface import implementer diff --git a/src/mailman/runners/archive.py b/src/mailman/runners/archive.py index b49f5c265..f81f9ee3e 100644 --- a/src/mailman/runners/archive.py +++ b/src/mailman/runners/archive.py @@ -17,9 +17,6 @@ """Archive runner.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'ArchiveRunner', ] @@ -31,7 +28,6 @@ import logging from email.utils import parsedate_tz, mktime_tz from datetime import datetime from lazr.config import as_timedelta - from mailman.config import config from mailman.core.runner import Runner from mailman.interfaces.archiver import ClobberDate diff --git a/src/mailman/runners/bounce.py b/src/mailman/runners/bounce.py index 9312a9158..3a85006fe 100644 --- a/src/mailman/runners/bounce.py +++ b/src/mailman/runners/bounce.py @@ -20,11 +20,10 @@ import logging from flufl.bounce import all_failures, scan_message -from zope.component import getUtility - from mailman.app.bounces import ProbeVERP, StandardVERP, maybe_forward from mailman.core.runner import Runner from mailman.interfaces.bounce import BounceContext, IBounceProcessor +from zope.component import getUtility COMMASPACE = ', ' @@ -33,7 +32,7 @@ log = logging.getLogger('mailman.bounce') elog = logging.getLogger('mailman.error') - + class BounceRunner(Runner): """The bounce runner.""" diff --git a/src/mailman/runners/command.py b/src/mailman/runners/command.py index 7f8c7f470..b0775c4f4 100644 --- a/src/mailman/runners/command.py +++ b/src/mailman/runners/command.py @@ -17,9 +17,6 @@ """-request robot command runner.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'CommandRunner', 'Results', @@ -37,15 +34,14 @@ import logging from email.errors import HeaderParseError from email.header import decode_header, make_header from email.iterators import typed_subpart_iterator -from zope.component import getUtility -from zope.interface import implementer - from mailman.config import config from mailman.core.i18n import _ from mailman.core.runner import Runner from mailman.email.message import UserNotification from mailman.interfaces.command import ContinueProcessing, IEmailResults from mailman.interfaces.languages import ILanguageManager +from zope.component import getUtility +from zope.interface import implementer NL = '\n' diff --git a/src/mailman/runners/digest.py b/src/mailman/runners/digest.py index 0a13a3c49..52bfb8859 100644 --- a/src/mailman/runners/digest.py +++ b/src/mailman/runners/digest.py @@ -17,9 +17,6 @@ """Digest runner.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'DigestRunner', ] diff --git a/src/mailman/runners/incoming.py b/src/mailman/runners/incoming.py index d75469a5e..a5d8fbea3 100644 --- a/src/mailman/runners/incoming.py +++ b/src/mailman/runners/incoming.py @@ -26,21 +26,17 @@ prepared for delivery. Rejections, discards, and holds are processed immediately. """ -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'IncomingRunner', ] -from zope.component import getUtility - from mailman.core.chains import process from mailman.core.runner import Runner from mailman.database.transaction import transaction from mailman.interfaces.address import ExistingAddressError from mailman.interfaces.usermanager import IUserManager +from zope.component import getUtility diff --git a/src/mailman/runners/lmtp.py b/src/mailman/runners/lmtp.py index 2a685f18b..85730bb7d 100644 --- a/src/mailman/runners/lmtp.py +++ b/src/mailman/runners/lmtp.py @@ -34,9 +34,6 @@ so that the peer mail server can provide better diagnostics. http://www.faqs.org/rfcs/rfc2033.html """ -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'LMTPRunner', ] @@ -48,8 +45,6 @@ import logging import asyncore from email.utils import parseaddr -from zope.component import getUtility - from mailman.config import config from mailman.core.runner import Runner from mailman.database.transaction import transactional @@ -57,6 +52,7 @@ from mailman.email.message import Message from mailman.interfaces.listmanager import IListManager from mailman.utilities.datetime import now from mailman.utilities.email import add_message_hash +from zope.component import getUtility elog = logging.getLogger('mailman.error') diff --git a/src/mailman/runners/nntp.py b/src/mailman/runners/nntp.py index d26001a57..7fb16f1b2 100644 --- a/src/mailman/runners/nntp.py +++ b/src/mailman/runners/nntp.py @@ -17,9 +17,6 @@ """NNTP runner.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'NNTPRunner', ] diff --git a/src/mailman/runners/outgoing.py b/src/mailman/runners/outgoing.py index db0d847c4..9af4e7c11 100644 --- a/src/mailman/runners/outgoing.py +++ b/src/mailman/runners/outgoing.py @@ -17,14 +17,16 @@ """Outgoing runner.""" +__all__ = [ + 'OutgoingRunner', + ] + + import socket import logging from datetime import datetime from lazr.config import as_boolean, as_timedelta -from uuid import UUID -from zope.component import getUtility - from mailman.config import config from mailman.core.runner import Runner from mailman.interfaces.bounce import BounceContext, IBounceProcessor @@ -34,6 +36,8 @@ from mailman.interfaces.pending import IPendings from mailman.interfaces.subscriptions import ISubscriptionService from mailman.utilities.datetime import now from mailman.utilities.modules import find_name +from uuid import UUID +from zope.component import getUtility # This controls how often _do_periodic() will try to deal with deferred diff --git a/src/mailman/runners/pipeline.py b/src/mailman/runners/pipeline.py index 13226c6fc..357863d2e 100644 --- a/src/mailman/runners/pipeline.py +++ b/src/mailman/runners/pipeline.py @@ -22,6 +22,11 @@ through the 'preparation pipeline'. This pipeline adds, deletes and modifies headers, calculates message recipients, and more. """ +__all__ = [ + 'PipelineRunner', + ] + + from mailman.core.pipelines import process from mailman.core.runner import Runner diff --git a/src/mailman/runners/rest.py b/src/mailman/runners/rest.py index 5980e6263..d39a8a6ff 100644 --- a/src/mailman/runners/rest.py +++ b/src/mailman/runners/rest.py @@ -17,9 +17,6 @@ """Start the administrative HTTP server.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'RESTRunner', ] diff --git a/src/mailman/runners/retry.py b/src/mailman/runners/retry.py index b4148ee3a..f4705ba75 100644 --- a/src/mailman/runners/retry.py +++ b/src/mailman/runners/retry.py @@ -17,9 +17,6 @@ """Retry delivery.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'RetryRunner', ] diff --git a/src/mailman/runners/tests/test_archiver.py b/src/mailman/runners/tests/test_archiver.py index 12bdb0edd..9e3d9626c 100644 --- a/src/mailman/runners/tests/test_archiver.py +++ b/src/mailman/runners/tests/test_archiver.py @@ -17,9 +17,6 @@ """Test the archive runner.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestArchiveRunner', ] @@ -29,19 +26,17 @@ import os import unittest from email import message_from_file -from zope.interface import implementer - from mailman.app.lifecycle import create_list from mailman.config import config from mailman.interfaces.archiver import IArchiver from mailman.interfaces.mailinglist import IListArchiverSet from mailman.runners.archive import ArchiveRunner from mailman.testing.helpers import ( - configuration, - make_testable_runner, + configuration, make_testable_runner, specialized_message_from_string as mfs) from mailman.testing.layers import ConfigLayer from mailman.utilities.datetime import RFC822_DATE_FMT, factory, now +from zope.interface import implementer diff --git a/src/mailman/runners/tests/test_bounce.py b/src/mailman/runners/tests/test_bounce.py index b296f4476..875437dc2 100644 --- a/src/mailman/runners/tests/test_bounce.py +++ b/src/mailman/runners/tests/test_bounce.py @@ -17,9 +17,6 @@ """Test the bounce runner.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestBounceRunner', 'TestBounceRunnerBug876774', @@ -29,9 +26,6 @@ __all__ = [ import unittest -from zope.component import getUtility -from zope.interface import implementer - from mailman.app.bounces import send_probe from mailman.app.lifecycle import create_list from mailman.config import config @@ -42,11 +36,11 @@ from mailman.interfaces.styles import IStyle, IStyleManager from mailman.interfaces.usermanager import IUserManager from mailman.runners.bounce import BounceRunner from mailman.testing.helpers import ( - LogFileMark, - get_queue_messages, - make_testable_runner, + LogFileMark, get_queue_messages, make_testable_runner, specialized_message_from_string as message_from_string) from mailman.testing.layers import ConfigLayer +from zope.component import getUtility +from zope.interface import implementer diff --git a/src/mailman/runners/tests/test_confirm.py b/src/mailman/runners/tests/test_confirm.py index d387fcfe6..11514044a 100644 --- a/src/mailman/runners/tests/test_confirm.py +++ b/src/mailman/runners/tests/test_confirm.py @@ -17,9 +17,6 @@ """Test the `confirm` command.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestConfirm', ] @@ -29,8 +26,6 @@ import unittest from datetime import datetime from email.iterators import body_line_iterator -from zope.component import getUtility - from mailman.app.lifecycle import create_list from mailman.config import config from mailman.database.transaction import transaction @@ -38,10 +33,10 @@ from mailman.interfaces.registrar import IRegistrar from mailman.interfaces.usermanager import IUserManager from mailman.runners.command import CommandRunner from mailman.testing.helpers import ( - get_queue_messages, - make_testable_runner, + get_queue_messages, make_testable_runner, specialized_message_from_string as mfs) from mailman.testing.layers import ConfigLayer +from zope.component import getUtility diff --git a/src/mailman/runners/tests/test_digest.py b/src/mailman/runners/tests/test_digest.py index 8b19188df..83156f04e 100644 --- a/src/mailman/runners/tests/test_digest.py +++ b/src/mailman/runners/tests/test_digest.py @@ -17,9 +17,6 @@ """Test the digest runner.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestDigest', 'TestI18nDigest', diff --git a/src/mailman/runners/tests/test_incoming.py b/src/mailman/runners/tests/test_incoming.py index 2d49ae550..77fe2da02 100644 --- a/src/mailman/runners/tests/test_incoming.py +++ b/src/mailman/runners/tests/test_incoming.py @@ -17,9 +17,6 @@ """Test the incoming queue runner.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestIncoming', ] @@ -32,8 +29,7 @@ from mailman.chains.base import TerminalChainBase from mailman.config import config from mailman.runners.incoming import IncomingRunner from mailman.testing.helpers import ( - get_queue_messages, - make_testable_runner, + get_queue_messages, make_testable_runner, specialized_message_from_string as mfs) from mailman.testing.layers import ConfigLayer diff --git a/src/mailman/runners/tests/test_join.py b/src/mailman/runners/tests/test_join.py index 2aa361254..df24bc06b 100644 --- a/src/mailman/runners/tests/test_join.py +++ b/src/mailman/runners/tests/test_join.py @@ -17,9 +17,6 @@ """Test mailing list joins.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestJoin', 'TestJoinWithDigests', @@ -29,8 +26,6 @@ __all__ = [ import unittest from email.iterators import body_line_iterator -from zope.component import getUtility - from mailman.app.lifecycle import create_list from mailman.config import config from mailman.interfaces.member import DeliveryMode @@ -42,6 +37,7 @@ from mailman.testing.helpers import ( get_queue_messages, make_testable_runner, reset_the_world, specialized_message_from_string as mfs) from mailman.testing.layers import ConfigLayer +from zope.component import getUtility diff --git a/src/mailman/runners/tests/test_lmtp.py b/src/mailman/runners/tests/test_lmtp.py index 41a4f93e0..44b6a0889 100644 --- a/src/mailman/runners/tests/test_lmtp.py +++ b/src/mailman/runners/tests/test_lmtp.py @@ -17,9 +17,6 @@ """Tests for the LMTP server.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestLMTP', ] diff --git a/src/mailman/runners/tests/test_nntp.py b/src/mailman/runners/tests/test_nntp.py index df3ea8c4b..e3218af33 100644 --- a/src/mailman/runners/tests/test_nntp.py +++ b/src/mailman/runners/tests/test_nntp.py @@ -17,9 +17,6 @@ """Test the NNTP runner and related utilities.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestPrepareMessage', 'TestNNTPRunner', @@ -36,10 +33,7 @@ from mailman.config import config from mailman.interfaces.nntp import NewsgroupModeration from mailman.runners import nntp from mailman.testing.helpers import ( - LogFileMark, - configuration, - get_queue_messages, - make_testable_runner, + LogFileMark, configuration, get_queue_messages, make_testable_runner, specialized_message_from_string as mfs) from mailman.testing.layers import ConfigLayer diff --git a/src/mailman/runners/tests/test_outgoing.py b/src/mailman/runners/tests/test_outgoing.py index 68fb75fc3..8f51c4ce2 100644 --- a/src/mailman/runners/tests/test_outgoing.py +++ b/src/mailman/runners/tests/test_outgoing.py @@ -17,10 +17,11 @@ """Test the outgoing runner.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ + 'TestOnce', + 'TestSocketError', + 'TestSomeRecipientsFailed', + 'TestVERPSettings', ] @@ -32,8 +33,6 @@ import unittest from contextlib import contextmanager from datetime import datetime, timedelta from lazr.config import as_timedelta -from zope.component import getUtility - from mailman.app.bounces import send_probe from mailman.app.lifecycle import create_list from mailman.config import config @@ -45,12 +44,11 @@ from mailman.interfaces.pending import IPendings from mailman.interfaces.usermanager import IUserManager from mailman.runners.outgoing import OutgoingRunner from mailman.testing.helpers import ( - LogFileMark, - get_queue_messages, - make_testable_runner, + LogFileMark, get_queue_messages, make_testable_runner, specialized_message_from_string as message_from_string) from mailman.testing.layers import ConfigLayer, SMTPLayer from mailman.utilities.datetime import factory, now +from zope.component import getUtility diff --git a/src/mailman/runners/tests/test_owner.py b/src/mailman/runners/tests/test_owner.py index 503f1e18d..15ca07c2e 100644 --- a/src/mailman/runners/tests/test_owner.py +++ b/src/mailman/runners/tests/test_owner.py @@ -22,9 +22,6 @@ # tests. They're not exactly integration tests, but they do touch lots of # parts of the system. -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestEmailToOwner', ] @@ -32,22 +29,19 @@ __all__ = [ import unittest -from operator import itemgetter -from zope.component import getUtility - from mailman.app.lifecycle import create_list from mailman.config import config from mailman.database.transaction import transaction from mailman.interfaces.member import MemberRole from mailman.interfaces.usermanager import IUserManager from mailman.testing.helpers import ( - TestableMaster, - get_lmtp_client, - make_testable_runner) + TestableMaster, get_lmtp_client, make_testable_runner) from mailman.runners.incoming import IncomingRunner from mailman.runners.outgoing import OutgoingRunner from mailman.runners.pipeline import PipelineRunner from mailman.testing.layers import SMTPLayer +from operator import itemgetter +from zope.component import getUtility diff --git a/src/mailman/runners/tests/test_pipeline.py b/src/mailman/runners/tests/test_pipeline.py index 1eba5cfbf..347bde16b 100644 --- a/src/mailman/runners/tests/test_pipeline.py +++ b/src/mailman/runners/tests/test_pipeline.py @@ -17,9 +17,6 @@ """Test the pipeline runner.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestPipelineRunner', ] @@ -27,17 +24,15 @@ __all__ = [ import unittest -from zope.interface import implementer - from mailman.app.lifecycle import create_list from mailman.config import config from mailman.interfaces.handler import IHandler from mailman.interfaces.pipeline import IPipeline from mailman.runners.pipeline import PipelineRunner from mailman.testing.helpers import ( - make_testable_runner, - specialized_message_from_string as mfs) + make_testable_runner, specialized_message_from_string as mfs) from mailman.testing.layers import ConfigLayer +from zope.interface import implementer diff --git a/src/mailman/runners/tests/test_rest.py b/src/mailman/runners/tests/test_rest.py index bbe026ad6..96ca19089 100644 --- a/src/mailman/runners/tests/test_rest.py +++ b/src/mailman/runners/tests/test_rest.py @@ -17,9 +17,6 @@ """Test the REST runner.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestRESTRunner', ] diff --git a/src/mailman/runners/tests/test_retry.py b/src/mailman/runners/tests/test_retry.py index 15775e5d8..0a0929991 100644 --- a/src/mailman/runners/tests/test_retry.py +++ b/src/mailman/runners/tests/test_retry.py @@ -17,9 +17,6 @@ """Test the retry runner.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestRetryRunner', ] @@ -31,8 +28,7 @@ from mailman.app.lifecycle import create_list from mailman.config import config from mailman.runners.retry import RetryRunner from mailman.testing.helpers import ( - get_queue_messages, - make_testable_runner, + get_queue_messages, make_testable_runner, specialized_message_from_string as message_from_string) from mailman.testing.layers import ConfigLayer diff --git a/src/mailman/runners/virgin.py b/src/mailman/runners/virgin.py index 0f91d61af..8ff45e86e 100644 --- a/src/mailman/runners/virgin.py +++ b/src/mailman/runners/virgin.py @@ -23,6 +23,11 @@ to go through some minimal processing before they can be sent out to the recipient. """ +__all__ = [ + 'VirginRunner', + ] + + from mailman.core.pipelines import process from mailman.core.runner import Runner diff --git a/src/mailman/styles/base.py b/src/mailman/styles/base.py index 0d65bbebb..db4072b5c 100644 --- a/src/mailman/styles/base.py +++ b/src/mailman/styles/base.py @@ -23,9 +23,6 @@ methods in your compositional derived class. """ -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Announcement', 'BasicOperation', @@ -38,7 +35,6 @@ __all__ = [ from datetime import timedelta - from mailman.core.i18n import _ from mailman.interfaces.action import Action, FilterAction from mailman.interfaces.archiver import ArchivePolicy diff --git a/src/mailman/styles/default.py b/src/mailman/styles/default.py index b12999f0e..f7ea3447f 100644 --- a/src/mailman/styles/default.py +++ b/src/mailman/styles/default.py @@ -17,21 +17,17 @@ """Application of list styles to new and existing lists.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'LegacyDefaultStyle', 'LegacyAnnounceOnly', ] -from zope.interface import implementer - from mailman.interfaces.styles import IStyle from mailman.styles.base import ( Announcement, BasicOperation, Bounces, Discussion, Identity, Moderation, Public) +from zope.interface import implementer diff --git a/src/mailman/styles/manager.py b/src/mailman/styles/manager.py index 397902c17..59cbb1471 100644 --- a/src/mailman/styles/manager.py +++ b/src/mailman/styles/manager.py @@ -17,23 +17,19 @@ """Style manager.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'StyleManager', 'handle_ConfigurationUpdatedEvent', ] -from zope.component import getUtility -from zope.interface import implementer -from zope.interface.verify import verifyObject - from mailman.interfaces.configuration import ConfigurationUpdatedEvent from mailman.interfaces.styles import ( DuplicateStyleError, IStyle, IStyleManager) from mailman.utilities.modules import find_components +from zope.component import getUtility +from zope.interface import implementer +from zope.interface.verify import verifyObject diff --git a/src/mailman/styles/tests/test_styles.py b/src/mailman/styles/tests/test_styles.py index 1fb7a8410..8e8d2eb19 100644 --- a/src/mailman/styles/tests/test_styles.py +++ b/src/mailman/styles/tests/test_styles.py @@ -17,9 +17,6 @@ """Test styles.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestStyle', ] @@ -27,13 +24,12 @@ __all__ = [ import unittest -from zope.component import getUtility -from zope.interface import implementer -from zope.interface.exceptions import DoesNotImplement - from mailman.interfaces.styles import ( DuplicateStyleError, IStyle, IStyleManager) from mailman.testing.layers import ConfigLayer +from zope.component import getUtility +from zope.interface import implementer +from zope.interface.exceptions import DoesNotImplement diff --git a/src/mailman/testing/documentation.py b/src/mailman/testing/documentation.py index b8d852fed..e7511fb9b 100644 --- a/src/mailman/testing/documentation.py +++ b/src/mailman/testing/documentation.py @@ -21,9 +21,6 @@ Note that doctest extraction does not currently work for zip file distributions. doctest discovery currently requires file system traversal. """ -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'setup', 'teardown' @@ -31,7 +28,6 @@ __all__ = [ from inspect import isfunction, ismethod - from mailman.app.lifecycle import create_list from mailman.config import config from mailman.testing.helpers import call_api, specialized_message_from_string @@ -145,11 +141,6 @@ def dump_json(url, data=None, method=None, username=None, password=None): def setup(testobj): """Test setup.""" - # Make sure future statements in our doctests are the same as everywhere - # else. - testobj.globs['absolute_import'] = absolute_import - testobj.globs['print_function'] = print_function - testobj.globs['unicode_literals'] = unicode_literals # In general, I don't like adding convenience functions, since I think # doctests should do the imports themselves. It makes for better # documentation that way. However, a few are really useful, or help to diff --git a/src/mailman/testing/helpers.py b/src/mailman/testing/helpers.py index 1b8f0d7af..b00534490 100644 --- a/src/mailman/testing/helpers.py +++ b/src/mailman/testing/helpers.py @@ -17,9 +17,6 @@ """Various test helpers.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'LogFileMark', 'TestableMaster', @@ -60,11 +57,6 @@ from contextlib import contextmanager from email import message_from_string from httplib2 import Http from lazr.config import as_timedelta -from six.moves.urllib_error import HTTPError -from six.moves.urllib_parse import urlencode -from zope import event -from zope.component import getUtility - from mailman.bin.master import Loop as Master from mailman.config import config from mailman.database.transaction import transaction @@ -75,6 +67,10 @@ from mailman.interfaces.styles import IStyleManager from mailman.interfaces.usermanager import IUserManager from mailman.runners.digest import DigestRunner from mailman.utilities.mailbox import Mailbox +from six.moves.urllib_error import HTTPError +from six.moves.urllib_parse import urlencode +from zope import event +from zope.component import getUtility NL = '\n' diff --git a/src/mailman/testing/i18n.py b/src/mailman/testing/i18n.py index 933a5ec0f..6718f5dda 100644 --- a/src/mailman/testing/i18n.py +++ b/src/mailman/testing/i18n.py @@ -17,9 +17,6 @@ """Internationalization for the tests.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestingStrategy', 'initialize', @@ -29,9 +26,8 @@ __all__ = [ from contextlib import closing from flufl.i18n import registry from gettext import GNUTranslations, NullTranslations -from pkg_resources import resource_stream - from mailman.core.i18n import initialize as core_initialize +from pkg_resources import resource_stream diff --git a/src/mailman/testing/layers.py b/src/mailman/testing/layers.py index 8ec6c307f..d38878160 100644 --- a/src/mailman/testing/layers.py +++ b/src/mailman/testing/layers.py @@ -20,14 +20,10 @@ # XXX 2012-03-23 BAW: Layers really really suck. For example, the # test_owners_get_email() test requires that both the SMTPLayer and LMTPLayer # be set up, but there's apparently no way to do that and make zope.testing -# happy. This causes no tests failures, but it does cause errors at the end -# of the full test run. For now, I'll ignore that, but I do want to -# eventually get rid of the zope.test* dependencies and use something like -# testresources or some such. +# happy. This causes no test failures, but it does cause errors at the end of +# the full test run. For now, I'll ignore that, but I do want to eventually +# get rid of the layers and use something like testresources or some such. -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'ConfigLayer', 'LMTPLayer', @@ -46,10 +42,6 @@ import datetime import tempfile from lazr.config import as_boolean -from pkg_resources import resource_string as resource_bytes -from textwrap import dedent -from zope.component import getUtility - from mailman.config import config from mailman.core import initialize from mailman.core.initialize import INHIBIT_CONFIG_FILE @@ -60,6 +52,9 @@ from mailman.testing.helpers import ( TestableMaster, get_lmtp_client, reset_the_world, wait_for_webservice) from mailman.testing.mta import ConnectionCountingController from mailman.utilities.string import expand +from pkg_resources import resource_string as resource_bytes +from textwrap import dedent +from zope.component import getUtility TEST_TIMEOUT = datetime.timedelta(seconds=5) diff --git a/src/mailman/testing/mta.py b/src/mailman/testing/mta.py index 4dd5bc097..81a6bf1ac 100644 --- a/src/mailman/testing/mta.py +++ b/src/mailman/testing/mta.py @@ -17,9 +17,6 @@ """Fake MTA for testing purposes.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'FakeMTA', ] @@ -29,11 +26,10 @@ import logging from lazr.smtptest.controller import QueueController from lazr.smtptest.server import Channel, QueueServer +from mailman.interfaces.mta import IMailTransportAgentLifecycle from six.moves.queue import Empty, Queue from zope.interface import implementer -from mailman.interfaces.mta import IMailTransportAgentLifecycle - log = logging.getLogger('lazr.smtptest') diff --git a/src/mailman/testing/nose.py b/src/mailman/testing/nose.py index 8d175873c..181048b64 100644 --- a/src/mailman/testing/nose.py +++ b/src/mailman/testing/nose.py @@ -17,9 +17,6 @@ """nose2 test infrastructure.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'NosePlugin', ] @@ -35,6 +32,7 @@ from mailman.testing.documentation import setup, teardown from mailman.testing.layers import ConfigLayer, MockAndMonkeyLayer, SMTPLayer from nose2.events import Plugin + DOT = '.' FLAGS = doctest.ELLIPSIS | doctest.NORMALIZE_WHITESPACE | doctest.REPORT_NDIFF TOPDIR = os.path.dirname(mailman.__file__) diff --git a/src/mailman/tests/test_configfile.py b/src/mailman/tests/test_configfile.py index 22442c767..0807c0648 100644 --- a/src/mailman/tests/test_configfile.py +++ b/src/mailman/tests/test_configfile.py @@ -17,10 +17,10 @@ """Test configuration file searching.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ + 'TestConfigFileBase', + 'TestConfigFileSearch', + 'TestConfigFileSearchWithChroot', ] @@ -31,7 +31,6 @@ import tempfile import unittest from contextlib import contextmanager - from mailman.core.initialize import search_for_configuration_file @@ -107,6 +106,7 @@ class TestConfigFileBase(unittest.TestCase): return os.path.join(self._root, path) + class TestConfigFileSearch(TestConfigFileBase): """Test various aspects of searching for configuration files. @@ -128,6 +128,7 @@ class TestConfigFileSearch(TestConfigFileBase): self.assertEqual(found, config_file) + class TestConfigFileSearchWithChroot(TestConfigFileBase): """Like `TestConfigFileSearch` but with a special os.path.exists().""" diff --git a/src/mailman/utilities/datetime.py b/src/mailman/utilities/datetime.py index b494e2513..3cea0d0cd 100644 --- a/src/mailman/utilities/datetime.py +++ b/src/mailman/utilities/datetime.py @@ -22,10 +22,6 @@ datetime.datetime.now() and datetime.date.today(). These are better instrumented for testing purposes. """ - -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'DateFactory', 'RFC822_DATE_FMT', diff --git a/src/mailman/utilities/email.py b/src/mailman/utilities/email.py index 0237042c7..bedbd2ae9 100644 --- a/src/mailman/utilities/email.py +++ b/src/mailman/utilities/email.py @@ -17,9 +17,6 @@ """Email helpers.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'add_message_hash', 'split_email', diff --git a/src/mailman/utilities/filesystem.py b/src/mailman/utilities/filesystem.py index f2a5b705b..4ef52cbfa 100644 --- a/src/mailman/utilities/filesystem.py +++ b/src/mailman/utilities/filesystem.py @@ -17,9 +17,6 @@ """Filesystem utilities.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'makedirs', 'umask', diff --git a/src/mailman/utilities/i18n.py b/src/mailman/utilities/i18n.py index e9136837f..16f2fee6b 100644 --- a/src/mailman/utilities/i18n.py +++ b/src/mailman/utilities/i18n.py @@ -17,9 +17,6 @@ """i18n template search and interpolation.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TemplateNotFoundError', 'find', @@ -34,13 +31,12 @@ import sys import errno from itertools import product -from pkg_resources import resource_filename - from mailman.config import config from mailman.core.constants import system_preferences from mailman.core.errors import MailmanException from mailman.core.i18n import _ from mailman.utilities.string import expand, wrap as wrap_text +from pkg_resources import resource_filename diff --git a/src/mailman/utilities/importer.py b/src/mailman/utilities/importer.py index c93080c91..2db5f3ace 100644 --- a/src/mailman/utilities/importer.py +++ b/src/mailman/utilities/importer.py @@ -17,9 +17,6 @@ """Importer routines.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Import21Error', 'import_config_pck', diff --git a/src/mailman/utilities/interact.py b/src/mailman/utilities/interact.py index 8bca9ee40..cdc2b3002 100644 --- a/src/mailman/utilities/interact.py +++ b/src/mailman/utilities/interact.py @@ -17,9 +17,6 @@ """Provide an interactive prompt, mimicking the Python interpreter.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'interact', ] diff --git a/src/mailman/utilities/mailbox.py b/src/mailman/utilities/mailbox.py index 4f085e127..71e083792 100644 --- a/src/mailman/utilities/mailbox.py +++ b/src/mailman/utilities/mailbox.py @@ -15,11 +15,8 @@ # You should have received a copy of the GNU General Public License along with # GNU Mailman. If not, see <http://www.gnu.org/licenses/>. -"""Module stuff.""" +"""MMDF helper for digests.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'Mailbox', ] diff --git a/src/mailman/utilities/modules.py b/src/mailman/utilities/modules.py index 9ff0e50cd..2a63ac501 100644 --- a/src/mailman/utilities/modules.py +++ b/src/mailman/utilities/modules.py @@ -17,9 +17,6 @@ """Package and module utilities.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'call_name', 'expand_path', diff --git a/src/mailman/utilities/passwords.py b/src/mailman/utilities/passwords.py index 6fb7f08c0..f29482572 100644 --- a/src/mailman/utilities/passwords.py +++ b/src/mailman/utilities/passwords.py @@ -17,19 +17,14 @@ """A wrapper around passlib.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'handle_ConfigurationUpdatedEvent', ] - -from passlib.context import CryptContext - from mailman.config.config import load_external from mailman.interfaces.configuration import ConfigurationUpdatedEvent +from passlib.context import CryptContext diff --git a/src/mailman/utilities/string.py b/src/mailman/utilities/string.py index 5f0ae03c9..6bbf3c6ea 100644 --- a/src/mailman/utilities/string.py +++ b/src/mailman/utilities/string.py @@ -17,9 +17,6 @@ """String utilities.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'expand', 'oneline', diff --git a/src/mailman/utilities/tests/test_email.py b/src/mailman/utilities/tests/test_email.py index 1448fb32b..838d50862 100644 --- a/src/mailman/utilities/tests/test_email.py +++ b/src/mailman/utilities/tests/test_email.py @@ -17,9 +17,6 @@ """Testing functions in the email utilities.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestEmail', ] diff --git a/src/mailman/utilities/tests/test_import.py b/src/mailman/utilities/tests/test_import.py index 09d2f351c..192e08df5 100644 --- a/src/mailman/utilities/tests/test_import.py +++ b/src/mailman/utilities/tests/test_import.py @@ -17,12 +17,14 @@ """Tests for config.pck imports.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestArchiveImport', 'TestBasicImport', + 'TestConvertToURI', + 'TestFilterActionImport', + 'TestMemberActionImport', + 'TestPreferencesImport', + 'TestRosterImport', ] @@ -33,10 +35,6 @@ import unittest from datetime import timedelta, datetime from enum import Enum -from pkg_resources import resource_filename -from six.moves.cPickle import load -from zope.component import getUtility - from mailman.app.lifecycle import create_list from mailman.config import config from mailman.handlers.decorate import decorate @@ -55,6 +53,9 @@ from mailman.testing.layers import ConfigLayer from mailman.utilities.filesystem import makedirs from mailman.utilities.importer import import_config_pck, Import21Error from mailman.utilities.string import expand +from pkg_resources import resource_filename +from six.moves.cPickle import load +from zope.component import getUtility diff --git a/src/mailman/utilities/tests/test_passwords.py b/src/mailman/utilities/tests/test_passwords.py index 0dd49cb85..b11a7654b 100644 --- a/src/mailman/utilities/tests/test_passwords.py +++ b/src/mailman/utilities/tests/test_passwords.py @@ -17,9 +17,6 @@ """Testing the password utility.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'TestPasswords', ] diff --git a/src/mailman/utilities/tests/test_templates.py b/src/mailman/utilities/tests/test_templates.py index 6507bf8e5..b59d2aa1c 100644 --- a/src/mailman/utilities/tests/test_templates.py +++ b/src/mailman/utilities/tests/test_templates.py @@ -17,10 +17,10 @@ """Testing i18n template search and interpolation.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ + 'TestFind', + 'TestMake', + 'TestSearchOrder', ] @@ -29,14 +29,13 @@ import shutil import tempfile import unittest -from pkg_resources import resource_filename -from zope.component import getUtility - from mailman.app.lifecycle import create_list from mailman.config import config from mailman.interfaces.languages import ILanguageManager from mailman.testing.layers import ConfigLayer from mailman.utilities.i18n import TemplateNotFoundError, find, make, search +from pkg_resources import resource_filename +from zope.component import getUtility @@ -191,14 +190,14 @@ class TestFind(unittest.TestCase): with open(path, 'w') as fp: fp.write(text) self.xxsite = os.path.join( - self.var_dir, 'templates', 'site', 'xx', 'site.txt') + self.var_dir, 'templates', 'site', 'xx', 'site.txt') write('Site template', self.xxsite) - self.xxdomain = os.path.join( - self.var_dir, 'templates', + self.xxdomain = os.path.join( + self.var_dir, 'templates', 'domains', 'example.com', 'xx', 'domain.txt') write('Domain template', self.xxdomain) self.xxlist = os.path.join( - self.var_dir, 'templates', + self.var_dir, 'templates', 'lists', 'test@example.com', 'xx', 'list.txt') write('List template', self.xxlist) diff --git a/src/mailman/utilities/tests/test_wrap.py b/src/mailman/utilities/tests/test_wrap.py index eca6f93be..b9feeed92 100644 --- a/src/mailman/utilities/tests/test_wrap.py +++ b/src/mailman/utilities/tests/test_wrap.py @@ -17,10 +17,8 @@ """Test text wrapping.""" -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ + 'TestWrap', ] diff --git a/src/mailman/utilities/uid.py b/src/mailman/utilities/uid.py index 4fe862868..0b41b63c2 100644 --- a/src/mailman/utilities/uid.py +++ b/src/mailman/utilities/uid.py @@ -21,9 +21,6 @@ Use these functions to create unique ids rather than inlining calls to hashlib and whatnot. These are better instrumented for testing purposes. """ -from __future__ import absolute_import, print_function, unicode_literals - -__metaclass__ = type __all__ = [ 'UniqueIDFactory', 'factory', @@ -35,7 +32,6 @@ import uuid import errno from flufl.lock import Lock - from mailman.config import config from mailman.model.uid import UID from mailman.testing import layers |
