diagnostic.py 1.11 KB
Newer Older
    @staticmethod
    def register(cls, alias):
        try:
            Diagnostic._diag_list[alias] = cls
        except AttributeError:
            Diagnostic._diag_list = dict()
            Diagnostic._diag_list[alias] = cls

    @staticmethod
    def get_diagnostic(name):
        """
        Return the class for a diagnostic given its name

        :param name: diagnostic alias
        :type name: str
        :return: the selected Diagnostic class, None if name can not be found
        :rtype: Diagnostic
        """
        try:
            if name in Diagnostic._diag_list.keys():
                return Diagnostic._diag_list[name]
        except AttributeError:
            pass
        return None

    def __init__(self, data_manager):
        self.data_manager = data_manager
        self.required_vars = []
        self.generated_vars = []
        self.can_run_multiple_instances = True

    def compute(self):
        pass

    @classmethod
    def generate_jobs(cls, data_manager, startdates, members, chunks, options):
        raise Exception("Class must override generate_jobs method")