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

Reply via email to