summaryrefslogtreecommitdiff
path: root/src/mailman/interfaces
diff options
context:
space:
mode:
authorBarry Warsaw2011-01-06 16:19:00 -0500
committerBarry Warsaw2011-01-06 16:19:00 -0500
commitd0112b5dc950b8d0180997b6e6dc71bd66af1ee8 (patch)
tree2f1143c787c69dd224d763917bc3d1f0154dbc06 /src/mailman/interfaces
parentc7e794caecb8b12d250be92f698fed8fa1f8a101 (diff)
downloadmailman-d0112b5dc950b8d0180997b6e6dc71bd66af1ee8.tar.gz
mailman-d0112b5dc950b8d0180997b6e6dc71bd66af1ee8.tar.zst
mailman-d0112b5dc950b8d0180997b6e6dc71bd66af1ee8.zip
Implement the email address validator as a utility for easier pluggability.
Diffstat (limited to 'src/mailman/interfaces')
-rw-r--r--src/mailman/interfaces/address.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/mailman/interfaces/address.py b/src/mailman/interfaces/address.py
index 446bae3f3..391eae849 100644
--- a/src/mailman/interfaces/address.py
+++ b/src/mailman/interfaces/address.py
@@ -26,6 +26,7 @@ __all__ = [
'AddressNotLinkedError',
'ExistingAddressError',
'IAddress',
+ 'IEmailValidator',
'InvalidEmailAddressError',
]
@@ -104,3 +105,25 @@ class IAddress(Interface):
preferences = Attribute(
"""This address's preferences.""")
+
+
+
+class IEmailValidator(Interface):
+ """An email validator."""
+
+ def is_valid(email):
+ """Check if an email address if valid.
+
+ :param email: A text email address.
+ :type email: str
+ :return: A flag indicating whether the email address is okay or not.
+ :rtype: bool
+ """
+
+ def validate(email):
+ """Validate an email address.
+
+ :param email: A text email address.
+ :type email: str
+ :raise InvalidEmailAddressError: when `email` is deemed invalid.
+ """