from .classifier import Classifier
from .weka_classifiers import WekaClassifiers

try:
    import weka.core.jvm as jvm
    jvm.start()

    weka_is_defined = True
except:
    weka_is_defined = False

__all__ = ["classifier",
           "weka_classifiers"]


from collections import OrderedDict
from util.config import Config


_classifier_list = OrderedDict( [ 
                            ["weka_classifiers", Config(WekaClassifiers().get_name(), weka_is_defined, bool, meta=WekaClassifiers, hidden=not weka_is_defined)],
                            ["invalid", Config("Invalid", True, bool, meta=None, hidden=True)]
                        ] )

def get_classifier_config():
    return _classifier_list

def set_classifier_config(configs):
    _classifier_list["weka_classifiers"] = Config.nvl_config(configs["weka_classifiers"], _classifier_list["weka_classifiers"])