diff --git a/cml/shared/settings.py b/cml/shared/settings.py index 69bc969077f38e4c00f1839de02e97627f02acf9..3c9dbcf8ff120e0c9e342982eda939f7a32c1697 100644 --- a/cml/shared/settings.py +++ b/cml/shared/settings.py @@ -1,13 +1,57 @@ """Settings module. """ + + from itertools import starmap from dataclasses import dataclass from configparser import ConfigParser -# TODO (dmt): Set default values -class Settings: +class SetFeatures: + def __init__(self): + self.set_features = None + + def __get__(self, instance, owner): + return self.set_features + + def __set__(self, instance, value): + # TODO (dmt): Validate user input! + self.set_features = [int(i) for i in value.split(",")] + + +class CutTimeStamp: + def __init__(self): + self.cut_time_stamp = False + + def __get__(self, instance, owner): + return self.cut_time_stamp + + def __set__(self, instance, value): + # TODO (dmt): Validate user input! + self.cut_time_stamp = bool(value) + + +class BlockSize: + def __init__(self): + self.block_size = None + + def __get__(self, instance, owner): + return self.block_size + + def __set__(self, instance, value): + # TODO (dmt): Validate user input! + self.block_size = int(value) + + +class MetaSettings(type): + SET_FEATURES: SetFeatures = SetFeatures() + CUT_TIME_STAMP: CutTimeStamp = CutTimeStamp() + BLOCK_SIZE: BlockSize = BlockSize() + + +# TODO (dmt): Set default values. +class Settings(metaclass=MetaSettings): INPUT_FILE: str = "" LEARN_DIR: str = "" MAX_LEARN_DIR: int = 0