From 768a743f0f7ef81580ce2b8c87fa714f26edad4e Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr> Date: Thu, 15 Jun 2023 16:57:21 +0200 Subject: [PATCH] Checker: Add abstract checker class. --- src/Checker/Checker.py | 63 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 src/Checker/Checker.py diff --git a/src/Checker/Checker.py b/src/Checker/Checker.py new file mode 100644 index 00000000..92199b8d --- /dev/null +++ b/src/Checker/Checker.py @@ -0,0 +1,63 @@ +# -*- coding: utf-8 -*- + +from enum import Enum + +from Model.Except import NotImplementedMethodeError + +class STATUS(Enum): + UNKNOWN = -1 + OK = 0 + WARNING = 1 + ERROR = 2 + +class AbstractModelChecker(object): + def __init__(self): + self._name = "" + self._description = "" + + self._status = STATUS.UNKNOWN + self._summary = "Unknown" + + @property + def name(self): + return self._name + + @property + def description(self): + return self._description + + # Checker status + + def is_unknown(self): + return self._status == STATUS.UNKNOWN + + def is_ok(self): + return self._status == STATUS.OK + + def is_warning(self): + return self._status == STATUS.WARNING + + def is_error(self): + return self._status == STATUS.ERROR + + # Abstract function + + def run(self, study): + """Run checker function + + Args: + study: The study to check + + Returns: + Return true if study is valid for this checker, false + otherelse + """ + raise NotImplementedMethodeError(self, self.run) + + def summary(self): + """Return summary message + + Returns: + Return summary string + """ + raise NotImplementedMethodeError(self, self.summary) -- GitLab