Checker: Add abstract checker class.

mesh
Pierre-Antoine Rouby 2023-06-15 16:57:21 +02:00
parent 9d4e51bf22
commit 768a743f0f
1 changed files with 63 additions and 0 deletions

63
src/Checker/Checker.py Normal file
View File

@ -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)