summaryrefslogtreecommitdiff
path: root/src/mailman/model
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman/model')
-rw-r--r--src/mailman/model/address.py7
-rw-r--r--src/mailman/model/autorespond.py8
-rw-r--r--src/mailman/model/bans.py8
-rw-r--r--src/mailman/model/bounce.py8
-rw-r--r--src/mailman/model/digests.py7
-rw-r--r--src/mailman/model/docs/pending.rst9
-rw-r--r--src/mailman/model/docs/registration.rst9
-rw-r--r--src/mailman/model/domain.py8
-rw-r--r--src/mailman/model/language.py7
-rw-r--r--src/mailman/model/listmanager.py5
-rw-r--r--src/mailman/model/mailinglist.py14
-rw-r--r--src/mailman/model/member.py5
-rw-r--r--src/mailman/model/message.py5
-rw-r--r--src/mailman/model/messagestore.py5
-rw-r--r--src/mailman/model/mime.py8
-rw-r--r--src/mailman/model/pending.py15
-rw-r--r--src/mailman/model/preferences.py7
-rw-r--r--src/mailman/model/requests.py7
-rw-r--r--src/mailman/model/roster.py8
-rw-r--r--src/mailman/model/user.py5
-rw-r--r--src/mailman/model/usermanager.py5
21 files changed, 88 insertions, 72 deletions
diff --git a/src/mailman/model/address.py b/src/mailman/model/address.py
index a12a993a8..d8ab65a80 100644
--- a/src/mailman/model/address.py
+++ b/src/mailman/model/address.py
@@ -17,7 +17,7 @@
"""Model for addresses."""
-from __future__ import absolute_import, unicode_literals
+from __future__ import absolute_import, print_function, unicode_literals
__metaclass__ = type
__all__ = [
@@ -28,7 +28,7 @@ __all__ = [
from email.utils import formataddr
from storm.locals import DateTime, Int, Reference, Unicode
from zope.event import notify
-from zope.interface import implements
+from zope.interface import implementer
from mailman.database.model import Model
from mailman.interfaces.address import AddressVerificationEvent, IAddress
@@ -36,8 +36,9 @@ from mailman.utilities.datetime import now
+@implementer(IAddress)
class Address(Model):
- implements(IAddress)
+ """See `IAddress`."""
id = Int(primary=True)
email = Unicode()
diff --git a/src/mailman/model/autorespond.py b/src/mailman/model/autorespond.py
index 9e0fbd042..567dcd19e 100644
--- a/src/mailman/model/autorespond.py
+++ b/src/mailman/model/autorespond.py
@@ -27,7 +27,7 @@ __all__ = [
from storm.locals import And, Date, Desc, Int, Reference
-from zope.interface import implements
+from zope.interface import implementer
from mailman.database.model import Model
from mailman.database.transaction import dbconnection
@@ -38,8 +38,9 @@ from mailman.utilities.datetime import today
+@implementer(IAutoResponseRecord)
class AutoResponseRecord(Model):
- implements(IAutoResponseRecord)
+ """See `IAutoResponseRecord`."""
id = Int(primary=True)
@@ -60,8 +61,9 @@ class AutoResponseRecord(Model):
+@implementer(IAutoResponseSet)
class AutoResponseSet:
- implements(IAutoResponseSet)
+ """See `IAutoResponseSet`."""
def __init__(self, mailing_list):
self._mailing_list = mailing_list
diff --git a/src/mailman/model/bans.py b/src/mailman/model/bans.py
index 89addd8c7..b6de9336f 100644
--- a/src/mailman/model/bans.py
+++ b/src/mailman/model/bans.py
@@ -28,7 +28,7 @@ __all__ = [
import re
from storm.locals import Int, Unicode
-from zope.interface import implements
+from zope.interface import implementer
from mailman.database.model import Model
from mailman.database.transaction import dbconnection
@@ -36,8 +36,9 @@ from mailman.interfaces.bans import IBan, IBanManager
+@implementer(IBan)
class Ban(Model):
- implements(IBan)
+ """See `IBan`."""
id = Int(primary=True)
email = Unicode()
@@ -50,8 +51,9 @@ class Ban(Model):
+@implementer(IBanManager)
class BanManager:
- implements(IBanManager)
+ """See `IBanManager`."""
@dbconnection
def ban(self, store, email, mailing_list=None):
diff --git a/src/mailman/model/bounce.py b/src/mailman/model/bounce.py
index b957a2243..628e076bf 100644
--- a/src/mailman/model/bounce.py
+++ b/src/mailman/model/bounce.py
@@ -27,7 +27,7 @@ __all__ = [
from storm.locals import Bool, Int, DateTime, Unicode
-from zope.interface import implements
+from zope.interface import implementer
from mailman.database.model import Model
from mailman.database.transaction import dbconnection
@@ -38,8 +38,9 @@ from mailman.utilities.datetime import now
+@implementer(IBounceEvent)
class BounceEvent(Model):
- implements(IBounceEvent)
+ """See `IBounceEvent`."""
id = Int(primary=True)
list_name = Unicode()
@@ -59,8 +60,9 @@ class BounceEvent(Model):
+@implementer(IBounceProcessor)
class BounceProcessor:
- implements(IBounceProcessor)
+ """See `IBounceProcessor`."""
@dbconnection
def register(self, store, mlist, email, msg, where=None):
diff --git a/src/mailman/model/digests.py b/src/mailman/model/digests.py
index d7805ebf6..1d422ce8b 100644
--- a/src/mailman/model/digests.py
+++ b/src/mailman/model/digests.py
@@ -17,7 +17,7 @@
"""One last digest."""
-from __future__ import absolute_import, unicode_literals
+from __future__ import absolute_import, print_function, unicode_literals
__metaclass__ = type
__all__ = [
@@ -26,7 +26,7 @@ __all__ = [
from storm.locals import Int, Reference
-from zope.interface import implements
+from zope.interface import implementer
from mailman.database.model import Model
from mailman.database.types import Enum
@@ -35,8 +35,9 @@ from mailman.interfaces.member import DeliveryMode
+@implementer(IOneLastDigest)
class OneLastDigest(Model):
- implements(IOneLastDigest)
+ """See `IOneLastDigest`."""
id = Int(primary=True)
diff --git a/src/mailman/model/docs/pending.rst b/src/mailman/model/docs/pending.rst
index 1bf1ee0e9..3d33dd5da 100644
--- a/src/mailman/model/docs/pending.rst
+++ b/src/mailman/model/docs/pending.rst
@@ -15,11 +15,14 @@ In order to pend an event, you first need a pending database.
The pending database can add any ``IPendable`` to the database, returning a
token that can be used in urls and such.
+::
- >>> from zope.interface import implements
+ >>> from zope.interface import implementer
>>> from mailman.interfaces.pending import IPendable
- >>> class SimplePendable(dict):
- ... implements(IPendable)
+ >>> @implementer(IPendable)
+ ... class SimplePendable(dict):
+ ... pass
+
>>> subscription = SimplePendable(
... type='subscription',
... address='aperson@example.com',
diff --git a/src/mailman/model/docs/registration.rst b/src/mailman/model/docs/registration.rst
index eecb3a8cd..58e9d7a86 100644
--- a/src/mailman/model/docs/registration.rst
+++ b/src/mailman/model/docs/registration.rst
@@ -318,12 +318,15 @@ confirm method will just return False.
Likewise, if you try to confirm, through the `IUserRegistrar` interface, a
token that doesn't match a registration event, you will get ``None``.
However, the pending event matched with that token will still be removed.
+::
>>> from mailman.interfaces.pending import IPendable
- >>> from zope.interface import implements
+ >>> from zope.interface import implementer
+
+ >>> @implementer(IPendable)
+ ... class SimplePendable(dict):
+ ... pass
- >>> class SimplePendable(dict):
- ... implements(IPendable)
>>> pendable = SimplePendable(type='foo', bar='baz')
>>> token = pendingdb.add(pendable)
>>> registrar.confirm(token)
diff --git a/src/mailman/model/domain.py b/src/mailman/model/domain.py
index e93335328..de6a9005a 100644
--- a/src/mailman/model/domain.py
+++ b/src/mailman/model/domain.py
@@ -29,7 +29,7 @@ __all__ = [
from urlparse import urljoin, urlparse
from storm.locals import Int, Unicode
from zope.event import notify
-from zope.interface import implements
+from zope.interface import implementer
from mailman.database.model import Model
from mailman.database.transaction import dbconnection
@@ -40,11 +40,10 @@ from mailman.model.mailinglist import MailingList
+@implementer(IDomain)
class Domain(Model):
"""Domains."""
- implements(IDomain)
-
id = Int(primary=True)
mail_host = Unicode()
@@ -115,11 +114,10 @@ class Domain(Model):
+@implementer(IDomainManager)
class DomainManager:
"""Domain manager."""
- implements(IDomainManager)
-
@dbconnection
def add(self, store,
mail_host,
diff --git a/src/mailman/model/language.py b/src/mailman/model/language.py
index da86b326c..b593721df 100644
--- a/src/mailman/model/language.py
+++ b/src/mailman/model/language.py
@@ -17,7 +17,7 @@
"""Model for languages."""
-from __future__ import absolute_import, unicode_literals
+from __future__ import absolute_import, print_function, unicode_literals
__metaclass__ = type
__all__ = [
@@ -26,15 +26,16 @@ __all__ = [
from storm.locals import Int, Unicode
-from zope.interface import implements
+from zope.interface import implementer
from mailman.database import Model
from mailman.interfaces import ILanguage
+@implementer(ILanguage)
class Language(Model):
- implements(ILanguage)
+ """See `ILanguage`."""
id = Int(primary=True)
code = Unicode()
diff --git a/src/mailman/model/listmanager.py b/src/mailman/model/listmanager.py
index 8d845b36f..b4bc4b323 100644
--- a/src/mailman/model/listmanager.py
+++ b/src/mailman/model/listmanager.py
@@ -26,7 +26,7 @@ __all__ = [
from zope.event import notify
-from zope.interface import implements
+from zope.interface import implementer
from mailman.database.transaction import dbconnection
from mailman.interfaces.address import InvalidEmailAddressError
@@ -38,11 +38,10 @@ from mailman.utilities.datetime import now
+@implementer(IListManager)
class ListManager:
"""An implementation of the `IListManager` interface."""
- implements(IListManager)
-
@dbconnection
def create(self, store, fqdn_listname):
"""See `IListManager`."""
diff --git a/src/mailman/model/mailinglist.py b/src/mailman/model/mailinglist.py
index d51c89514..bff4fbf88 100644
--- a/src/mailman/model/mailinglist.py
+++ b/src/mailman/model/mailinglist.py
@@ -17,7 +17,7 @@
"""Model for mailing lists."""
-from __future__ import absolute_import, unicode_literals
+from __future__ import absolute_import, print_function, unicode_literals
__metaclass__ = type
__all__ = [
@@ -33,7 +33,7 @@ from storm.locals import (
TimeDelta, Unicode)
from urlparse import urljoin
from zope.component import getUtility
-from zope.interface import implements
+from zope.interface import implementer
from mailman.config import config
from mailman.database.model import Model
@@ -67,8 +67,9 @@ UNDERSCORE = '_'
+@implementer(IMailingList)
class MailingList(Model):
- implements(IMailingList)
+ """See `IMailingList`."""
id = Int(primary=True)
@@ -492,8 +493,9 @@ class MailingList(Model):
+@implementer(IAcceptableAlias)
class AcceptableAlias(Model):
- implements(IAcceptableAlias)
+ """See `IAcceptableAlias`."""
id = Int(primary=True)
@@ -507,8 +509,10 @@ class AcceptableAlias(Model):
self.alias = alias
+
+@implementer(IAcceptableAliasSet)
class AcceptableAliasSet:
- implements(IAcceptableAliasSet)
+ """See `IAcceptableAliasSet`."""
def __init__(self, mailing_list):
self._mailing_list = mailing_list
diff --git a/src/mailman/model/member.py b/src/mailman/model/member.py
index 5a71eb8be..b791ea0f2 100644
--- a/src/mailman/model/member.py
+++ b/src/mailman/model/member.py
@@ -27,7 +27,7 @@ __all__ = [
from storm.locals import Int, Reference, Unicode
from storm.properties import UUID
from zope.component import getUtility
-from zope.interface import implements
+from zope.interface import implementer
from mailman.core.constants import system_preferences
from mailman.database.model import Model
@@ -46,8 +46,9 @@ uid_factory = UniqueIDFactory(context='members')
+@implementer(IMember)
class Member(Model):
- implements(IMember)
+ """See `IMember`."""
id = Int(primary=True)
_member_id = UUID()
diff --git a/src/mailman/model/message.py b/src/mailman/model/message.py
index 67c4caf79..190b4055c 100644
--- a/src/mailman/model/message.py
+++ b/src/mailman/model/message.py
@@ -25,7 +25,7 @@ __all__ = [
]
from storm.locals import AutoReload, Int, RawStr, Unicode
-from zope.interface import implements
+from zope.interface import implementer
from mailman.database.model import Model
from mailman.database.transaction import dbconnection
@@ -33,11 +33,10 @@ from mailman.interfaces.messages import IMessage
+@implementer(IMessage)
class Message(Model):
"""A message in the message store."""
- implements(IMessage)
-
id = Int(primary=True, default=AutoReload)
message_id = Unicode()
message_id_hash = RawStr()
diff --git a/src/mailman/model/messagestore.py b/src/mailman/model/messagestore.py
index df2205ff8..156375e6f 100644
--- a/src/mailman/model/messagestore.py
+++ b/src/mailman/model/messagestore.py
@@ -30,7 +30,7 @@ import base64
import hashlib
import cPickle as pickle
-from zope.interface import implements
+from zope.interface import implementer
from mailman.config import config
from mailman.database.transaction import dbconnection
@@ -46,8 +46,9 @@ EMPTYSTRING = ''
+@implementer(IMessageStore)
class MessageStore:
- implements(IMessageStore)
+ """See `IMessageStore`."""
@dbconnection
def add(self, store, message):
diff --git a/src/mailman/model/mime.py b/src/mailman/model/mime.py
index c611aab89..462bb9016 100644
--- a/src/mailman/model/mime.py
+++ b/src/mailman/model/mime.py
@@ -15,9 +15,9 @@
# You should have received a copy of the GNU General Public License along with
# GNU Mailman. If not, see <http://www.gnu.org/licenses/>.
-"""Module stuff."""
+"""The content filter."""
-from __future__ import absolute_import, unicode_literals
+from __future__ import absolute_import, print_function, unicode_literals
__metaclass__ = type
__all__ = [
@@ -26,7 +26,7 @@ __all__ = [
from storm.locals import Int, Reference, Unicode
-from zope.interface import implements
+from zope.interface import implementer
from mailman.database.model import Model
from mailman.database.types import Enum
@@ -34,9 +34,9 @@ from mailman.interfaces.mime import IContentFilter, FilterType
+@implementer(IContentFilter)
class ContentFilter(Model):
"""A single filter criteria."""
- implements(IContentFilter)
id = Int(primary=True)
diff --git a/src/mailman/model/pending.py b/src/mailman/model/pending.py
index 39845e0bf..727e4f754 100644
--- a/src/mailman/model/pending.py
+++ b/src/mailman/model/pending.py
@@ -32,7 +32,7 @@ import hashlib
from lazr.config import as_timedelta
from storm.locals import DateTime, Int, RawStr, ReferenceSet, Unicode
-from zope.interface import implements
+from zope.interface import implementer
from zope.interface.verify import verifyObject
from mailman.config import config
@@ -45,11 +45,10 @@ from mailman.utilities.modules import call_name
+@implementer(IPendedKeyValue)
class PendedKeyValue(Model):
"""A pended key/value pair, tied to a token."""
- implements(IPendedKeyValue)
-
def __init__(self, key, value):
self.key = key
self.value = value
@@ -60,11 +59,11 @@ class PendedKeyValue(Model):
pended_id = Int()
+
+@implementer(IPended)
class Pended(Model):
"""A pended event, tied to a token."""
- implements(IPended)
-
def __init__(self, token, expiration_date):
super(Pended, self).__init__()
self.token = token
@@ -77,16 +76,16 @@ class Pended(Model):
+@implementer(IPendable)
class UnpendedPendable(dict):
- implements(IPendable)
+ pass
+@implementer(IPendings)
class Pendings:
"""Implementation of the IPending interface."""
- implements(IPendings)
-
@dbconnection
def add(self, store, pendable, lifetime=None):
verifyObject(IPendable, pendable)
diff --git a/src/mailman/model/preferences.py b/src/mailman/model/preferences.py
index 234c7399e..fdc30a94d 100644
--- a/src/mailman/model/preferences.py
+++ b/src/mailman/model/preferences.py
@@ -17,7 +17,7 @@
"""Model for preferences."""
-from __future__ import absolute_import, unicode_literals
+from __future__ import absolute_import, print_function, unicode_literals
__metaclass__ = type
__all__ = [
@@ -27,7 +27,7 @@ __all__ = [
from storm.locals import Bool, Int, Unicode
from zope.component import getUtility
-from zope.interface import implements
+from zope.interface import implementer
from mailman.database.model import Model
from mailman.database.types import Enum
@@ -37,8 +37,9 @@ from mailman.interfaces.preferences import IPreferences
+@implementer(IPreferences)
class Preferences(Model):
- implements(IPreferences)
+ """See `IPreferences`."""
id = Int(primary=True)
acknowledge_posts = Bool()
diff --git a/src/mailman/model/requests.py b/src/mailman/model/requests.py
index 030c630b9..a92332e4a 100644
--- a/src/mailman/model/requests.py
+++ b/src/mailman/model/requests.py
@@ -27,7 +27,7 @@ __all__ = [
from datetime import timedelta
from storm.locals import AutoReload, Int, RawStr, Reference, Unicode
from zope.component import getUtility
-from zope.interface import implements
+from zope.interface import implementer
from mailman.database.model import Model
from mailman.database.transaction import dbconnection
@@ -37,13 +37,14 @@ from mailman.interfaces.requests import IListRequests, RequestType
+@implementer(IPendable)
class DataPendable(dict):
- implements(IPendable)
+ pass
+@implementer(IListRequests)
class ListRequests:
- implements(IListRequests)
def __init__(self, mailing_list):
self.mailing_list = mailing_list
diff --git a/src/mailman/model/roster.py b/src/mailman/model/roster.py
index 84ed12930..56dad4bc8 100644
--- a/src/mailman/model/roster.py
+++ b/src/mailman/model/roster.py
@@ -38,7 +38,7 @@ __all__ = [
from storm.expr import And, Or
-from zope.interface import implements
+from zope.interface import implementer
from mailman.database.transaction import dbconnection
from mailman.interfaces.member import DeliveryMode, MemberRole
@@ -48,6 +48,7 @@ from mailman.model.member import Member
+@implementer(IRoster)
class AbstractRoster:
"""An abstract IRoster class.
@@ -57,8 +58,6 @@ class AbstractRoster:
This requires that subclasses implement the 'members' property.
"""
- implements(IRoster)
-
role = None
def __init__(self, mlist):
@@ -255,11 +254,10 @@ class Subscribers(AbstractRoster):
+@implementer(IRoster)
class Memberships:
"""A roster of a single user's memberships."""
- implements(IRoster)
-
name = 'memberships'
def __init__(self, user):
diff --git a/src/mailman/model/user.py b/src/mailman/model/user.py
index 15ed9170f..a723df44e 100644
--- a/src/mailman/model/user.py
+++ b/src/mailman/model/user.py
@@ -28,7 +28,7 @@ from storm.locals import (
DateTime, Int, RawStr, Reference, ReferenceSet, Unicode)
from storm.properties import UUID
from zope.event import notify
-from zope.interface import implements
+from zope.interface import implementer
from mailman.database.model import Model
from mailman.database.transaction import dbconnection
@@ -47,11 +47,10 @@ uid_factory = UniqueIDFactory(context='users')
+@implementer(IUser)
class User(Model):
"""Mailman users."""
- implements(IUser)
-
id = Int(primary=True)
display_name = Unicode()
_password = RawStr(name='password')
diff --git a/src/mailman/model/usermanager.py b/src/mailman/model/usermanager.py
index 2c4158b90..4c7daaa59 100644
--- a/src/mailman/model/usermanager.py
+++ b/src/mailman/model/usermanager.py
@@ -25,7 +25,7 @@ __all__ = [
]
-from zope.interface import implements
+from zope.interface import implementer
from mailman.database.transaction import dbconnection
from mailman.interfaces.address import ExistingAddressError
@@ -37,8 +37,9 @@ from mailman.model.user import User
+@implementer(IUserManager)
class UserManager:
- implements(IUserManager)
+ """See `IUserManager`."""
def create_user(self, email=None, display_name=None):
"""See `IUserManager`."""