diff options
| author | Barry Warsaw | 2011-01-06 16:19:00 -0500 |
|---|---|---|
| committer | Barry Warsaw | 2011-01-06 16:19:00 -0500 |
| commit | d0112b5dc950b8d0180997b6e6dc71bd66af1ee8 (patch) | |
| tree | 2f1143c787c69dd224d763917bc3d1f0154dbc06 /src/mailman/interfaces | |
| parent | c7e794caecb8b12d250be92f698fed8fa1f8a101 (diff) | |
| download | mailman-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.py | 23 |
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. + """ |
