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