diff options
Diffstat (limited to 'src')
241 files changed, 242 insertions, 255 deletions
diff --git a/src/mailman/__init__.py b/src/mailman/__init__.py index c54830915..15ce69608 100644 --- a/src/mailman/__init__.py +++ b/src/mailman/__init__.py @@ -29,20 +29,6 @@ except ImportError: # pragma: no cover __path__ = pkgutil.extend_path(__path__, __name__) -# I hate myself: http://bugs.python.org/issue26632 -def public(thing=None, **kws): - mdict = (sys._getframe(1).f_globals - if thing is None - else sys.modules[thing.__module__].__dict__) - dunder_all = mdict.setdefault('__all__', []) - if thing is not None: - dunder_all.append(thing.__name__) - for key, value in kws.items(): - dunder_all.append(key) - mdict[key] = value - return thing - - # We have to initialize the i18n subsystem before anything else happens, # however, we'll initialize it differently for tests. We have to do it this # early so that module contents is set up before anything that needs it is diff --git a/src/mailman/app/bounces.py b/src/mailman/app/bounces.py index 98076dc9b..7fcbe4c2a 100644 --- a/src/mailman/app/bounces.py +++ b/src/mailman/app/bounces.py @@ -24,7 +24,6 @@ import logging from email.mime.message import MIMEMessage from email.mime.text import MIMEText from email.utils import parseaddr -from mailman import public from mailman.config import config from mailman.core.i18n import _ from mailman.email.message import OwnerNotification, UserNotification @@ -35,6 +34,7 @@ from mailman.interfaces.subscriptions import ISubscriptionService from mailman.interfaces.template import ITemplateLoader from mailman.utilities.email import split_email from mailman.utilities.string import expand, oneline, wrap +from public import public from string import Template from zope.component import getUtility from zope.interface import implementer diff --git a/src/mailman/app/commands.py b/src/mailman/app/commands.py index 4c484bc0b..093156d78 100644 --- a/src/mailman/app/commands.py +++ b/src/mailman/app/commands.py @@ -17,10 +17,10 @@ """Initialize the email commands.""" -from mailman import public from mailman.config import config from mailman.interfaces.command import IEmailCommand from mailman.utilities.modules import find_components +from public import public from zope.interface.verify import verifyObject diff --git a/src/mailman/app/digests.py b/src/mailman/app/digests.py index 0d47df328..409c22125 100644 --- a/src/mailman/app/digests.py +++ b/src/mailman/app/digests.py @@ -19,11 +19,11 @@ import os -from mailman import public from mailman.config import config from mailman.email.message import Message from mailman.interfaces.digests import DigestFrequency from mailman.utilities.datetime import now as right_now +from public import public @public diff --git a/src/mailman/app/domain.py b/src/mailman/app/domain.py index 66abf9c3e..33546d34a 100644 --- a/src/mailman/app/domain.py +++ b/src/mailman/app/domain.py @@ -17,9 +17,9 @@ """Application level domain support.""" -from mailman import public from mailman.interfaces.domain import DomainDeletingEvent from mailman.interfaces.listmanager import IListManager +from public import public from zope.component import getUtility diff --git a/src/mailman/app/events.py b/src/mailman/app/events.py index f3323b6ce..c7d4857cb 100644 --- a/src/mailman/app/events.py +++ b/src/mailman/app/events.py @@ -17,12 +17,12 @@ """Global events.""" -from mailman import public from mailman.app import domain, membership, moderator, 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 public import public from zope import event diff --git a/src/mailman/app/inject.py b/src/mailman/app/inject.py index decc0fd0e..ca03942ea 100644 --- a/src/mailman/app/inject.py +++ b/src/mailman/app/inject.py @@ -19,10 +19,10 @@ from email import message_from_string from email.utils import formatdate, make_msgid -from mailman import public from mailman.config import config from mailman.email.message import Message from mailman.utilities.email import add_message_hash +from public import public @public diff --git a/src/mailman/app/lifecycle.py b/src/mailman/app/lifecycle.py index 50145ce8f..ccd3e4b35 100644 --- a/src/mailman/app/lifecycle.py +++ b/src/mailman/app/lifecycle.py @@ -21,7 +21,6 @@ import shutil import logging from contextlib import suppress -from mailman import public from mailman.config import config from mailman.interfaces.address import IEmailValidator from mailman.interfaces.domain import ( @@ -31,6 +30,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 public import public from zope.component import getUtility diff --git a/src/mailman/app/membership.py b/src/mailman/app/membership.py index 534eed15d..5eb15cf30 100644 --- a/src/mailman/app/membership.py +++ b/src/mailman/app/membership.py @@ -18,7 +18,6 @@ """Application support for membership management.""" from email.utils import formataddr -from mailman import public from mailman.app.notifications import ( send_admin_subscription_notice, send_goodbye_message, send_welcome_message) @@ -33,6 +32,7 @@ from mailman.interfaces.template import ITemplateLoader from mailman.interfaces.user import IUser from mailman.interfaces.usermanager import IUserManager from mailman.utilities.string import expand +from public import public from zope.component import getUtility diff --git a/src/mailman/app/moderator.py b/src/mailman/app/moderator.py index 9d3856f33..fe7a81383 100644 --- a/src/mailman/app/moderator.py +++ b/src/mailman/app/moderator.py @@ -21,7 +21,6 @@ import time import logging from email.utils import formatdate, getaddresses, make_msgid -from mailman import public from mailman.app.membership import delete_member from mailman.config import config from mailman.core.i18n import _ @@ -34,6 +33,7 @@ from mailman.interfaces.requests import IListRequests, RequestType from mailman.interfaces.template import ITemplateLoader from mailman.utilities.datetime import now from mailman.utilities.string import expand, wrap +from public import public from zope.component import getUtility diff --git a/src/mailman/app/notifications.py b/src/mailman/app/notifications.py index 31a15d820..4d5c1be12 100644 --- a/src/mailman/app/notifications.py +++ b/src/mailman/app/notifications.py @@ -21,13 +21,13 @@ import logging from email.utils import formataddr from lazr.config import as_boolean -from mailman import public from mailman.config import config from mailman.core.i18n import _ from mailman.email.message import OwnerNotification, UserNotification from mailman.interfaces.member import DeliveryMode from mailman.interfaces.template import ITemplateLoader from mailman.utilities.string import expand, wrap +from public import public from zope.component import getUtility diff --git a/src/mailman/app/replybot.py b/src/mailman/app/replybot.py index fc911c5a1..f707fec89 100644 --- a/src/mailman/app/replybot.py +++ b/src/mailman/app/replybot.py @@ -17,7 +17,7 @@ """Application level auto-reply code.""" -from mailman import public +from public import public @public diff --git a/src/mailman/app/subscriptions.py b/src/mailman/app/subscriptions.py index f88a967c2..a38b3061d 100644 --- a/src/mailman/app/subscriptions.py +++ b/src/mailman/app/subscriptions.py @@ -23,7 +23,6 @@ import logging from datetime import timedelta from email.utils import formataddr from enum import Enum -from mailman import public from mailman.app.membership import delete_member from mailman.app.workflow import Workflow from mailman.core.i18n import _ @@ -45,6 +44,7 @@ from mailman.interfaces.usermanager import IUserManager from mailman.interfaces.workflow import IWorkflowStateManager from mailman.utilities.datetime import now from mailman.utilities.string import expand, wrap +from public import public from zope.component import getUtility from zope.event import notify from zope.interface import implementer diff --git a/src/mailman/app/workflow.py b/src/mailman/app/workflow.py index cd9124993..e11ae03cf 100644 --- a/src/mailman/app/workflow.py +++ b/src/mailman/app/workflow.py @@ -22,8 +22,8 @@ import json import logging from collections import deque -from mailman import public from mailman.interfaces.workflow import IWorkflowStateManager +from public import public from zope.component import getUtility diff --git a/src/mailman/archiving/mailarchive.py b/src/mailman/archiving/mailarchive.py index 782cec29a..bd1a34580 100644 --- a/src/mailman/archiving/mailarchive.py +++ b/src/mailman/archiving/mailarchive.py @@ -17,10 +17,10 @@ """The Mail-Archive.com archiver.""" -from mailman import public from mailman.config import config from mailman.config.config import external_configuration from mailman.interfaces.archiver import ArchivePolicy, IArchiver +from public import public from urllib.parse import quote, urljoin from zope.interface import implementer diff --git a/src/mailman/archiving/mhonarc.py b/src/mailman/archiving/mhonarc.py index 857a61e06..80cba043b 100644 --- a/src/mailman/archiving/mhonarc.py +++ b/src/mailman/archiving/mhonarc.py @@ -19,11 +19,11 @@ import logging -from mailman import public from mailman.config import config from mailman.config.config import external_configuration from mailman.interfaces.archiver import IArchiver from mailman.utilities.string import expand +from public import public from subprocess import PIPE, Popen from urllib.parse import urljoin from zope.interface import implementer diff --git a/src/mailman/archiving/prototype.py b/src/mailman/archiving/prototype.py index 9790129da..b37bfa61e 100644 --- a/src/mailman/archiving/prototype.py +++ b/src/mailman/archiving/prototype.py @@ -24,9 +24,9 @@ from contextlib import suppress from datetime import timedelta from flufl.lock import Lock, TimeOutError from mailbox import Maildir -from mailman import public from mailman.config import config from mailman.interfaces.archiver import IArchiver +from public import public from zope.interface import implementer diff --git a/src/mailman/bin/mailman.py b/src/mailman/bin/mailman.py index b4d144b7c..3f8f66d6e 100644 --- a/src/mailman/bin/mailman.py +++ b/src/mailman/bin/mailman.py @@ -21,13 +21,13 @@ import os import argparse from functools import cmp_to_key -from mailman import public from mailman.core.i18n import _ from mailman.core.initialize import initialize from mailman.database.transaction import transaction from mailman.interfaces.command import ICLISubCommand from mailman.utilities.modules import find_components from mailman.version import MAILMAN_VERSION_FULL +from public import public from zope.interface.verify import verifyObject diff --git a/src/mailman/bin/master.py b/src/mailman/bin/master.py index 8e0b1265f..3acff1fc8 100644 --- a/src/mailman/bin/master.py +++ b/src/mailman/bin/master.py @@ -28,11 +28,11 @@ from datetime import timedelta from enum import Enum from flufl.lock import Lock, NotLockedError, TimeOutError from lazr.config import as_boolean -from mailman import public from mailman.config import config from mailman.core.i18n import _ from mailman.core.logging import reopen from mailman.utilities.options import Options +from public import public DOT = '.' diff --git a/src/mailman/bin/runner.py b/src/mailman/bin/runner.py index 591f5ee31..39e1e9105 100644 --- a/src/mailman/bin/runner.py +++ b/src/mailman/bin/runner.py @@ -24,12 +24,12 @@ import logging import argparse import traceback -from mailman import public from mailman.config import config from mailman.core.i18n import _ from mailman.core.initialize import initialize from mailman.utilities.modules import find_name from mailman.version import MAILMAN_VERSION_FULL +from public import public log = None diff --git a/src/mailman/chains/accept.py b/src/mailman/chains/accept.py index 8b0a0507e..c245927bf 100644 --- a/src/mailman/chains/accept.py +++ b/src/mailman/chains/accept.py @@ -19,11 +19,11 @@ import logging -from mailman import public from mailman.chains.base import TerminalChainBase from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.chain import AcceptEvent +from public import public from zope.event import notify diff --git a/src/mailman/chains/base.py b/src/mailman/chains/base.py index 677ec501c..d54baf8b6 100644 --- a/src/mailman/chains/base.py +++ b/src/mailman/chains/base.py @@ -17,11 +17,11 @@ """Base class for terminal chains.""" -from mailman import public from mailman.config import config from mailman.interfaces.chain import ( IChain, IChainIterator, IChainLink, IMutableChain, LinkAction) from mailman.interfaces.rules import IRule +from public import public from zope.interface import implementer diff --git a/src/mailman/chains/builtin.py b/src/mailman/chains/builtin.py index b805fca0f..16de1043a 100644 --- a/src/mailman/chains/builtin.py +++ b/src/mailman/chains/builtin.py @@ -19,10 +19,10 @@ import logging -from mailman import public from mailman.chains.base import Link from mailman.core.i18n import _ from mailman.interfaces.chain import IChain, LinkAction +from public import public from zope.interface import implementer diff --git a/src/mailman/chains/discard.py b/src/mailman/chains/discard.py index f77c7eb0f..e9fc8d05d 100644 --- a/src/mailman/chains/discard.py +++ b/src/mailman/chains/discard.py @@ -19,10 +19,10 @@ import logging -from mailman import public from mailman.chains.base import TerminalChainBase from mailman.core.i18n import _ from mailman.interfaces.chain import DiscardEvent +from public import public from zope.event import notify diff --git a/src/mailman/chains/headers.py b/src/mailman/chains/headers.py index 5698740d3..56ac179e9 100644 --- a/src/mailman/chains/headers.py +++ b/src/mailman/chains/headers.py @@ -21,12 +21,12 @@ import re import logging from itertools import count -from mailman import public 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 public import public from zope.interface import implementer diff --git a/src/mailman/chains/hold.py b/src/mailman/chains/hold.py index 42fed66a6..0b50964b7 100644 --- a/src/mailman/chains/hold.py +++ b/src/mailman/chains/hold.py @@ -22,7 +22,6 @@ import logging from email.mime.message import MIMEMessage from email.mime.text import MIMEText from email.utils import formatdate, make_msgid -from mailman import public from mailman.app.moderator import hold_message from mailman.app.replybot import can_acknowledge from mailman.chains.base import TerminalChainBase @@ -36,6 +35,7 @@ from mailman.interfaces.pending import IPendable, IPendings from mailman.interfaces.template import ITemplateLoader from mailman.interfaces.usermanager import IUserManager from mailman.utilities.string import expand, oneline, wrap +from public import public from zope.component import getUtility from zope.event import notify from zope.interface import implementer diff --git a/src/mailman/chains/moderation.py b/src/mailman/chains/moderation.py index 9bb4bf0d5..e8f507603 100644 --- a/src/mailman/chains/moderation.py +++ b/src/mailman/chains/moderation.py @@ -34,11 +34,11 @@ made as to the disposition of the message. `defer` is the default for members, while `hold` is the default for nonmembers. """ -from mailman import public from mailman.chains.base import Link from mailman.core.i18n import _ from mailman.interfaces.action import Action from mailman.interfaces.chain import IChain, LinkAction +from public import public from zope.interface import implementer diff --git a/src/mailman/chains/owner.py b/src/mailman/chains/owner.py index f7454435f..4fb8e1723 100644 --- a/src/mailman/chains/owner.py +++ b/src/mailman/chains/owner.py @@ -19,11 +19,11 @@ import logging -from mailman import public from mailman.chains.base import TerminalChainBase from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.chain import AcceptOwnerEvent +from public import public from zope.event import notify diff --git a/src/mailman/chains/reject.py b/src/mailman/chains/reject.py index 27fce8d4e..96be8f2de 100644 --- a/src/mailman/chains/reject.py +++ b/src/mailman/chains/reject.py @@ -19,12 +19,12 @@ import logging -from mailman import public 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 mailman.interfaces.pipeline import RejectMessage +from public import public from zope.event import notify diff --git a/src/mailman/commands/cli_aliases.py b/src/mailman/commands/cli_aliases.py index 76713555a..f48814854 100644 --- a/src/mailman/commands/cli_aliases.py +++ b/src/mailman/commands/cli_aliases.py @@ -17,11 +17,11 @@ """Generate Mailman alias files for your MTA.""" -from mailman import public from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.command import ICLISubCommand from mailman.utilities.modules import call_name +from public import public from zope.interface import implementer diff --git a/src/mailman/commands/cli_conf.py b/src/mailman/commands/cli_conf.py index 67db4ac53..0a00f5006 100644 --- a/src/mailman/commands/cli_conf.py +++ b/src/mailman/commands/cli_conf.py @@ -21,10 +21,10 @@ import sys from contextlib import closing from lazr.config._config import Section -from mailman import public from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.command import ICLISubCommand +from public import public from zope.interface import implementer diff --git a/src/mailman/commands/cli_control.py b/src/mailman/commands/cli_control.py index 5ba0b5427..846f4a5c6 100644 --- a/src/mailman/commands/cli_control.py +++ b/src/mailman/commands/cli_control.py @@ -23,11 +23,11 @@ import errno import signal import logging -from mailman import public 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 public import public from zope.interface import implementer diff --git a/src/mailman/commands/cli_digests.py b/src/mailman/commands/cli_digests.py index 3a4d6614f..151a9332c 100644 --- a/src/mailman/commands/cli_digests.py +++ b/src/mailman/commands/cli_digests.py @@ -19,12 +19,12 @@ import sys -from mailman import public from mailman.app.digests import ( bump_digest_number_and_volume, maybe_send_digest_now) from mailman.core.i18n import _ from mailman.interfaces.command import ICLISubCommand from mailman.interfaces.listmanager import IListManager +from public import public from zope.component import getUtility from zope.interface import implementer diff --git a/src/mailman/commands/cli_help.py b/src/mailman/commands/cli_help.py index 9222cd00f..5d6372e51 100644 --- a/src/mailman/commands/cli_help.py +++ b/src/mailman/commands/cli_help.py @@ -17,8 +17,8 @@ """The 'help' subcommand.""" -from mailman import public from mailman.interfaces.command import ICLISubCommand +from public import public from zope.interface import implementer diff --git a/src/mailman/commands/cli_import.py b/src/mailman/commands/cli_import.py index 126c026d0..d9384b5bc 100644 --- a/src/mailman/commands/cli_import.py +++ b/src/mailman/commands/cli_import.py @@ -21,12 +21,12 @@ import sys import pickle from contextlib import ExitStack, contextmanager -from mailman import public from mailman.core.i18n import _ from mailman.database.transaction import transactional from mailman.interfaces.command import ICLISubCommand from mailman.interfaces.listmanager import IListManager from mailman.utilities.importer import Import21Error, import_config_pck +from public import public from zope.component import getUtility from zope.interface import implementer diff --git a/src/mailman/commands/cli_info.py b/src/mailman/commands/cli_info.py index fd6c83f88..46643ae1d 100644 --- a/src/mailman/commands/cli_info.py +++ b/src/mailman/commands/cli_info.py @@ -20,12 +20,12 @@ import sys from lazr.config import as_boolean -from mailman import public from mailman.config import config from mailman.core.api import API30, API31 from mailman.core.i18n import _ from mailman.interfaces.command import ICLISubCommand from mailman.version import MAILMAN_VERSION_FULL +from public import public from zope.interface import implementer diff --git a/src/mailman/commands/cli_inject.py b/src/mailman/commands/cli_inject.py index acbc37d67..0255b71d2 100644 --- a/src/mailman/commands/cli_inject.py +++ b/src/mailman/commands/cli_inject.py @@ -19,12 +19,12 @@ import sys -from mailman import public from mailman.app.inject import inject_text from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.command import ICLISubCommand from mailman.interfaces.listmanager import IListManager +from public import public from zope.component import getUtility from zope.interface import implementer diff --git a/src/mailman/commands/cli_lists.py b/src/mailman/commands/cli_lists.py index f5e6d724a..3a598ab05 100644 --- a/src/mailman/commands/cli_lists.py +++ b/src/mailman/commands/cli_lists.py @@ -17,7 +17,6 @@ """The 'lists' subcommand.""" -from mailman import public from mailman.app.lifecycle import create_list, remove_list from mailman.core.constants import system_preferences from mailman.core.i18n import _ @@ -32,6 +31,7 @@ from mailman.interfaces.languages import ILanguageManager from mailman.interfaces.listmanager import IListManager, ListAlreadyExistsError from mailman.interfaces.template import ITemplateLoader from mailman.utilities.string import expand, wrap +from public import public from zope.component import getUtility from zope.interface import implementer diff --git a/src/mailman/commands/cli_members.py b/src/mailman/commands/cli_members.py index 476d1f77d..1eb6550d6 100644 --- a/src/mailman/commands/cli_members.py +++ b/src/mailman/commands/cli_members.py @@ -21,7 +21,6 @@ import sys from contextlib import ExitStack from email.utils import formataddr, parseaddr -from mailman import public from mailman.app.membership import add_member from mailman.core.i18n import _ from mailman.database.transaction import transactional @@ -31,6 +30,7 @@ from mailman.interfaces.member import ( AlreadySubscribedError, DeliveryMode, DeliveryStatus, MemberRole) from mailman.interfaces.subscriptions import RequestRecord from operator import attrgetter +from public import public 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 f6502f14a..c8d3ec84b 100644 --- a/src/mailman/commands/cli_qfile.py +++ b/src/mailman/commands/cli_qfile.py @@ -19,11 +19,11 @@ import pickle -from mailman import public from mailman.core.i18n import _ from mailman.interfaces.command import ICLISubCommand from mailman.utilities.interact import interact from pprint import PrettyPrinter +from public import public from zope.interface import implementer diff --git a/src/mailman/commands/cli_status.py b/src/mailman/commands/cli_status.py index 6b4abe45e..b60ba8841 100644 --- a/src/mailman/commands/cli_status.py +++ b/src/mailman/commands/cli_status.py @@ -19,10 +19,10 @@ import socket -from mailman import public from mailman.bin.master import WatcherState, master_state from mailman.core.i18n import _ from mailman.interfaces.command import ICLISubCommand +from public import public from zope.interface import implementer diff --git a/src/mailman/commands/cli_unshunt.py b/src/mailman/commands/cli_unshunt.py index 6bb1a9800..49b9c6e26 100644 --- a/src/mailman/commands/cli_unshunt.py +++ b/src/mailman/commands/cli_unshunt.py @@ -19,10 +19,10 @@ import sys -from mailman import public from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.command import ICLISubCommand +from public import public from zope.interface import implementer diff --git a/src/mailman/commands/cli_version.py b/src/mailman/commands/cli_version.py index 4660087de..bc26d0115 100644 --- a/src/mailman/commands/cli_version.py +++ b/src/mailman/commands/cli_version.py @@ -17,9 +17,9 @@ """The Mailman version.""" -from mailman import public from mailman.interfaces.command import ICLISubCommand from mailman.version import MAILMAN_VERSION_FULL +from public import public from zope.interface import implementer diff --git a/src/mailman/commands/cli_withlist.py b/src/mailman/commands/cli_withlist.py index 23250c1a5..42eb57cfc 100644 --- a/src/mailman/commands/cli_withlist.py +++ b/src/mailman/commands/cli_withlist.py @@ -23,13 +23,13 @@ import sys from contextlib import ExitStack, suppress from functools import partial from lazr.config import as_boolean -from mailman import public 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 public import public from string import Template from traceback import print_exc from zope.component import getUtility diff --git a/src/mailman/commands/eml_confirm.py b/src/mailman/commands/eml_confirm.py index 6787b0987..425bb00e8 100644 --- a/src/mailman/commands/eml_confirm.py +++ b/src/mailman/commands/eml_confirm.py @@ -17,10 +17,10 @@ """The 'confirm' email command.""" -from mailman import public from mailman.core.i18n import _ from mailman.interfaces.command import ContinueProcessing, IEmailCommand from mailman.interfaces.subscriptions import ISubscriptionManager, TokenOwner +from public import public from zope.interface import implementer diff --git a/src/mailman/commands/eml_echo.py b/src/mailman/commands/eml_echo.py index 67f917d3e..db340fda9 100644 --- a/src/mailman/commands/eml_echo.py +++ b/src/mailman/commands/eml_echo.py @@ -17,9 +17,9 @@ """The email command 'echo'.""" -from mailman import public from mailman.core.i18n import _ from mailman.interfaces.command import ContinueProcessing, IEmailCommand +from public import public from zope.interface import implementer diff --git a/src/mailman/commands/eml_end.py b/src/mailman/commands/eml_end.py index 82b66a1a6..c280cc52f 100644 --- a/src/mailman/commands/eml_end.py +++ b/src/mailman/commands/eml_end.py @@ -17,9 +17,9 @@ """The email commands 'end' and 'stop'.""" -from mailman import public from mailman.core.i18n import _ from mailman.interfaces.command import ContinueProcessing, IEmailCommand +from public import public from zope.interface import implementer diff --git a/src/mailman/commands/eml_help.py b/src/mailman/commands/eml_help.py index 4ca2d72a4..b4a39009a 100644 --- a/src/mailman/commands/eml_help.py +++ b/src/mailman/commands/eml_help.py @@ -17,11 +17,11 @@ """The email command 'help'.""" -from mailman import public from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.command import ContinueProcessing, IEmailCommand from mailman.utilities.string import wrap +from public import public from zope.interface import implementer diff --git a/src/mailman/commands/eml_membership.py b/src/mailman/commands/eml_membership.py index e658e7b58..22f26e24d 100644 --- a/src/mailman/commands/eml_membership.py +++ b/src/mailman/commands/eml_membership.py @@ -18,13 +18,13 @@ """The email commands 'join' and 'subscribe'.""" from email.utils import formataddr, parseaddr -from mailman import public from mailman.core.i18n import _ from mailman.interfaces.command import ContinueProcessing, IEmailCommand from mailman.interfaces.member import DeliveryMode, MemberRole from mailman.interfaces.subscriptions import ( ISubscriptionManager, ISubscriptionService) from mailman.interfaces.usermanager import IUserManager +from public import public from zope.component import getUtility from zope.interface import implementer diff --git a/src/mailman/config/__init__.py b/src/mailman/config/__init__.py index 5c45d6599..66b298217 100644 --- a/src/mailman/config/__init__.py +++ b/src/mailman/config/__init__.py @@ -17,8 +17,8 @@ """Mailman configuration package.""" -from mailman import public from mailman.config.config import Configuration +from public import public public(config=Configuration()) diff --git a/src/mailman/config/config.py b/src/mailman/config/config.py index 5454c5e5a..1f4384eb7 100644 --- a/src/mailman/config/config.py +++ b/src/mailman/config/config.py @@ -24,13 +24,13 @@ import mailman.templates from configparser import ConfigParser from flufl.lock import Lock from lazr.config import ConfigSchema, as_boolean -from mailman import public, 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 public import public, version from string import Template from zope.component import getUtility from zope.event import notify diff --git a/src/mailman/core/api.py b/src/mailman/core/api.py index e6e013af0..c9e377bbf 100644 --- a/src/mailman/core/api.py +++ b/src/mailman/core/api.py @@ -18,9 +18,9 @@ """REST web service API contexts.""" from lazr.config import as_boolean -from mailman import public from mailman.config import config from mailman.interfaces.api import IAPI +from public import public from uuid import UUID from zope.interface import implementer diff --git a/src/mailman/core/chains.py b/src/mailman/core/chains.py index ec84db2c4..0af61fd2a 100644 --- a/src/mailman/core/chains.py +++ b/src/mailman/core/chains.py @@ -17,11 +17,11 @@ """Application support for chain processing.""" -from mailman import public from mailman.chains.base import Chain, TerminalChainBase from mailman.config import config from mailman.interfaces.chain import IChain, LinkAction from mailman.utilities.modules import find_components +from public import public from zope.interface.verify import verifyObject diff --git a/src/mailman/core/constants.py b/src/mailman/core/constants.py index f82783e9f..e5d265256 100644 --- a/src/mailman/core/constants.py +++ b/src/mailman/core/constants.py @@ -17,11 +17,11 @@ """Various constants and enumerations.""" -from mailman import public 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 public import public from zope.component import getUtility from zope.interface import implementer diff --git a/src/mailman/core/i18n.py b/src/mailman/core/i18n.py index 5536fcdaf..345020a13 100644 --- a/src/mailman/core/i18n.py +++ b/src/mailman/core/i18n.py @@ -20,8 +20,8 @@ import mailman.messages from flufl.i18n import PackageStrategy, registry -from mailman import public from mailman.interfaces.configuration import ConfigurationUpdatedEvent +from public import public public(_=None) diff --git a/src/mailman/core/initialize.py b/src/mailman/core/initialize.py index 7b39465c5..6bd1d6777 100644 --- a/src/mailman/core/initialize.py +++ b/src/mailman/core/initialize.py @@ -29,10 +29,10 @@ import sys import mailman.config.config import mailman.core.logging -from mailman import public from mailman.interfaces.database import IDatabaseFactory from mailman.utilities.modules import call_name from pkg_resources import resource_string as resource_bytes +from public import public from zope.component import getUtility from zope.configuration import xmlconfig diff --git a/src/mailman/core/logging.py b/src/mailman/core/logging.py index a7e8b2554..53bb2cf1c 100644 --- a/src/mailman/core/logging.py +++ b/src/mailman/core/logging.py @@ -23,8 +23,8 @@ import codecs import logging from lazr.config import as_boolean, as_log_level -from mailman import public from mailman.config import config +from public import public _handlers = {} diff --git a/src/mailman/core/pipelines.py b/src/mailman/core/pipelines.py index 5df21ed15..fb663cee9 100644 --- a/src/mailman/core/pipelines.py +++ b/src/mailman/core/pipelines.py @@ -19,7 +19,6 @@ import logging -from mailman import public from mailman.app.bounces import bounce_message from mailman.config import config from mailman.core.i18n import _ @@ -27,6 +26,7 @@ from mailman.interfaces.handler import IHandler from mailman.interfaces.pipeline import ( DiscardMessage, IPipeline, RejectMessage) from mailman.utilities.modules import find_components +from public import public from zope.interface import implementer from zope.interface.verify import verifyObject diff --git a/src/mailman/core/rules.py b/src/mailman/core/rules.py index f6ca87726..680d4f007 100644 --- a/src/mailman/core/rules.py +++ b/src/mailman/core/rules.py @@ -17,10 +17,10 @@ """Various rule helpers""" -from mailman import public from mailman.config import config from mailman.interfaces.rules import IRule from mailman.utilities.modules import find_components +from public import public from zope.interface.verify import verifyObject diff --git a/src/mailman/core/runner.py b/src/mailman/core/runner.py index d0ff6f5ce..ed1c26d38 100644 --- a/src/mailman/core/runner.py +++ b/src/mailman/core/runner.py @@ -25,7 +25,6 @@ import traceback from contextlib import suppress from io import StringIO from lazr.config import as_boolean, as_timedelta -from mailman import public from mailman.config import config from mailman.core.i18n import _ from mailman.core.logging import reopen @@ -34,6 +33,7 @@ from mailman.interfaces.languages import ILanguageManager from mailman.interfaces.listmanager import IListManager from mailman.interfaces.runner import IRunner, RunnerCrashEvent from mailman.utilities.string import expand +from public import public from zope.component import getUtility from zope.event import notify from zope.interface import implementer diff --git a/src/mailman/core/switchboard.py b/src/mailman/core/switchboard.py index cfbb371ba..f03ee11e5 100644 --- a/src/mailman/core/switchboard.py +++ b/src/mailman/core/switchboard.py @@ -31,13 +31,13 @@ import pickle import hashlib import logging -from mailman import public from mailman.config import config from mailman.email.message import Message from mailman.interfaces.configuration import ConfigurationUpdatedEvent from mailman.interfaces.switchboard import ISwitchboard from mailman.utilities.filesystem import makedirs from mailman.utilities.string import expand +from public import public from zope.interface import implementer diff --git a/src/mailman/core/system.py b/src/mailman/core/system.py index ee88c5adf..2d76f0c97 100644 --- a/src/mailman/core/system.py +++ b/src/mailman/core/system.py @@ -19,8 +19,8 @@ import sys -from mailman import public, version from mailman.interfaces.system import ISystem +from public import public, version from zope.interface import implementer diff --git a/src/mailman/database/alembic/__init__.py b/src/mailman/database/alembic/__init__.py index af2596f04..ff74113d7 100644 --- a/src/mailman/database/alembic/__init__.py +++ b/src/mailman/database/alembic/__init__.py @@ -18,8 +18,8 @@ """Alembic configuration initization.""" from alembic.config import Config -from mailman import public from mailman.utilities.modules import expand_path +from public import public public(alembic_cfg=Config(expand_path('python:mailman.config.alembic'))) diff --git a/src/mailman/database/alembic/env.py b/src/mailman/database/alembic/env.py index c7a5e151d..e359b201d 100644 --- a/src/mailman/database/alembic/env.py +++ b/src/mailman/database/alembic/env.py @@ -19,11 +19,11 @@ from alembic import context from contextlib import closing -from mailman import public from mailman.config import config from mailman.core.initialize import initialize_1 from mailman.database.model import Model from mailman.utilities.string import expand +from public import public from sqlalchemy import create_engine diff --git a/src/mailman/database/base.py b/src/mailman/database/base.py index f57228029..586e1b20d 100644 --- a/src/mailman/database/base.py +++ b/src/mailman/database/base.py @@ -19,10 +19,10 @@ import logging -from mailman import public from mailman.config import config from mailman.interfaces.database import IDatabase from mailman.utilities.string import expand +from public import public from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from zope.interface import implementer diff --git a/src/mailman/database/factory.py b/src/mailman/database/factory.py index ff7fa59a9..4d003c39c 100644 --- a/src/mailman/database/factory.py +++ b/src/mailman/database/factory.py @@ -24,13 +24,13 @@ import alembic.command from alembic.migration import MigrationContext from alembic.script import ScriptDirectory from flufl.lock import Lock -from mailman import public 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 public import public from sqlalchemy import MetaData from zope.interface import implementer from zope.interface.verify import verifyObject diff --git a/src/mailman/database/helpers.py b/src/mailman/database/helpers.py index b1dc381df..27c870058 100644 --- a/src/mailman/database/helpers.py +++ b/src/mailman/database/helpers.py @@ -19,7 +19,7 @@ import sqlalchemy as sa -from mailman import public +from public import public @public diff --git a/src/mailman/database/model.py b/src/mailman/database/model.py index c2ee90491..098f62d4b 100644 --- a/src/mailman/database/model.py +++ b/src/mailman/database/model.py @@ -18,8 +18,8 @@ """Base class for all database classes.""" from contextlib import closing -from mailman import public from mailman.config import config +from public import public from sqlalchemy.ext.declarative import declarative_base diff --git a/src/mailman/database/mysql.py b/src/mailman/database/mysql.py index 0c0de54a9..cff16e208 100644 --- a/src/mailman/database/mysql.py +++ b/src/mailman/database/mysql.py @@ -17,9 +17,9 @@ """MySQL database support""" -from mailman import public from mailman.database.base import SABaseDatabase from mailman.database.model import Model +from public import public @public diff --git a/src/mailman/database/postgresql.py b/src/mailman/database/postgresql.py index b1095e45f..d0c208a50 100644 --- a/src/mailman/database/postgresql.py +++ b/src/mailman/database/postgresql.py @@ -17,9 +17,9 @@ """PostgreSQL database support.""" -from mailman import public from mailman.database.base import SABaseDatabase from mailman.database.model import Model +from public import public from sqlalchemy import Integer diff --git a/src/mailman/database/sqlite.py b/src/mailman/database/sqlite.py index 08700bfb2..3659efaff 100644 --- a/src/mailman/database/sqlite.py +++ b/src/mailman/database/sqlite.py @@ -19,8 +19,8 @@ import os -from mailman import public from mailman.database.base import SABaseDatabase +from public import public from urllib.parse import urlparse diff --git a/src/mailman/database/transaction.py b/src/mailman/database/transaction.py index 09dfda8e3..1b5368a39 100644 --- a/src/mailman/database/transaction.py +++ b/src/mailman/database/transaction.py @@ -18,8 +18,8 @@ """Transactional support.""" from contextlib import contextmanager -from mailman import public from mailman.config import config +from public import public @public diff --git a/src/mailman/database/types.py b/src/mailman/database/types.py index bbd040d96..10b826e7c 100644 --- a/src/mailman/database/types.py +++ b/src/mailman/database/types.py @@ -19,7 +19,7 @@ import uuid -from mailman import public +from public import public from sqlalchemy import Integer from sqlalchemy.dialects import postgresql from sqlalchemy.ext.compiler import compiles diff --git a/src/mailman/docs/__init__.py b/src/mailman/docs/__init__.py index 68c7bb4cf..939c1e6e6 100644 --- a/src/mailman/docs/__init__.py +++ b/src/mailman/docs/__init__.py @@ -17,8 +17,8 @@ """General Mailman doc tests.""" -from mailman import public from mailman.testing.layers import ConfigLayer +from public import public public(layer=ConfigLayer) diff --git a/src/mailman/email/message.py b/src/mailman/email/message.py index 26bc35b78..da2ce837f 100644 --- a/src/mailman/email/message.py +++ b/src/mailman/email/message.py @@ -29,9 +29,9 @@ import email.utils from email.header import Header from email.mime.multipart import MIMEMultipart -from mailman import public from mailman.config import config from mailman.interfaces.member import DeliveryStatus +from public import public COMMASPACE = ', ' diff --git a/src/mailman/email/validate.py b/src/mailman/email/validate.py index 99371d9e5..be8ba775a 100644 --- a/src/mailman/email/validate.py +++ b/src/mailman/email/validate.py @@ -19,10 +19,10 @@ import re -from mailman import public from mailman.interfaces.address import ( IEmailValidator, InvalidEmailAddressError) from mailman.utilities.email import split_email +from public import public from zope.interface import implementer diff --git a/src/mailman/handlers/acknowledge.py b/src/mailman/handlers/acknowledge.py index c7035de67..56608a3e9 100644 --- a/src/mailman/handlers/acknowledge.py +++ b/src/mailman/handlers/acknowledge.py @@ -20,13 +20,13 @@ This only happens if the sender has set their AcknowledgePosts attribute. """ -from mailman import public 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.interfaces.template import ITemplateLoader from mailman.utilities.string import expand, oneline +from public import public 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 efe38ec63..928f90f76 100644 --- a/src/mailman/handlers/after_delivery.py +++ b/src/mailman/handlers/after_delivery.py @@ -17,10 +17,10 @@ """Perform some bookkeeping after a successful post.""" -from mailman import public from mailman.core.i18n import _ from mailman.interfaces.handler import IHandler from mailman.utilities.datetime import now +from public import public from zope.interface import implementer diff --git a/src/mailman/handlers/avoid_duplicates.py b/src/mailman/handlers/avoid_duplicates.py index 59cb568de..7fe2136da 100644 --- a/src/mailman/handlers/avoid_duplicates.py +++ b/src/mailman/handlers/avoid_duplicates.py @@ -24,9 +24,9 @@ warning header, or pass it through, depending on the user's preferences. """ from email.utils import getaddresses, formataddr -from mailman import public from mailman.core.i18n import _ from mailman.interfaces.handler import IHandler +from public import public from zope.interface import implementer diff --git a/src/mailman/handlers/cleanse.py b/src/mailman/handlers/cleanse.py index 56add9ef7..8704491f6 100644 --- a/src/mailman/handlers/cleanse.py +++ b/src/mailman/handlers/cleanse.py @@ -20,10 +20,10 @@ import logging from email.utils import formataddr -from mailman import public from mailman.core.i18n import _ from mailman.handlers.cook_headers import uheader from mailman.interfaces.handler import IHandler +from public import public from zope.interface import implementer diff --git a/src/mailman/handlers/cleanse_dkim.py b/src/mailman/handlers/cleanse_dkim.py index 72a9c5e81..cc04858be 100644 --- a/src/mailman/handlers/cleanse_dkim.py +++ b/src/mailman/handlers/cleanse_dkim.py @@ -26,10 +26,10 @@ originating at the Mailman server for the outgoing message. """ from lazr.config import as_boolean -from mailman import public from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.handler import IHandler +from public import public from zope.interface import implementer diff --git a/src/mailman/handlers/cook_headers.py b/src/mailman/handlers/cook_headers.py index 5f203fcbd..672738bf9 100644 --- a/src/mailman/handlers/cook_headers.py +++ b/src/mailman/handlers/cook_headers.py @@ -22,11 +22,11 @@ import logging from email.header import Header from email.utils import formataddr, getaddresses, parseaddr -from mailman import public from mailman.core.i18n import _ from mailman.interfaces.handler import IHandler from mailman.interfaces.mailinglist import Personalization, ReplyToMunging from mailman.version import VERSION +from public import public from zope.interface import implementer diff --git a/src/mailman/handlers/decorate.py b/src/mailman/handlers/decorate.py index 7f5519fd0..6a16dfc76 100644 --- a/src/mailman/handlers/decorate.py +++ b/src/mailman/handlers/decorate.py @@ -22,13 +22,13 @@ import logging from email.mime.text import MIMEText from email.utils import formataddr -from mailman import public from mailman.core.i18n import _ from mailman.email.message import Message from mailman.interfaces.handler import IHandler from mailman.interfaces.mailinglist import IListArchiverSet from mailman.interfaces.template import ITemplateLoader from mailman.utilities.string import expand +from public import public from zope.component import getUtility from zope.interface import implementer diff --git a/src/mailman/handlers/file_recipients.py b/src/mailman/handlers/file_recipients.py index 95160706a..e283d936e 100644 --- a/src/mailman/handlers/file_recipients.py +++ b/src/mailman/handlers/file_recipients.py @@ -20,9 +20,9 @@ import os import errno -from mailman import public from mailman.core.i18n import _ from mailman.interfaces.handler import IHandler +from public import public from zope.interface import implementer diff --git a/src/mailman/handlers/member_recipients.py b/src/mailman/handlers/member_recipients.py index ffcecfb18..309603ef0 100644 --- a/src/mailman/handlers/member_recipients.py +++ b/src/mailman/handlers/member_recipients.py @@ -23,13 +23,13 @@ on the `recipients' attribute of the message. This attribute is used by the SendmailDeliver and BulkDeliver modules. """ -from mailman import public from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.handler import IHandler from mailman.interfaces.member import DeliveryStatus from mailman.interfaces.pipeline import RejectMessage from mailman.utilities.string import wrap +from public import public from zope.interface import implementer diff --git a/src/mailman/handlers/mime_delete.py b/src/mailman/handlers/mime_delete.py index b88c40b0c..ac56e5dd6 100644 --- a/src/mailman/handlers/mime_delete.py +++ b/src/mailman/handlers/mime_delete.py @@ -36,7 +36,6 @@ from email.mime.message import MIMEMessage from email.mime.text import MIMEText from itertools import count from lazr.config import as_boolean -from mailman import public from mailman.config import config from mailman.core.i18n import _ from mailman.email.message import OwnerNotification @@ -45,6 +44,7 @@ from mailman.interfaces.handler import IHandler from mailman.interfaces.pipeline import DiscardMessage, RejectMessage from mailman.utilities.string import oneline from mailman.version import VERSION +from public import public from string import Template from zope.interface import implementer diff --git a/src/mailman/handlers/owner_recipients.py b/src/mailman/handlers/owner_recipients.py index 9ef2568f5..4a4ee9a24 100644 --- a/src/mailman/handlers/owner_recipients.py +++ b/src/mailman/handlers/owner_recipients.py @@ -17,11 +17,11 @@ """Calculate the list owner recipients (includes moderators).""" -from mailman import public from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.handler import IHandler from mailman.interfaces.member import DeliveryStatus +from public import public from zope.interface import implementer diff --git a/src/mailman/handlers/replybot.py b/src/mailman/handlers/replybot.py index a86ccbbf3..e8b9e4fc6 100644 --- a/src/mailman/handlers/replybot.py +++ b/src/mailman/handlers/replybot.py @@ -19,7 +19,6 @@ import logging -from mailman import public from mailman.core.i18n import _ from mailman.email.message import UserNotification from mailman.interfaces.autorespond import ( @@ -28,6 +27,7 @@ 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 public import public from zope.component import getUtility from zope.interface import implementer diff --git a/src/mailman/handlers/rfc_2369.py b/src/mailman/handlers/rfc_2369.py index e042bc5e3..7f36dd057 100644 --- a/src/mailman/handlers/rfc_2369.py +++ b/src/mailman/handlers/rfc_2369.py @@ -20,12 +20,12 @@ import logging from email.utils import formataddr -from mailman import public from mailman.core.i18n import _ from mailman.handlers.cook_headers import uheader from mailman.interfaces.archiver import ArchivePolicy from mailman.interfaces.handler import IHandler from mailman.interfaces.mailinglist import IListArchiverSet +from public import public from zope.interface import implementer diff --git a/src/mailman/handlers/subject_prefix.py b/src/mailman/handlers/subject_prefix.py index 20f47fc5d..7bb1a3e5d 100644 --- a/src/mailman/handlers/subject_prefix.py +++ b/src/mailman/handlers/subject_prefix.py @@ -21,9 +21,9 @@ import re from contextlib import suppress from email.header import Header, decode_header, make_header -from mailman import public from mailman.core.i18n import _ from mailman.interfaces.handler import IHandler +from public import public from zope.interface import implementer diff --git a/src/mailman/handlers/tagger.py b/src/mailman/handlers/tagger.py index fb0a24ba5..f7c637085 100644 --- a/src/mailman/handlers/tagger.py +++ b/src/mailman/handlers/tagger.py @@ -21,9 +21,9 @@ import re import email.iterators import email.parser -from mailman import public from mailman.core.i18n import _ from mailman.interfaces.handler import IHandler +from public import public from zope.interface import implementer diff --git a/src/mailman/handlers/to_archive.py b/src/mailman/handlers/to_archive.py index d5b980ab4..d2805ea3e 100644 --- a/src/mailman/handlers/to_archive.py +++ b/src/mailman/handlers/to_archive.py @@ -17,11 +17,11 @@ """Add the message to the archives.""" -from mailman import public from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.archiver import ArchivePolicy from mailman.interfaces.handler import IHandler +from public import public from zope.interface import implementer diff --git a/src/mailman/handlers/to_digest.py b/src/mailman/handlers/to_digest.py index 671a2197c..2de911f46 100644 --- a/src/mailman/handlers/to_digest.py +++ b/src/mailman/handlers/to_digest.py @@ -19,11 +19,11 @@ import os -from mailman import public from mailman.app.digests import maybe_send_digest_now from mailman.core.i18n import _ from mailman.interfaces.handler import IHandler from mailman.utilities.mailbox import Mailbox +from public import public from zope.interface import implementer diff --git a/src/mailman/handlers/to_outgoing.py b/src/mailman/handlers/to_outgoing.py index b9fae912c..4726973f2 100644 --- a/src/mailman/handlers/to_outgoing.py +++ b/src/mailman/handlers/to_outgoing.py @@ -22,10 +22,10 @@ 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 mailman import public from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.handler import IHandler +from public import public from zope.interface import implementer diff --git a/src/mailman/handlers/to_usenet.py b/src/mailman/handlers/to_usenet.py index 4bfa00c5f..f5e01ef6e 100644 --- a/src/mailman/handlers/to_usenet.py +++ b/src/mailman/handlers/to_usenet.py @@ -19,10 +19,10 @@ import logging -from mailman import public from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.handler import IHandler +from public import public from zope.interface import implementer diff --git a/src/mailman/interfaces/action.py b/src/mailman/interfaces/action.py index dcff41cbd..08dc9c5ca 100644 --- a/src/mailman/interfaces/action.py +++ b/src/mailman/interfaces/action.py @@ -18,7 +18,7 @@ """Message actions.""" from enum import Enum -from mailman import public +from public import public @public diff --git a/src/mailman/interfaces/address.py b/src/mailman/interfaces/address.py index 8a1ac81d5..d460e96ca 100644 --- a/src/mailman/interfaces/address.py +++ b/src/mailman/interfaces/address.py @@ -17,8 +17,8 @@ """Interface for email address related information.""" -from mailman import public from mailman.interfaces.errors import MailmanError +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/api.py b/src/mailman/interfaces/api.py index 3ba158b35..e2c6645db 100644 --- a/src/mailman/interfaces/api.py +++ b/src/mailman/interfaces/api.py @@ -17,7 +17,7 @@ """REST web service API context.""" -from mailman import public +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/archiver.py b/src/mailman/interfaces/archiver.py index cd10b22e3..eb9227dd8 100644 --- a/src/mailman/interfaces/archiver.py +++ b/src/mailman/interfaces/archiver.py @@ -18,7 +18,7 @@ """Interface for archiving schemes.""" from enum import Enum -from mailman import public +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/autorespond.py b/src/mailman/interfaces/autorespond.py index 645a6c76b..b9f3f0e3a 100644 --- a/src/mailman/interfaces/autorespond.py +++ b/src/mailman/interfaces/autorespond.py @@ -19,7 +19,7 @@ from datetime import timedelta from enum import Enum -from mailman import public +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/bans.py b/src/mailman/interfaces/bans.py index 055ad69a3..59928ff8e 100644 --- a/src/mailman/interfaces/bans.py +++ b/src/mailman/interfaces/bans.py @@ -17,7 +17,7 @@ """Manager of email address bans.""" -from mailman import public +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/bounce.py b/src/mailman/interfaces/bounce.py index 0e39ca3b9..368657c47 100644 --- a/src/mailman/interfaces/bounce.py +++ b/src/mailman/interfaces/bounce.py @@ -18,7 +18,7 @@ """Interface to bounce detection components.""" from enum import Enum -from mailman import public +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/cache.py b/src/mailman/interfaces/cache.py index 74fb2084a..39d3e7c73 100644 --- a/src/mailman/interfaces/cache.py +++ b/src/mailman/interfaces/cache.py @@ -17,7 +17,7 @@ """File caches.""" -from mailman import public +from public import public from zope.interface import Interface diff --git a/src/mailman/interfaces/chain.py b/src/mailman/interfaces/chain.py index 0af9bf8e5..146abafd7 100644 --- a/src/mailman/interfaces/chain.py +++ b/src/mailman/interfaces/chain.py @@ -18,7 +18,7 @@ """Interfaces describing the basics of chains and links.""" from enum import Enum -from mailman import public +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/command.py b/src/mailman/interfaces/command.py index 95719b504..be3fd5bb2 100644 --- a/src/mailman/interfaces/command.py +++ b/src/mailman/interfaces/command.py @@ -18,7 +18,7 @@ """Interfaces defining email commands.""" from enum import Enum -from mailman import public +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/configuration.py b/src/mailman/interfaces/configuration.py index 2e38e614c..b4f9d696c 100644 --- a/src/mailman/interfaces/configuration.py +++ b/src/mailman/interfaces/configuration.py @@ -17,8 +17,8 @@ """Configuration system interface.""" -from mailman import public from mailman.interfaces.errors import MailmanError +from public import public from zope.interface import Interface diff --git a/src/mailman/interfaces/database.py b/src/mailman/interfaces/database.py index 1f658c556..052c7d4bb 100644 --- a/src/mailman/interfaces/database.py +++ b/src/mailman/interfaces/database.py @@ -17,8 +17,8 @@ """Interfaces for database interaction.""" -from mailman import public from mailman.interfaces.errors import MailmanError +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/digests.py b/src/mailman/interfaces/digests.py index cff838284..fd38b374a 100644 --- a/src/mailman/interfaces/digests.py +++ b/src/mailman/interfaces/digests.py @@ -18,7 +18,7 @@ """One last digest.""" from enum import Enum -from mailman import public +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/domain.py b/src/mailman/interfaces/domain.py index b1940f400..6318e9551 100644 --- a/src/mailman/interfaces/domain.py +++ b/src/mailman/interfaces/domain.py @@ -17,8 +17,8 @@ """Interface representing domains.""" -from mailman import public from mailman.interfaces.errors import MailmanError +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/errors.py b/src/mailman/interfaces/errors.py index dbf74c035..b21d07418 100644 --- a/src/mailman/interfaces/errors.py +++ b/src/mailman/interfaces/errors.py @@ -22,7 +22,7 @@ components. More specific exceptions will be located in the relevant interfaces. """ -from mailman import public +from public import public @public diff --git a/src/mailman/interfaces/handler.py b/src/mailman/interfaces/handler.py index f6b2aea66..29061c369 100644 --- a/src/mailman/interfaces/handler.py +++ b/src/mailman/interfaces/handler.py @@ -17,7 +17,7 @@ """Interface describing a pipeline handler.""" -from mailman import public +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/languages.py b/src/mailman/interfaces/languages.py index b45083575..18f928be9 100644 --- a/src/mailman/interfaces/languages.py +++ b/src/mailman/interfaces/languages.py @@ -17,7 +17,7 @@ """Interfaces for managing languages.""" -from mailman import public +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/listmanager.py b/src/mailman/interfaces/listmanager.py index 2c7208496..dde23ab1f 100644 --- a/src/mailman/interfaces/listmanager.py +++ b/src/mailman/interfaces/listmanager.py @@ -17,8 +17,8 @@ """Interface for list storage, deleting, and finding.""" -from mailman import public from mailman.interfaces.errors import MailmanError +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/mailinglist.py b/src/mailman/interfaces/mailinglist.py index 877016f41..359cd5069 100644 --- a/src/mailman/interfaces/mailinglist.py +++ b/src/mailman/interfaces/mailinglist.py @@ -18,8 +18,8 @@ """Interface for a mailing list.""" from enum import Enum -from mailman import public from mailman.interfaces.member import MemberRole +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/member.py b/src/mailman/interfaces/member.py index 094652521..a2a9c7cbd 100644 --- a/src/mailman/interfaces/member.py +++ b/src/mailman/interfaces/member.py @@ -18,8 +18,8 @@ """Interface describing the basics of a member.""" from enum import Enum -from mailman import public from mailman.interfaces.errors import MailmanError +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/messages.py b/src/mailman/interfaces/messages.py index 2ea2aa312..29f92fdc7 100644 --- a/src/mailman/interfaces/messages.py +++ b/src/mailman/interfaces/messages.py @@ -17,7 +17,7 @@ """The message storage service.""" -from mailman import public +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/mime.py b/src/mailman/interfaces/mime.py index c1a6e050f..94a98b58e 100644 --- a/src/mailman/interfaces/mime.py +++ b/src/mailman/interfaces/mime.py @@ -18,7 +18,7 @@ """MIME content filtering.""" from enum import Enum -from mailman import public +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/mlistrequest.py b/src/mailman/interfaces/mlistrequest.py index 45712ed86..ca83f77c1 100644 --- a/src/mailman/interfaces/mlistrequest.py +++ b/src/mailman/interfaces/mlistrequest.py @@ -17,7 +17,7 @@ """Interface for a web request accessing a mailing list.""" -from mailman import public +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/mta.py b/src/mailman/interfaces/mta.py index 47436ead5..2917c0f79 100644 --- a/src/mailman/interfaces/mta.py +++ b/src/mailman/interfaces/mta.py @@ -17,8 +17,8 @@ """Interface for mail transport agent integration.""" -from mailman import public from mailman.interfaces.errors import MailmanError +from public import public from zope.interface import Interface diff --git a/src/mailman/interfaces/nntp.py b/src/mailman/interfaces/nntp.py index 72a74fe90..2bb9c45b1 100644 --- a/src/mailman/interfaces/nntp.py +++ b/src/mailman/interfaces/nntp.py @@ -18,7 +18,7 @@ """NNTP and newsgroup interfaces.""" from enum import Enum -from mailman import public +from public import public @public diff --git a/src/mailman/interfaces/pending.py b/src/mailman/interfaces/pending.py index cf92fed9e..c630e2133 100644 --- a/src/mailman/interfaces/pending.py +++ b/src/mailman/interfaces/pending.py @@ -22,7 +22,7 @@ maps these events to a unique hash that can be used as a token for end user confirmation. """ -from mailman import public +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/pipeline.py b/src/mailman/interfaces/pipeline.py index cdef6a768..a41e9b6f7 100644 --- a/src/mailman/interfaces/pipeline.py +++ b/src/mailman/interfaces/pipeline.py @@ -17,7 +17,7 @@ """Interface for describing pipelines.""" -from mailman import public +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/preferences.py b/src/mailman/interfaces/preferences.py index 024fdea3c..0d830bdd7 100644 --- a/src/mailman/interfaces/preferences.py +++ b/src/mailman/interfaces/preferences.py @@ -17,7 +17,7 @@ """Interface for preferences.""" -from mailman import public +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/requests.py b/src/mailman/interfaces/requests.py index 3098772a9..8b316e79f 100644 --- a/src/mailman/interfaces/requests.py +++ b/src/mailman/interfaces/requests.py @@ -22,7 +22,7 @@ moderators, such as subscription requests and held messages. """ from enum import Enum -from mailman import public +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/roster.py b/src/mailman/interfaces/roster.py index 2993e4fc4..bf8489e33 100644 --- a/src/mailman/interfaces/roster.py +++ b/src/mailman/interfaces/roster.py @@ -17,7 +17,7 @@ """Interface for a roster of members.""" -from mailman import public +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/rules.py b/src/mailman/interfaces/rules.py index 9f5f1365e..cca8cf565 100644 --- a/src/mailman/interfaces/rules.py +++ b/src/mailman/interfaces/rules.py @@ -17,7 +17,7 @@ """Interface describing the basics of rules.""" -from mailman import public +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/runner.py b/src/mailman/interfaces/runner.py index e39efb097..06caf0e95 100644 --- a/src/mailman/interfaces/runner.py +++ b/src/mailman/interfaces/runner.py @@ -17,7 +17,7 @@ """Interface for runners.""" -from mailman import public +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/styles.py b/src/mailman/interfaces/styles.py index a183933f7..e4b5288c1 100644 --- a/src/mailman/interfaces/styles.py +++ b/src/mailman/interfaces/styles.py @@ -17,8 +17,8 @@ """Interfaces for list styles.""" -from mailman import public from mailman.interfaces.errors import MailmanError +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/subscriptions.py b/src/mailman/interfaces/subscriptions.py index 284261de5..dc3563def 100644 --- a/src/mailman/interfaces/subscriptions.py +++ b/src/mailman/interfaces/subscriptions.py @@ -19,9 +19,9 @@ from collections import namedtuple from enum import Enum -from mailman import public from mailman.interfaces.errors import MailmanError from mailman.interfaces.member import DeliveryMode, MembershipError +from public import public from zope.interface import Interface diff --git a/src/mailman/interfaces/switchboard.py b/src/mailman/interfaces/switchboard.py index 4428f4b12..d9e2f9aab 100644 --- a/src/mailman/interfaces/switchboard.py +++ b/src/mailman/interfaces/switchboard.py @@ -17,7 +17,7 @@ """Interface for switchboards.""" -from mailman import public +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/system.py b/src/mailman/interfaces/system.py index 1b0a9a2de..440611537 100644 --- a/src/mailman/interfaces/system.py +++ b/src/mailman/interfaces/system.py @@ -17,7 +17,7 @@ """System information.""" -from mailman import public +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/template.py b/src/mailman/interfaces/template.py index 24f956b78..6b6bcd7a3 100644 --- a/src/mailman/interfaces/template.py +++ b/src/mailman/interfaces/template.py @@ -17,7 +17,7 @@ """Template downloader with cache.""" -from mailman import public +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/user.py b/src/mailman/interfaces/user.py index a6c470b6e..e103f38fd 100644 --- a/src/mailman/interfaces/user.py +++ b/src/mailman/interfaces/user.py @@ -17,8 +17,8 @@ """Interface describing the basics of a user.""" -from mailman import public from mailman.interfaces.address import AddressError +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/usermanager.py b/src/mailman/interfaces/usermanager.py index 87d4bf6e2..4cd8af7aa 100644 --- a/src/mailman/interfaces/usermanager.py +++ b/src/mailman/interfaces/usermanager.py @@ -17,7 +17,7 @@ """Interface describing the user management service.""" -from mailman import public +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/interfaces/workflow.py b/src/mailman/interfaces/workflow.py index 9846f4683..b0b5a23da 100644 --- a/src/mailman/interfaces/workflow.py +++ b/src/mailman/interfaces/workflow.py @@ -17,7 +17,7 @@ """Interfaces describing the state of a workflow.""" -from mailman import public +from public import public from zope.interface import Attribute, Interface diff --git a/src/mailman/languages/language.py b/src/mailman/languages/language.py index 014852c5c..afe217048 100644 --- a/src/mailman/languages/language.py +++ b/src/mailman/languages/language.py @@ -18,8 +18,8 @@ """The representation of a language.""" -from mailman import public from mailman.interfaces.languages import ILanguage +from public import public from zope.interface import implementer diff --git a/src/mailman/languages/manager.py b/src/mailman/languages/manager.py index 9832eb3eb..5e56ec0e0 100644 --- a/src/mailman/languages/manager.py +++ b/src/mailman/languages/manager.py @@ -17,10 +17,10 @@ """Language manager.""" -from mailman import public from mailman.interfaces.configuration import ConfigurationUpdatedEvent from mailman.interfaces.languages import ILanguageManager from mailman.languages.language import Language +from public import public 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 a31e9a429..63896c728 100644 --- a/src/mailman/model/address.py +++ b/src/mailman/model/address.py @@ -18,12 +18,12 @@ """Model for addresses.""" from email.utils import formataddr -from mailman import public from mailman.database.model import Model from mailman.database.types import SAUnicode from mailman.interfaces.address import ( AddressVerificationEvent, IAddress, IEmailValidator) from mailman.utilities.datetime import now +from public import public from sqlalchemy import Column, DateTime, ForeignKey, Integer from sqlalchemy.orm import backref, relationship from zope.component import getUtility diff --git a/src/mailman/model/autorespond.py b/src/mailman/model/autorespond.py index 20c19889f..e9509c4f8 100644 --- a/src/mailman/model/autorespond.py +++ b/src/mailman/model/autorespond.py @@ -17,13 +17,13 @@ """Autoresponder records.""" -from mailman import public 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 public import public 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 c8d43c5ae..1c4cbde8c 100644 --- a/src/mailman/model/bans.py +++ b/src/mailman/model/bans.py @@ -19,12 +19,12 @@ import re -from mailman import public from mailman.database.model import Model from mailman.database.transaction import dbconnection from mailman.database.types import SAUnicode from mailman.interfaces.bans import IBan, IBanManager from mailman.utilities.queries import QuerySequence +from public import public from sqlalchemy import Column, Integer from zope.interface import implementer diff --git a/src/mailman/model/bounce.py b/src/mailman/model/bounce.py index 856d91f20..6db55a3c7 100644 --- a/src/mailman/model/bounce.py +++ b/src/mailman/model/bounce.py @@ -17,13 +17,13 @@ """Bounce support.""" -from mailman import public from mailman.database.model import Model from mailman.database.transaction import dbconnection from mailman.database.types import Enum, SAUnicode from mailman.interfaces.bounce import ( BounceContext, IBounceEvent, IBounceProcessor) from mailman.utilities.datetime import now +from public import public from sqlalchemy import Boolean, Column, DateTime, Integer from zope.interface import implementer diff --git a/src/mailman/model/cache.py b/src/mailman/model/cache.py index 6be5fbc9d..d1ef9f05c 100644 --- a/src/mailman/model/cache.py +++ b/src/mailman/model/cache.py @@ -22,13 +22,13 @@ import hashlib from contextlib import ExitStack from lazr.config import as_timedelta -from mailman import public from mailman.config import config from mailman.database.model import Model from mailman.database.transaction import dbconnection from mailman.database.types import SAUnicode from mailman.interfaces.cache import ICacheManager from mailman.utilities.datetime import now +from public import public from sqlalchemy import Boolean, Column, DateTime, Integer from zope.interface import implementer diff --git a/src/mailman/model/digests.py b/src/mailman/model/digests.py index ac49249cc..a0daaebbc 100644 --- a/src/mailman/model/digests.py +++ b/src/mailman/model/digests.py @@ -17,11 +17,11 @@ """One last digest.""" -from mailman import public 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 public import public from sqlalchemy import Column, ForeignKey, Integer 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 5bb569585..2622ba80b 100644 --- a/src/mailman/model/domain.py +++ b/src/mailman/model/domain.py @@ -17,7 +17,6 @@ """Domains.""" -from mailman import public from mailman.database.model import Model from mailman.database.transaction import dbconnection from mailman.database.types import SAUnicode @@ -27,6 +26,7 @@ from mailman.interfaces.domain import ( from mailman.interfaces.user import IUser from mailman.interfaces.usermanager import IUserManager from mailman.model.mailinglist import MailingList +from public import public from sqlalchemy import Column, Integer from sqlalchemy.orm import relationship from zope.component import getUtility diff --git a/src/mailman/model/language.py b/src/mailman/model/language.py index 596e580e1..c762b9715 100644 --- a/src/mailman/model/language.py +++ b/src/mailman/model/language.py @@ -17,10 +17,10 @@ """Model for languages.""" -from mailman import public from mailman.database.model import Model from mailman.database.types import SAUnicode from mailman.interfaces.languages import ILanguage +from public import public from sqlalchemy import Column, Integer from zope.interface import implementer diff --git a/src/mailman/model/listmanager.py b/src/mailman/model/listmanager.py index e2519af5b..bd07e6c27 100644 --- a/src/mailman/model/listmanager.py +++ b/src/mailman/model/listmanager.py @@ -17,7 +17,6 @@ """A mailing list manager.""" -from mailman import public from mailman.database.transaction import dbconnection from mailman.interfaces.address import InvalidEmailAddressError from mailman.interfaces.listmanager import ( @@ -30,6 +29,7 @@ from mailman.model.mailinglist import ( from mailman.model.mime import ContentFilter from mailman.utilities.datetime import now from mailman.utilities.queries import QuerySequence +from public import public 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 eec58ad04..bd6538aaf 100644 --- a/src/mailman/model/mailinglist.py +++ b/src/mailman/model/mailinglist.py @@ -19,7 +19,6 @@ import os -from mailman import public from mailman.config import config from mailman.database.model import Model from mailman.database.transaction import dbconnection @@ -49,6 +48,7 @@ from mailman.model.mime import ContentFilter from mailman.model.preferences import Preferences from mailman.utilities.filesystem import makedirs from mailman.utilities.string import expand +from public import public from sqlalchemy import ( Boolean, Column, DateTime, Float, ForeignKey, Integer, Interval, LargeBinary, PickleType) diff --git a/src/mailman/model/member.py b/src/mailman/model/member.py index aacaa73b6..93d0c7feb 100644 --- a/src/mailman/model/member.py +++ b/src/mailman/model/member.py @@ -17,7 +17,6 @@ """Model for members.""" -from mailman import public from mailman.core.constants import system_preferences from mailman.database.model import Model from mailman.database.transaction import dbconnection @@ -30,6 +29,7 @@ from mailman.interfaces.member import ( from mailman.interfaces.user import IUser, UnverifiedAddressError from mailman.interfaces.usermanager import IUserManager from mailman.utilities.uid import UIDFactory +from public import public from sqlalchemy import Column, ForeignKey, Integer from sqlalchemy.orm import relationship from zope.component import getUtility diff --git a/src/mailman/model/message.py b/src/mailman/model/message.py index 576baab5c..233e8b5b5 100644 --- a/src/mailman/model/message.py +++ b/src/mailman/model/message.py @@ -17,11 +17,11 @@ """Model for messages.""" -from mailman import public from mailman.database.model import Model from mailman.database.transaction import dbconnection from mailman.database.types import SAUnicode from mailman.interfaces.messages import IMessage +from public import public from sqlalchemy import Column, Integer from zope.interface import implementer diff --git a/src/mailman/model/messagestore.py b/src/mailman/model/messagestore.py index 8949c56c6..dc037c44f 100644 --- a/src/mailman/model/messagestore.py +++ b/src/mailman/model/messagestore.py @@ -21,13 +21,13 @@ import os import errno import pickle -from mailman import public from mailman.config import config from mailman.database.transaction import dbconnection from mailman.interfaces.messages import IMessageStore from mailman.model.message import Message from mailman.utilities.email import add_message_hash from mailman.utilities.filesystem import makedirs, safe_remove +from public import public from zope.interface import implementer diff --git a/src/mailman/model/mime.py b/src/mailman/model/mime.py index da5f11f05..a21cfb35d 100644 --- a/src/mailman/model/mime.py +++ b/src/mailman/model/mime.py @@ -17,10 +17,10 @@ """The content filter.""" -from mailman import public from mailman.database.model import Model from mailman.database.types import Enum, SAUnicode from mailman.interfaces.mime import FilterType, IContentFilter +from public import public from sqlalchemy import Column, ForeignKey, Integer 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 7e7f0b2eb..5889f9cc1 100644 --- a/src/mailman/model/pending.py +++ b/src/mailman/model/pending.py @@ -20,7 +20,6 @@ import json from lazr.config import as_timedelta -from mailman import public from mailman.config import config from mailman.database.model import Model from mailman.database.transaction import dbconnection @@ -29,6 +28,7 @@ from mailman.interfaces.pending import ( IPendable, IPended, IPendedKeyValue, IPendings) from mailman.utilities.datetime import now from mailman.utilities.uid import TokenFactory +from public import public from sqlalchemy import Column, DateTime, ForeignKey, Integer, and_ from sqlalchemy.orm import aliased, relationship from zope.interface import implementer diff --git a/src/mailman/model/preferences.py b/src/mailman/model/preferences.py index 366ed97c2..4e57ce659 100644 --- a/src/mailman/model/preferences.py +++ b/src/mailman/model/preferences.py @@ -17,13 +17,13 @@ """Model for preferences.""" -from mailman import public from mailman.database.model import Model from mailman.database.transaction import dbconnection from mailman.database.types import Enum, SAUnicode from mailman.interfaces.languages import ILanguageManager from mailman.interfaces.member import DeliveryMode, DeliveryStatus from mailman.interfaces.preferences import IPreferences +from public import public from sqlalchemy import Boolean, Column, Integer 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 0f0f96dfe..04717f49a 100644 --- a/src/mailman/model/requests.py +++ b/src/mailman/model/requests.py @@ -18,7 +18,6 @@ """Implementations of the pending requests interfaces.""" from datetime import timedelta -from mailman import public from mailman.database.model import Model from mailman.database.transaction import dbconnection from mailman.database.types import Enum, SAUnicode @@ -26,6 +25,7 @@ from mailman.interfaces.pending import IPendable, IPendings from mailman.interfaces.requests import IListRequests, RequestType from mailman.utilities.queries import QuerySequence from pickle import dumps, loads +from public import public from sqlalchemy import Column, ForeignKey, Integer from sqlalchemy.orm import relationship from zope.component import getUtility diff --git a/src/mailman/model/roster.py b/src/mailman/model/roster.py index 5dc0423b2..d3dc1b661 100644 --- a/src/mailman/model/roster.py +++ b/src/mailman/model/roster.py @@ -22,12 +22,12 @@ the ones that fit a particular role. These are used as the member, owner, moderator, and administrator roster filters. """ -from mailman import public 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 public import public from sqlalchemy import or_ from zope.interface import implementer diff --git a/src/mailman/model/subscriptions.py b/src/mailman/model/subscriptions.py index d3fdc3a8a..485524a68 100644 --- a/src/mailman/model/subscriptions.py +++ b/src/mailman/model/subscriptions.py @@ -17,7 +17,6 @@ """Subscription services.""" -from mailman import public from mailman.app.membership import delete_member from mailman.database.transaction import dbconnection from mailman.interfaces.listmanager import IListManager, NoSuchListError @@ -30,6 +29,7 @@ from mailman.model.member import Member from mailman.model.user import User from mailman.utilities.queries import QuerySequence from operator import attrgetter +from public import public from sqlalchemy.orm.exc import MultipleResultsFound, NoResultFound from zope.component import getUtility from zope.interface import implementer diff --git a/src/mailman/model/template.py b/src/mailman/model/template.py index b09c644bb..eb776293f 100644 --- a/src/mailman/model/template.py +++ b/src/mailman/model/template.py @@ -19,7 +19,6 @@ import logging -from mailman import public from mailman.config import config from mailman.database.model import Model from mailman.database.transaction import dbconnection @@ -32,6 +31,7 @@ from mailman.interfaces.template import ( from mailman.utilities import protocols from mailman.utilities.i18n import find from mailman.utilities.string import expand +from public import public from requests import HTTPError from sqlalchemy import Column, Integer from urllib.error import URLError diff --git a/src/mailman/model/uid.py b/src/mailman/model/uid.py index 2cf61668f..9daefa318 100644 --- a/src/mailman/model/uid.py +++ b/src/mailman/model/uid.py @@ -17,10 +17,10 @@ """Unique IDs.""" -from mailman import public from mailman.database.model import Model from mailman.database.transaction import dbconnection from mailman.database.types import UUID +from public import public from sqlalchemy import Column, Integer diff --git a/src/mailman/model/user.py b/src/mailman/model/user.py index edda2a9e8..dc9c097d5 100644 --- a/src/mailman/model/user.py +++ b/src/mailman/model/user.py @@ -17,7 +17,6 @@ """Model for users.""" -from mailman import public from mailman.database.model import Model from mailman.database.transaction import dbconnection from mailman.database.types import SAUnicode, UUID @@ -31,6 +30,7 @@ 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 UIDFactory +from public import public from sqlalchemy import ( Boolean, Column, DateTime, ForeignKey, Integer) from sqlalchemy.orm import backref, relationship diff --git a/src/mailman/model/usermanager.py b/src/mailman/model/usermanager.py index fba8e2ec0..2a62e0cf1 100644 --- a/src/mailman/model/usermanager.py +++ b/src/mailman/model/usermanager.py @@ -17,7 +17,6 @@ """A user manager.""" -from mailman import public from mailman.database.transaction import dbconnection from mailman.interfaces.address import ExistingAddressError from mailman.interfaces.usermanager import IUserManager @@ -27,6 +26,7 @@ from mailman.model.digests import OneLastDigest from mailman.model.member import Member from mailman.model.preferences import Preferences from mailman.model.user import User +from public import public from zope.interface import implementer diff --git a/src/mailman/model/workflow.py b/src/mailman/model/workflow.py index 53763a0e8..8b782b5e0 100644 --- a/src/mailman/model/workflow.py +++ b/src/mailman/model/workflow.py @@ -17,11 +17,11 @@ """Model for workflow states.""" -from mailman import public from mailman.database.model import Model from mailman.database.transaction import dbconnection from mailman.database.types import SAUnicode from mailman.interfaces.workflow import IWorkflowState, IWorkflowStateManager +from public import public from sqlalchemy import Column from zope.interface import implementer diff --git a/src/mailman/mta/aliases.py b/src/mailman/mta/aliases.py index dc434c613..889375c04 100644 --- a/src/mailman/mta/aliases.py +++ b/src/mailman/mta/aliases.py @@ -17,8 +17,8 @@ """Utility for generating all the aliases of a mailing list.""" -from mailman import public from mailman.interfaces.mta import IMailTransportAgentAliases +from public import public from zope.interface import implementer diff --git a/src/mailman/mta/base.py b/src/mailman/mta/base.py index 679faefd5..4f5bb1d58 100644 --- a/src/mailman/mta/base.py +++ b/src/mailman/mta/base.py @@ -22,10 +22,10 @@ import socket import logging import smtplib -from mailman import public from mailman.config import config from mailman.interfaces.mta import IMailTransportAgentDelivery from mailman.mta.connection import Connection +from public import public from zope.interface import implementer diff --git a/src/mailman/mta/bulk.py b/src/mailman/mta/bulk.py index 1741e0d4c..91b04957a 100644 --- a/src/mailman/mta/bulk.py +++ b/src/mailman/mta/bulk.py @@ -17,8 +17,8 @@ """Bulk message delivery.""" -from mailman import public from mailman.mta.base import BaseDelivery +from public import public # A mapping of top-level domains to bucket numbers. The zeroth bucket is diff --git a/src/mailman/mta/connection.py b/src/mailman/mta/connection.py index 44cc31d86..318bc5e8e 100644 --- a/src/mailman/mta/connection.py +++ b/src/mailman/mta/connection.py @@ -22,8 +22,8 @@ import smtplib from contextlib import suppress from lazr.config import as_boolean -from mailman import public from mailman.config import config +from public import public log = logging.getLogger('mailman.smtp') diff --git a/src/mailman/mta/decorating.py b/src/mailman/mta/decorating.py index e9d6f5785..32db852da 100644 --- a/src/mailman/mta/decorating.py +++ b/src/mailman/mta/decorating.py @@ -17,9 +17,9 @@ """Individualized delivery with header/footer decorations.""" -from mailman import public from mailman.config import config from mailman.mta.verp import VERPDelivery +from public import public @public diff --git a/src/mailman/mta/deliver.py b/src/mailman/mta/deliver.py index a5a4e2433..7624979bf 100644 --- a/src/mailman/mta/deliver.py +++ b/src/mailman/mta/deliver.py @@ -20,7 +20,6 @@ import time import logging -from mailman import public from mailman.config import config from mailman.interfaces.mailinglist import Personalization from mailman.interfaces.mta import SomeRecipientsFailed @@ -30,6 +29,7 @@ from mailman.mta.decorating import DecoratingMixin from mailman.mta.personalized import PersonalizedMixin from mailman.mta.verp import VERPMixin from mailman.utilities.string import expand +from public import public COMMA = ',' diff --git a/src/mailman/mta/exim4.py b/src/mailman/mta/exim4.py index 7151768a8..ec2e77708 100644 --- a/src/mailman/mta/exim4.py +++ b/src/mailman/mta/exim4.py @@ -17,8 +17,8 @@ """Creation/deletion hooks for the Exim4 MTA.""" -from mailman import public from mailman.interfaces.mta import IMailTransportAgentLifecycle +from public import public from zope.interface import implementer diff --git a/src/mailman/mta/null.py b/src/mailman/mta/null.py index 165c5f0ee..e5368e689 100644 --- a/src/mailman/mta/null.py +++ b/src/mailman/mta/null.py @@ -20,8 +20,8 @@ Exim one example of an MTA that Just Works. """ -from mailman import public from mailman.interfaces.mta import IMailTransportAgentLifecycle +from public import public from zope.interface import implementer diff --git a/src/mailman/mta/personalized.py b/src/mailman/mta/personalized.py index 7cfbfff43..01ba686f3 100644 --- a/src/mailman/mta/personalized.py +++ b/src/mailman/mta/personalized.py @@ -19,10 +19,10 @@ from email.header import Header from email.utils import formataddr -from mailman import public from mailman.interfaces.mailinglist import Personalization from mailman.interfaces.usermanager import IUserManager from mailman.mta.verp import VERPDelivery +from public import public from zope.component import getUtility diff --git a/src/mailman/mta/postfix.py b/src/mailman/mta/postfix.py index ff4b92117..07bf17a22 100644 --- a/src/mailman/mta/postfix.py +++ b/src/mailman/mta/postfix.py @@ -21,7 +21,6 @@ import os import logging from flufl.lock import Lock -from mailman import public from mailman.config import config from mailman.config.config import external_configuration from mailman.interfaces.listmanager import IListManager @@ -29,6 +28,7 @@ from mailman.interfaces.mta import ( IMailTransportAgentAliases, IMailTransportAgentLifecycle) from mailman.utilities.datetime import now from operator import attrgetter +from public import public from zope.component import getUtility from zope.interface import implementer diff --git a/src/mailman/mta/verp.py b/src/mailman/mta/verp.py index 8ede6cb67..6ce80c795 100644 --- a/src/mailman/mta/verp.py +++ b/src/mailman/mta/verp.py @@ -19,11 +19,11 @@ import logging -from mailman import public from mailman.config import config from mailman.mta.base import IndividualDelivery from mailman.utilities.email import split_email from mailman.utilities.string import expand +from public import public DOT = '.' diff --git a/src/mailman/rest/addresses.py b/src/mailman/rest/addresses.py index f0cb8edef..8e8b543b9 100644 --- a/src/mailman/rest/addresses.py +++ b/src/mailman/rest/addresses.py @@ -17,7 +17,6 @@ """REST for addresses.""" -from mailman import public from mailman.interfaces.address import ( ExistingAddressError, InvalidEmailAddressError) from mailman.interfaces.usermanager import IUserManager @@ -29,6 +28,7 @@ from mailman.rest.preferences import Preferences from mailman.rest.validator import Validator from mailman.utilities.datetime import now from operator import attrgetter +from public import public from zope.component import getUtility diff --git a/src/mailman/rest/bans.py b/src/mailman/rest/bans.py index ce575885b..981c1b549 100644 --- a/src/mailman/rest/bans.py +++ b/src/mailman/rest/bans.py @@ -17,12 +17,12 @@ """REST for banned emails.""" -from mailman import public from mailman.interfaces.bans import IBanManager from mailman.rest.helpers import ( CollectionMixin, bad_request, child, created, etag, no_content, not_found, okay) from mailman.rest.validator import Validator +from public import public class _BannedBase: diff --git a/src/mailman/rest/docs/__init__.py b/src/mailman/rest/docs/__init__.py index 5a039ac3d..dc27a6525 100644 --- a/src/mailman/rest/docs/__init__.py +++ b/src/mailman/rest/docs/__init__.py @@ -20,9 +20,9 @@ import threading from http.server import BaseHTTPRequestHandler, HTTPServer -from mailman import public from mailman.testing.helpers import wait_for_webservice from mailman.testing.layers import RESTLayer +from public import public # New in Python 3.5. diff --git a/src/mailman/rest/domains.py b/src/mailman/rest/domains.py index c6b8daa7c..ce96204b4 100644 --- a/src/mailman/rest/domains.py +++ b/src/mailman/rest/domains.py @@ -17,7 +17,6 @@ """REST for domains.""" -from mailman import public from mailman.interfaces.domain import ( BadDomainSpecificationError, IDomainManager) from mailman.rest.helpers import ( @@ -27,6 +26,7 @@ from mailman.rest.lists import ListsForDomain from mailman.rest.uris import ADomainURI, AllDomainURIs from mailman.rest.users import ListOfDomainOwners, OwnersForDomain from mailman.rest.validator import Validator, list_of_strings_validator +from public import public from zope.component import getUtility diff --git a/src/mailman/rest/header_matches.py b/src/mailman/rest/header_matches.py index 25c519ef3..13dad97ad 100644 --- a/src/mailman/rest/header_matches.py +++ b/src/mailman/rest/header_matches.py @@ -17,13 +17,13 @@ """REST API for a mailing list's header matches.""" -from mailman import public from mailman.interfaces.action import Action from mailman.interfaces.mailinglist import IHeaderMatchList from mailman.rest.helpers import ( CollectionMixin, bad_request, child, created, etag, no_content, not_found, okay) from mailman.rest.validator import Validator, enum_validator +from public import public def lowercase(value): diff --git a/src/mailman/rest/helpers.py b/src/mailman/rest/helpers.py index a4b072408..6b45eb78a 100644 --- a/src/mailman/rest/helpers.py +++ b/src/mailman/rest/helpers.py @@ -27,9 +27,9 @@ from email.header import Header from email.message import Message from enum import Enum from lazr.config import as_boolean -from mailman import public from mailman.config import config from pprint import pformat +from public import public class ExtendedEncoder(json.JSONEncoder): diff --git a/src/mailman/rest/listconf.py b/src/mailman/rest/listconf.py index 861e54dd1..94598b0ab 100644 --- a/src/mailman/rest/listconf.py +++ b/src/mailman/rest/listconf.py @@ -18,7 +18,6 @@ """Mailing list configuration via REST API.""" from lazr.config import as_boolean, as_timedelta -from mailman import public from mailman.config import config from mailman.interfaces.action import Action from mailman.interfaces.archiver import ArchivePolicy @@ -32,6 +31,7 @@ from mailman.rest.helpers import ( from mailman.rest.validator import ( PatchValidator, ReadOnlyPATCHRequestError, UnknownPATCHRequestError, Validator, enum_validator, list_of_strings_validator) +from public import public from zope.component import getUtility diff --git a/src/mailman/rest/lists.py b/src/mailman/rest/lists.py index 1fdf595fb..cdebdebd9 100644 --- a/src/mailman/rest/lists.py +++ b/src/mailman/rest/lists.py @@ -18,7 +18,6 @@ """REST for mailing lists.""" from lazr.config import as_boolean -from mailman import public from mailman.app.digests import ( bump_digest_number_and_volume, maybe_send_digest_now) from mailman.app.lifecycle import create_list, remove_list @@ -41,6 +40,7 @@ from mailman.rest.post_moderation import HeldMessages from mailman.rest.sub_moderation import SubscriptionRequests from mailman.rest.uris import AListURI, AllListURIs from mailman.rest.validator import Validator, list_of_strings_validator +from public import public from zope.component import getUtility diff --git a/src/mailman/rest/members.py b/src/mailman/rest/members.py index b35440af4..ea7eaa394 100644 --- a/src/mailman/rest/members.py +++ b/src/mailman/rest/members.py @@ -17,7 +17,6 @@ """REST for members.""" -from mailman import public from mailman.app.membership import add_member, delete_member from mailman.interfaces.action import Action from mailman.interfaces.address import IAddress @@ -36,6 +35,7 @@ from mailman.rest.helpers import ( from mailman.rest.preferences import Preferences, ReadOnlyPreferences from mailman.rest.validator import ( Validator, enum_validator, subscriber_validator) +from public import public from uuid import UUID from zope.component import getUtility diff --git a/src/mailman/rest/post_moderation.py b/src/mailman/rest/post_moderation.py index 33a32de20..9a56ada00 100644 --- a/src/mailman/rest/post_moderation.py +++ b/src/mailman/rest/post_moderation.py @@ -17,7 +17,6 @@ """REST API for held message moderation.""" -from mailman import public from mailman.app.moderator import handle_message from mailman.interfaces.action import Action from mailman.interfaces.messages import IMessageStore @@ -25,6 +24,7 @@ from mailman.interfaces.requests import IListRequests, RequestType from mailman.rest.helpers import ( CollectionMixin, bad_request, child, etag, no_content, not_found, okay) from mailman.rest.validator import Validator, enum_validator +from public import public from zope.component import getUtility diff --git a/src/mailman/rest/preferences.py b/src/mailman/rest/preferences.py index cf26380fe..549751d1e 100644 --- a/src/mailman/rest/preferences.py +++ b/src/mailman/rest/preferences.py @@ -18,12 +18,12 @@ """Preferences.""" from lazr.config import as_boolean -from mailman import public from mailman.interfaces.member import DeliveryMode, DeliveryStatus from mailman.rest.helpers import ( GetterSetter, bad_request, etag, no_content, not_found, okay) from mailman.rest.validator import ( Validator, enum_validator, language_validator) +from public import public PREFERENCES = ( diff --git a/src/mailman/rest/queues.py b/src/mailman/rest/queues.py index 9fa5b9dc6..27e9c698e 100644 --- a/src/mailman/rest/queues.py +++ b/src/mailman/rest/queues.py @@ -17,13 +17,13 @@ """<api>/queues.""" -from mailman import public from mailman.app.inject import inject_text from mailman.config import config from mailman.interfaces.listmanager import IListManager from mailman.rest.helpers import ( CollectionMixin, bad_request, created, etag, no_content, not_found, okay) from mailman.rest.validator import Validator +from public import public from zope.component import getUtility diff --git a/src/mailman/rest/root.py b/src/mailman/rest/root.py index 7f6be0353..c4c0b865f 100644 --- a/src/mailman/rest/root.py +++ b/src/mailman/rest/root.py @@ -17,7 +17,6 @@ """The root of the REST API.""" -from mailman import public from mailman.config import config from mailman.core.api import API30, API31 from mailman.core.constants import system_preferences @@ -36,6 +35,7 @@ from mailman.rest.queues import AQueue, AQueueFile, AllQueues from mailman.rest.templates import TemplateFinder from mailman.rest.uris import ASiteURI, AllSiteURIs from mailman.rest.users import AUser, AllUsers, ServerOwners +from public import public from zope.component import getUtility diff --git a/src/mailman/rest/sub_moderation.py b/src/mailman/rest/sub_moderation.py index 55b6a7609..39976826c 100644 --- a/src/mailman/rest/sub_moderation.py +++ b/src/mailman/rest/sub_moderation.py @@ -17,7 +17,6 @@ """REST API for held subscription requests.""" -from mailman import public from mailman.app.moderator import send_rejection from mailman.core.i18n import _ from mailman.interfaces.action import Action @@ -28,6 +27,7 @@ from mailman.rest.helpers import ( CollectionMixin, bad_request, child, conflict, etag, no_content, not_found, okay) from mailman.rest.validator import Validator, enum_validator +from public import public from zope.component import getUtility diff --git a/src/mailman/rest/templates.py b/src/mailman/rest/templates.py index fe5e34a8e..7f4e5a3af 100644 --- a/src/mailman/rest/templates.py +++ b/src/mailman/rest/templates.py @@ -17,9 +17,9 @@ """Template finder.""" -from mailman import public from mailman.rest.helpers import not_found from mailman.utilities.i18n import TemplateNotFoundError, find +from public import public # Use mimetypes.guess_all_extensions()? diff --git a/src/mailman/rest/uris.py b/src/mailman/rest/uris.py index 2fc062262..d94b3b237 100644 --- a/src/mailman/rest/uris.py +++ b/src/mailman/rest/uris.py @@ -17,12 +17,12 @@ """URI templates.""" -from mailman import public from mailman.interfaces.template import ALL_TEMPLATES, ITemplateManager from mailman.rest.helpers import ( CollectionMixin, bad_request, etag, no_content, not_found, okay) from mailman.rest.validator import Validator from operator import attrgetter +from public import public from zope.component import getUtility diff --git a/src/mailman/rest/users.py b/src/mailman/rest/users.py index f9ce9b132..c50bfe3d0 100644 --- a/src/mailman/rest/users.py +++ b/src/mailman/rest/users.py @@ -19,7 +19,6 @@ from functools import lru_cache from lazr.config import as_boolean -from mailman import public from mailman.config import config from mailman.interfaces.address import ExistingAddressError from mailman.interfaces.usermanager import IUserManager @@ -32,6 +31,7 @@ from mailman.rest.validator import ( PatchValidator, ReadOnlyPATCHRequestError, UnknownPATCHRequestError, Validator, list_of_strings_validator) from passlib.utils import generate_password as generate +from public import public from zope.component import getUtility diff --git a/src/mailman/rest/validator.py b/src/mailman/rest/validator.py index 19e8d684a..439c25b8e 100644 --- a/src/mailman/rest/validator.py +++ b/src/mailman/rest/validator.py @@ -17,10 +17,10 @@ """REST web form validation.""" -from mailman import public from mailman.interfaces.address import IEmailValidator from mailman.interfaces.errors import MailmanError from mailman.interfaces.languages import ILanguageManager +from public import public from zope.component import getUtility diff --git a/src/mailman/rest/wsgiapp.py b/src/mailman/rest/wsgiapp.py index 3ba122c00..b2dbc7409 100644 --- a/src/mailman/rest/wsgiapp.py +++ b/src/mailman/rest/wsgiapp.py @@ -23,10 +23,10 @@ import logging from base64 import b64decode from falcon import API, HTTPUnauthorized from falcon.routing import create_http_method_map -from mailman import public from mailman.config import config from mailman.database.transaction import transactional from mailman.rest.root import Root +from public import public from wsgiref.simple_server import ( WSGIRequestHandler, WSGIServer, make_server as wsgi_server) diff --git a/src/mailman/rules/administrivia.py b/src/mailman/rules/administrivia.py index e5defee6e..6dc6c38b4 100644 --- a/src/mailman/rules/administrivia.py +++ b/src/mailman/rules/administrivia.py @@ -18,10 +18,10 @@ """The administrivia rule.""" from email.iterators import typed_subpart_iterator -from mailman import public from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.rules import IRule +from public import public 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 466735ebe..6d3bbe21f 100644 --- a/src/mailman/rules/any.py +++ b/src/mailman/rules/any.py @@ -17,9 +17,9 @@ """Check if any previous rules have matched.""" -from mailman import public from mailman.core.i18n import _ from mailman.interfaces.rules import IRule +from public import public from zope.interface import implementer diff --git a/src/mailman/rules/approved.py b/src/mailman/rules/approved.py index a4ea1145e..66f21c8eb 100644 --- a/src/mailman/rules/approved.py +++ b/src/mailman/rules/approved.py @@ -20,10 +20,10 @@ import re from email.iterators import typed_subpart_iterator -from mailman import public from mailman.config import config from mailman.core.i18n import _ from mailman.interfaces.rules import IRule +from public import public from zope.interface import implementer diff --git a/src/mailman/rules/banned_address.py b/src/mailman/rules/banned_address.py index 8ed33a5e6..850f101db 100644 --- a/src/mailman/rules/banned_address.py +++ b/src/mailman/rules/banned_address.py @@ -17,10 +17,10 @@ """Banned addresses rule.""" -from mailman import public from mailman.core.i18n import _ from mailman.interfaces.bans import IBanManager from mailman.interfaces.rules import IRule +from public import public from zope.interface import implementer diff --git a/src/mailman/rules/emergency.py b/src/mailman/rules/emergency.py index 442ccf136..59c0c6a84 100644 --- a/src/mailman/rules/emergency.py +++ b/src/mailman/rules/emergency.py @@ -17,9 +17,9 @@ """The emergency hold rule.""" -from mailman import public from mailman.core.i18n import _ from mailman.interfaces.rules import IRule +from public import public from zope.interface import implementer diff --git a/src/mailman/rules/implicit_dest.py b/src/mailman/rules/implicit_dest.py index c0e116d1c..88429a6ac 100644 --- a/src/mailman/rules/implicit_dest.py +++ b/src/mailman/rules/implicit_dest.py @@ -21,10 +21,10 @@ import re from contextlib import suppress from email.utils import getaddresses -from mailman import public from mailman.core.i18n import _ from mailman.interfaces.mailinglist import IAcceptableAliasSet from mailman.interfaces.rules import IRule +from public import public from zope.interface import implementer diff --git a/src/mailman/rules/loop.py b/src/mailman/rules/loop.py index 0f8047e76..d9b7c299d 100644 --- a/src/mailman/rules/loop.py +++ b/src/mailman/rules/loop.py @@ -17,9 +17,9 @@ """Look for a posting loop.""" -from mailman import public from mailman.core.i18n import _ from mailman.interfaces.rules import IRule +from public import public from zope.interface import implementer diff --git a/src/mailman/rules/max_recipients.py b/src/mailman/rules/max_recipients.py index 61df613cb..1d38e28c1 100644 --- a/src/mailman/rules/max_recipients.py +++ b/src/mailman/rules/max_recipients.py @@ -18,9 +18,9 @@ """The maximum number of recipients rule.""" from email.utils import getaddresses -from mailman import public from mailman.core.i18n import _ from mailman.interfaces.rules import IRule +from public import public from zope.interface import implementer diff --git a/src/mailman/rules/max_size.py b/src/mailman/rules/max_size.py index 8911e97fd..c5c492347 100644 --- a/src/mailman/rules/max_size.py +++ b/src/mailman/rules/max_size.py @@ -17,9 +17,9 @@ """The maximum message size rule.""" -from mailman import public from mailman.core.i18n import _ from mailman.interfaces.rules import IRule +from public import public from zope.interface import implementer diff --git a/src/mailman/rules/moderation.py b/src/mailman/rules/moderation.py index 20b238eab..b52ecff3e 100644 --- a/src/mailman/rules/moderation.py +++ b/src/mailman/rules/moderation.py @@ -19,13 +19,13 @@ import re -from mailman import public from mailman.core.i18n import _ from mailman.interfaces.action import Action from mailman.interfaces.bans import IBanManager from mailman.interfaces.member import MemberRole from mailman.interfaces.rules import IRule from mailman.interfaces.usermanager import IUserManager +from public import public 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 63a7e93b0..8d0fe3402 100644 --- a/src/mailman/rules/news_moderation.py +++ b/src/mailman/rules/news_moderation.py @@ -17,10 +17,10 @@ """The news moderation rule.""" -from mailman import public from mailman.core.i18n import _ from mailman.interfaces.nntp import NewsgroupModeration from mailman.interfaces.rules import IRule +from public import public from zope.interface import implementer diff --git a/src/mailman/rules/no_subject.py b/src/mailman/rules/no_subject.py index ed020b81e..f3eba625a 100644 --- a/src/mailman/rules/no_subject.py +++ b/src/mailman/rules/no_subject.py @@ -17,9 +17,9 @@ """The no-Subject header rule.""" -from mailman import public from mailman.core.i18n import _ from mailman.interfaces.rules import IRule +from public import public from zope.interface import implementer diff --git a/src/mailman/rules/suspicious.py b/src/mailman/rules/suspicious.py index 679605fd6..049df0a61 100644 --- a/src/mailman/rules/suspicious.py +++ b/src/mailman/rules/suspicious.py @@ -20,9 +20,9 @@ import re import logging -from mailman import public from mailman.core.i18n import _ from mailman.interfaces.rules import IRule +from public import public from zope.interface import implementer diff --git a/src/mailman/rules/truth.py b/src/mailman/rules/truth.py index 9883a0e60..224ceeaad 100644 --- a/src/mailman/rules/truth.py +++ b/src/mailman/rules/truth.py @@ -17,9 +17,9 @@ """A rule which always matches.""" -from mailman import public from mailman.core.i18n import _ from mailman.interfaces.rules import IRule +from public import public from zope.interface import implementer diff --git a/src/mailman/runners/archive.py b/src/mailman/runners/archive.py index 23b7b164d..073f72d52 100644 --- a/src/mailman/runners/archive.py +++ b/src/mailman/runners/archive.py @@ -23,12 +23,12 @@ import logging from datetime import datetime from email.utils import mktime_tz, parsedate_tz from lazr.config import as_timedelta -from mailman import public from mailman.config import config from mailman.core.runner import Runner from mailman.interfaces.archiver import ClobberDate from mailman.interfaces.mailinglist import IListArchiverSet from mailman.utilities.datetime import RFC822_DATE_FMT, now +from public import public log = logging.getLogger('mailman.archiver') diff --git a/src/mailman/runners/bounce.py b/src/mailman/runners/bounce.py index 4150dc9b5..40ea840e7 100644 --- a/src/mailman/runners/bounce.py +++ b/src/mailman/runners/bounce.py @@ -20,10 +20,10 @@ import logging from flufl.bounce import all_failures, scan_message -from mailman import public from mailman.app.bounces import ProbeVERP, StandardVERP, maybe_forward from mailman.core.runner import Runner from mailman.interfaces.bounce import BounceContext, IBounceProcessor +from public import public from zope.component import getUtility diff --git a/src/mailman/runners/command.py b/src/mailman/runners/command.py index ba10988e3..a52dd541d 100644 --- a/src/mailman/runners/command.py +++ b/src/mailman/runners/command.py @@ -30,13 +30,13 @@ from email.errors import HeaderParseError from email.header import decode_header, make_header from email.iterators import typed_subpart_iterator from io import StringIO -from mailman import public 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 public import public from zope.component import getUtility from zope.interface import implementer diff --git a/src/mailman/runners/digest.py b/src/mailman/runners/digest.py index 4971965fa..284056e3a 100644 --- a/src/mailman/runners/digest.py +++ b/src/mailman/runners/digest.py @@ -27,7 +27,6 @@ from email.mime.message import MIMEMessage from email.mime.text import MIMEText from email.utils import formatdate, getaddresses, make_msgid from io import StringIO -from mailman import public from mailman.config import config from mailman.core.i18n import _ from mailman.core.runner import Runner @@ -37,6 +36,7 @@ from mailman.interfaces.member import DeliveryMode, DeliveryStatus from mailman.interfaces.template import ITemplateLoader from mailman.utilities.mailbox import Mailbox from mailman.utilities.string import expand, oneline, wrap +from public import public from zope.component import getUtility diff --git a/src/mailman/runners/incoming.py b/src/mailman/runners/incoming.py index 62b12dab1..9461e59bc 100644 --- a/src/mailman/runners/incoming.py +++ b/src/mailman/runners/incoming.py @@ -27,12 +27,12 @@ immediately. """ from contextlib import suppress -from mailman import public 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 public import public from zope.component import getUtility diff --git a/src/mailman/runners/lmtp.py b/src/mailman/runners/lmtp.py index 21fb44c5e..0fa13a611 100644 --- a/src/mailman/runners/lmtp.py +++ b/src/mailman/runners/lmtp.py @@ -43,7 +43,6 @@ import aiosmtpd.smtp from aiosmtpd.controller import Controller from aiosmtpd.lmtp import LMTP from email.utils import parseaddr -from mailman import public from mailman.config import config from mailman.core.runner import Runner from mailman.database.transaction import transactional @@ -51,6 +50,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 public import public from zope.component import getUtility diff --git a/src/mailman/runners/nntp.py b/src/mailman/runners/nntp.py index b125fe4f9..38f67c453 100644 --- a/src/mailman/runners/nntp.py +++ b/src/mailman/runners/nntp.py @@ -24,10 +24,10 @@ import logging import nntplib from io import StringIO -from mailman import public from mailman.config import config from mailman.core.runner import Runner from mailman.interfaces.nntp import NewsgroupModeration +from public import public COMMA = ',' diff --git a/src/mailman/runners/outgoing.py b/src/mailman/runners/outgoing.py index 3f21e3813..61b6e0b99 100644 --- a/src/mailman/runners/outgoing.py +++ b/src/mailman/runners/outgoing.py @@ -22,7 +22,6 @@ import logging from datetime import datetime from lazr.config import as_boolean, as_timedelta -from mailman import public from mailman.config import config from mailman.core.runner import Runner from mailman.interfaces.bounce import BounceContext, IBounceProcessor @@ -32,6 +31,7 @@ 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 public import public from uuid import UUID from zope.component import getUtility diff --git a/src/mailman/runners/pipeline.py b/src/mailman/runners/pipeline.py index 3ec7499f2..caa68763c 100644 --- a/src/mailman/runners/pipeline.py +++ b/src/mailman/runners/pipeline.py @@ -22,9 +22,9 @@ through the 'preparation pipeline'. This pipeline adds, deletes and modifies headers, calculates message recipients, and more. """ -from mailman import public from mailman.core.pipelines import process from mailman.core.runner import Runner +from public import public @public diff --git a/src/mailman/runners/rest.py b/src/mailman/runners/rest.py index 037b6adf8..dd7eae245 100644 --- a/src/mailman/runners/rest.py +++ b/src/mailman/runners/rest.py @@ -21,9 +21,9 @@ import signal import logging import threading -from mailman import public from mailman.core.runner import Runner from mailman.rest.wsgiapp import make_server +from public import public log = logging.getLogger('mailman.http') diff --git a/src/mailman/runners/retry.py b/src/mailman/runners/retry.py index f1af4f73c..2be89e8b0 100644 --- a/src/mailman/runners/retry.py +++ b/src/mailman/runners/retry.py @@ -19,9 +19,9 @@ import time -from mailman import public from mailman.config import config from mailman.core.runner import Runner +from public import public @public diff --git a/src/mailman/runners/virgin.py b/src/mailman/runners/virgin.py index a69d07bf7..50ef3dcce 100644 --- a/src/mailman/runners/virgin.py +++ b/src/mailman/runners/virgin.py @@ -23,9 +23,9 @@ to go through some minimal processing before they can be sent out to the recipient. """ -from mailman import public from mailman.core.pipelines import process from mailman.core.runner import Runner +from public import public @public diff --git a/src/mailman/styles/base.py b/src/mailman/styles/base.py index 7226d762a..02a17d54d 100644 --- a/src/mailman/styles/base.py +++ b/src/mailman/styles/base.py @@ -24,7 +24,6 @@ methods in your compositional derived class. from datetime import timedelta -from mailman import public from mailman.core.i18n import _ from mailman.interfaces.action import Action, FilterAction from mailman.interfaces.archiver import ArchivePolicy @@ -34,6 +33,7 @@ from mailman.interfaces.digests import DigestFrequency from mailman.interfaces.mailinglist import ( Personalization, ReplyToMunging, SubscriptionPolicy) from mailman.interfaces.nntp import NewsgroupModeration +from public import public @public diff --git a/src/mailman/styles/default.py b/src/mailman/styles/default.py index 2df075a6f..c7632fe8e 100644 --- a/src/mailman/styles/default.py +++ b/src/mailman/styles/default.py @@ -17,11 +17,11 @@ """Application of list styles to new and existing lists.""" -from mailman import public from mailman.interfaces.styles import IStyle from mailman.styles.base import ( Announcement, BasicOperation, Bounces, Discussion, Identity, Moderation, Public) +from public import public from zope.interface import implementer diff --git a/src/mailman/styles/manager.py b/src/mailman/styles/manager.py index 1b3130581..ae60dc3c6 100644 --- a/src/mailman/styles/manager.py +++ b/src/mailman/styles/manager.py @@ -17,11 +17,11 @@ """Style manager.""" -from mailman import public from mailman.interfaces.configuration import ConfigurationUpdatedEvent from mailman.interfaces.styles import ( DuplicateStyleError, IStyle, IStyleManager) from mailman.utilities.modules import find_components +from public import public from zope.component import getUtility from zope.interface import implementer from zope.interface.verify import verifyObject diff --git a/src/mailman/testing/documentation.py b/src/mailman/testing/documentation.py index 29629fe1b..97e30e900 100644 --- a/src/mailman/testing/documentation.py +++ b/src/mailman/testing/documentation.py @@ -22,12 +22,12 @@ distributions. doctest discovery currently requires file system traversal. """ from inspect import isfunction, ismethod -from mailman import public from mailman.app.lifecycle import create_list from mailman.config import config from mailman.testing.helpers import ( call_api, get_queue_messages, specialized_message_from_string, subscribe) from mailman.testing.layers import SMTPLayer +from public import public DOT = '.' diff --git a/src/mailman/testing/helpers.py b/src/mailman/testing/helpers.py index 2ce6956b7..01b362192 100644 --- a/src/mailman/testing/helpers.py +++ b/src/mailman/testing/helpers.py @@ -35,7 +35,6 @@ from contextlib import contextmanager, suppress from email import message_from_string from httplib2 import Http from lazr.config import as_timedelta -from mailman import public from mailman.bin.master import Loop as Master from mailman.config import config from mailman.database.transaction import transaction @@ -46,6 +45,7 @@ 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 public import public from unittest import mock from urllib.error import HTTPError from urllib.parse import urlencode diff --git a/src/mailman/testing/i18n.py b/src/mailman/testing/i18n.py index 2031be307..ade8584b1 100644 --- a/src/mailman/testing/i18n.py +++ b/src/mailman/testing/i18n.py @@ -20,8 +20,8 @@ from contextlib import closing from flufl.i18n import registry from gettext import GNUTranslations, NullTranslations -from mailman import public from pkg_resources import resource_stream +from public import public class TestingStrategy: diff --git a/src/mailman/testing/layers.py b/src/mailman/testing/layers.py index 3157809e6..67fb4f5e1 100644 --- a/src/mailman/testing/layers.py +++ b/src/mailman/testing/layers.py @@ -32,7 +32,6 @@ import datetime import tempfile from lazr.config import as_boolean -from mailman import public from mailman.config import config from mailman.core import initialize from mailman.core.initialize import INHIBIT_CONFIG_FILE @@ -44,6 +43,7 @@ from mailman.testing.helpers import ( from mailman.testing.mta import ConnectionCountingController from mailman.utilities.string import expand from pkg_resources import resource_string as resource_bytes +from public import public from textwrap import dedent from zope.component import getUtility diff --git a/src/mailman/testing/mta.py b/src/mailman/testing/mta.py index 81e4b8a62..d94466428 100644 --- a/src/mailman/testing/mta.py +++ b/src/mailman/testing/mta.py @@ -24,8 +24,8 @@ import smtplib from aiosmtpd.controller import Controller from aiosmtpd.handlers import Message as MessageHandler from aiosmtpd.smtp import SMTP -from mailman import public from mailman.interfaces.mta import IMailTransportAgentLifecycle +from public import public from queue import Empty, Queue from zope.interface import implementer diff --git a/src/mailman/testing/nose.py b/src/mailman/testing/nose.py index bbd361390..1a9830da5 100644 --- a/src/mailman/testing/nose.py +++ b/src/mailman/testing/nose.py @@ -22,11 +22,11 @@ import re import doctest import importlib -from mailman import public from mailman.testing.documentation import setup, teardown from mailman.testing.layers import ConfigLayer, MockAndMonkeyLayer, SMTPLayer from nose2.events import Plugin from pkg_resources import resource_filename +from public import public DOT = '.' diff --git a/src/mailman/utilities/datetime.py b/src/mailman/utilities/datetime.py index 9bb772b3f..2915080e8 100644 --- a/src/mailman/utilities/datetime.py +++ b/src/mailman/utilities/datetime.py @@ -24,8 +24,8 @@ instrumented for testing purposes. import datetime -from mailman import public from mailman.testing import layers +from public import public # Python always sets the locale to 'C' locale unless the user explicitly calls diff --git a/src/mailman/utilities/email.py b/src/mailman/utilities/email.py index e870117ac..546a7de61 100644 --- a/src/mailman/utilities/email.py +++ b/src/mailman/utilities/email.py @@ -19,7 +19,7 @@ from base64 import b32encode from hashlib import sha1 -from mailman import public +from public import public @public diff --git a/src/mailman/utilities/filesystem.py b/src/mailman/utilities/filesystem.py index e89f2abb8..7dcf2bb80 100644 --- a/src/mailman/utilities/filesystem.py +++ b/src/mailman/utilities/filesystem.py @@ -20,7 +20,7 @@ import os from contextlib import suppress -from mailman import public +from public import public @public diff --git a/src/mailman/utilities/i18n.py b/src/mailman/utilities/i18n.py index 1df8ede7e..a658c231b 100644 --- a/src/mailman/utilities/i18n.py +++ b/src/mailman/utilities/i18n.py @@ -21,11 +21,11 @@ import os import sys from itertools import product -from mailman import public from mailman.config import config from mailman.core.constants import system_preferences from mailman.interfaces.errors import MailmanError from pkg_resources import resource_filename +from public import public @public diff --git a/src/mailman/utilities/importer.py b/src/mailman/utilities/importer.py index cf14fa73a..c8348a681 100644 --- a/src/mailman/utilities/importer.py +++ b/src/mailman/utilities/importer.py @@ -23,7 +23,6 @@ import sys import logging import datetime -from mailman import public from mailman.config import config from mailman.handlers.decorate import decorate_template from mailman.interfaces.action import Action, FilterAction @@ -44,6 +43,7 @@ from mailman.interfaces.template import ITemplateManager from mailman.interfaces.usermanager import IUserManager from mailman.utilities.filesystem import makedirs from mailman.utilities.i18n import search +from public import public from sqlalchemy import Boolean from zope.component import getUtility diff --git a/src/mailman/utilities/interact.py b/src/mailman/utilities/interact.py index ac1612156..48f3ae358 100644 --- a/src/mailman/utilities/interact.py +++ b/src/mailman/utilities/interact.py @@ -23,7 +23,7 @@ import code from contextlib import suppress from inspect import signature -from mailman import public +from public import public DEFAULT_BANNER = object() diff --git a/src/mailman/utilities/mailbox.py b/src/mailman/utilities/mailbox.py index b799babea..19146e036 100644 --- a/src/mailman/utilities/mailbox.py +++ b/src/mailman/utilities/mailbox.py @@ -23,8 +23,9 @@ # get its size. MMDF is slightly more sane than mbox; it's primary advantage # for us is that it does no 'From' mangling. # mangling. + from mailbox import MMDF -from mailman import public +from public import public @public diff --git a/src/mailman/utilities/modules.py b/src/mailman/utilities/modules.py index b16aa45e5..83063a3f0 100644 --- a/src/mailman/utilities/modules.py +++ b/src/mailman/utilities/modules.py @@ -20,8 +20,8 @@ import os import sys -from mailman import public from pkg_resources import resource_filename, resource_listdir +from public import public @public diff --git a/src/mailman/utilities/options.py b/src/mailman/utilities/options.py index 1c0064260..9e1e698a7 100644 --- a/src/mailman/utilities/options.py +++ b/src/mailman/utilities/options.py @@ -21,12 +21,12 @@ import os import sys from copy import copy -from mailman import public 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 +from public import public def check_unicode(option, opt, value): diff --git a/src/mailman/utilities/passwords.py b/src/mailman/utilities/passwords.py index 5597e2556..7bf18b93a 100644 --- a/src/mailman/utilities/passwords.py +++ b/src/mailman/utilities/passwords.py @@ -17,10 +17,10 @@ """A wrapper around passlib.""" -from mailman import public from mailman.config.config import load_external from mailman.interfaces.configuration import ConfigurationUpdatedEvent from passlib.context import CryptContext +from public import public class PasswordContext: diff --git a/src/mailman/utilities/protocols.py b/src/mailman/utilities/protocols.py index 5f447c465..43d43a8bc 100644 --- a/src/mailman/utilities/protocols.py +++ b/src/mailman/utilities/protocols.py @@ -19,10 +19,10 @@ import requests -from mailman import public from mailman.interfaces.languages import ILanguageManager from mailman.interfaces.listmanager import IListManager from mailman.utilities.i18n import TemplateNotFoundError, find +from public import public from urllib.error import URLError from urllib.parse import urlparse from zope.component import getUtility diff --git a/src/mailman/utilities/queries.py b/src/mailman/utilities/queries.py index e27ae9a17..cd6542270 100644 --- a/src/mailman/utilities/queries.py +++ b/src/mailman/utilities/queries.py @@ -18,7 +18,7 @@ """Some helpers for queries.""" from collections.abc import Sequence -from mailman import public +from public import public @public diff --git a/src/mailman/utilities/string.py b/src/mailman/utilities/string.py index 2694877ee..fecadc444 100644 --- a/src/mailman/utilities/string.py +++ b/src/mailman/utilities/string.py @@ -21,8 +21,8 @@ import logging from email.errors import HeaderParseError from email.header import decode_header, make_header -from mailman import public from mailman.config import config +from public import public from string import Template, whitespace from textwrap import TextWrapper, dedent diff --git a/src/mailman/utilities/tests/test_modules.py b/src/mailman/utilities/tests/test_modules.py index 8e144e60b..d34a99910 100644 --- a/src/mailman/utilities/tests/test_modules.py +++ b/src/mailman/utilities/tests/test_modules.py @@ -67,7 +67,7 @@ class TestModuleImports(unittest.TestCase): Path(init_file).touch() with open(good_file, 'w', encoding='utf-8') as fp: print("""\ -from mailman import public +from public import public from mailman.interfaces.styles import IStyle from zope.interface import implementer @@ -80,7 +80,7 @@ class GoodStyle: """, file=fp) with open(bad_file, 'w', encoding='utf-8') as fp: print("""\ -from mailman import public +from public import public from mailman.interfaces.styles import IStyle from zope.interface import implementer diff --git a/src/mailman/utilities/uid.py b/src/mailman/utilities/uid.py index 4389bcd92..9abf92e90 100644 --- a/src/mailman/utilities/uid.py +++ b/src/mailman/utilities/uid.py @@ -29,10 +29,10 @@ import hashlib from contextlib import suppress from flufl.lock import Lock -from mailman import public from mailman.config import config from mailman.model.uid import UID from mailman.testing import layers +from public import public class _PredictableIDGenerator: |
