commit: f0c42aff30385e2e37b96bb0b568ed049d40443b
Author: Matt Turner <mattst88 <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 11 21:59:07 2020 +0000
Commit: Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Mon Apr 13 20:43:10 2020 +0000
URL: https://gitweb.gentoo.org/proj/catalyst.git/commit/?id=f0c42aff
catalyst: Require that subclasses implement needed properties
Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>
catalyst/base/targetbase.py | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/catalyst/base/targetbase.py b/catalyst/base/targetbase.py
index 0977bad3..a09abc73 100644
--- a/catalyst/base/targetbase.py
+++ b/catalyst/base/targetbase.py
@@ -1,8 +1,10 @@
import os
+from abc import ABC, abstractmethod
+
from catalyst.support import addl_arg_parse
-class TargetBase():
+class TargetBase(ABC):
"""
The toplevel class for all targets. This is about as generic as we get.
"""
@@ -13,3 +15,15 @@ class TargetBase():
'PATH': '/bin:/sbin:/usr/bin:/usr/sbin',
'TERM': os.getenv('TERM', 'dumb'),
}
+
+ @property
+ @classmethod
+ @abstractmethod
+ def required_values(cls):
+ return NotImplementedError
+
+ @property
+ @classmethod
+ @abstractmethod
+ def valid_values(cls):
+ return NotImplementedError