diff options
Diffstat (limited to 'Mailman/interfaces')
| -rw-r--r-- | Mailman/interfaces/database.py | 16 | ||||
| -rw-r--r-- | Mailman/interfaces/languages.py | 7 | ||||
| -rw-r--r-- | Mailman/interfaces/messages.py (renamed from Mailman/interfaces/messagestore.py) | 11 | ||||
| -rw-r--r-- | Mailman/interfaces/pending.py | 22 |
4 files changed, 52 insertions, 4 deletions
diff --git a/Mailman/interfaces/database.py b/Mailman/interfaces/database.py index 23405b9e8..f4dd693a4 100644 --- a/Mailman/interfaces/database.py +++ b/Mailman/interfaces/database.py @@ -30,12 +30,24 @@ from zope.interface import Interface, Attribute class IDatabase(Interface): """Database layer interface.""" - def initialize(): - """Initialize the database layer, using whatever means necessary.""" + def initialize(debug=None): + """Initialize the database layer, using whatever means necessary. + + :param debug: When None (the default), the configuration file + determines whether the database layer should have increased + debugging or not. When True or False, this overrides the + configuration file setting. + """ def flush(): """Flush current database changes.""" + def _reset(): + """Reset the database to its pristine state. + + This is only used by the test framework. + """ + # XXX Eventually we probably need to support a transaction manager # interface, e.g. begin(), commit(), abort(). We will probably also need # to support a shutdown() method for cleanly disconnecting from the diff --git a/Mailman/interfaces/languages.py b/Mailman/interfaces/languages.py index b9ddd8c90..84663cd89 100644 --- a/Mailman/interfaces/languages.py +++ b/Mailman/interfaces/languages.py @@ -71,3 +71,10 @@ class ILanguageManager(Interface): enabled_names = Attribute( """An iterator over all enabled language names.""") + + + +class ILanguage(Interface): + """The representation of a language.""" + + code = Attribute("""The 2-character language code.""") diff --git a/Mailman/interfaces/messagestore.py b/Mailman/interfaces/messages.py index 541238fd1..9fac98d76 100644 --- a/Mailman/interfaces/messagestore.py +++ b/Mailman/interfaces/messages.py @@ -99,3 +99,14 @@ class IMessageStore(Interface): messages = Attribute( """An iterator over all messages in this message store.""") + + + +class IMessage(Interface): + """The representation of an email message.""" + + hash = Attribute("""The unique SHA1 hash of the message.""") + + path = Attribute("""The filesystem path to the message object.""") + + message_id = Attribute("""The message's Message-ID header.""") diff --git a/Mailman/interfaces/pending.py b/Mailman/interfaces/pending.py index 68a4c41de..22d18a07c 100644 --- a/Mailman/interfaces/pending.py +++ b/Mailman/interfaces/pending.py @@ -40,10 +40,28 @@ class IPendable(Interface): Both the keys and values must be strings. """ - + + + +class IPended(Interface): + """A pended event, tied to a token.""" + + token = Attribute("""The pended token.""") + + expiration_date = Attribute("""The expiration date of the pended event.""") + + + +class IPendedKeyValue(Interface): + """A pended key/value pair.""" + + key = Attribute("""The pended key.""") + + value = Attribute("""The pended value.""") + -class IPending(Interface): +class IPendings(Interface): """Interface to pending database.""" def add(pendable, lifetime=None): |
