summaryrefslogtreecommitdiff
path: root/alot/account.py
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2016-12-20 12:14:52 -0800
committerDylan Baker <dylan@pnwbakers.com>2016-12-21 17:18:39 -0800
commit7b6eb3007c135cad4c7a873a92816bb540afb171 (patch)
treec57cd43a37923511fb13bc7ef53615c2bb9a76c8 /alot/account.py
parent41ef1f14636caf213e7c25dc3eeb3d911418ee72 (diff)
Use abc module to signal abstract base classes
The Completer class is abastract, and it's complete method is also abstract. Using ABCMeta achieve two thing, first it will cause an error if a developer doesn't overwrite the method in a subclass. And second that it tells the static analysis tools to ignore the unused arguments in the signature, since this is the definition of a signature, not an actual function. By the same logic addressbook.AddressBook, and account.Account have been extended to use ABCMeta as their metaclass and have had their abstract methods decorated with the abstract method attribute.
Diffstat (limited to 'alot/account.py')
-rw-r--r--alot/account.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/alot/account.py b/alot/account.py
index 912380e3..5e66e9bf 100644
--- a/alot/account.py
+++ b/alot/account.py
@@ -1,6 +1,7 @@
# Copyright (C) 2011-2012 Patrick Totzke <patricktotzke@gmail.com>
# This file is released under the GNU GPL, version 3 or a later revision.
# For further details see the COPYING file
+import abc
import glob
import logging
import mailbox
@@ -29,6 +30,8 @@ class Account(object):
command to send out mails.
"""
+ __metaclass__ = abc.ABCMeta
+
address = None
"""this accounts main email address"""
aliases = []
@@ -159,6 +162,7 @@ class Account(object):
if self.draft_box is not None:
return self.store_mail(self.draft_box, mail)
+ @abc.abstractmethod
def send_mail(self, mail):
"""
sends given mail
@@ -168,7 +172,7 @@ class Account(object):
:returns: a `Deferred` that errs back with a class:`SendingMailFailed`,
containing a reason string if an error occured.
"""
- raise NotImplementedError
+ pass
class SendmailAccount(Account):