from ScEpTIC.config.analysis_config import AnalysisConfig from ScEpTIC.config.ast_transformations_config import ASTTransformationsConfig from ScEpTIC.config.custom_metrics_config import CustomMetricsConfig from ScEpTIC.config.deprecated_config import DeprecatedConfig from ScEpTIC.config.result_output_config import ResultOutputConfig from ScEpTIC.config.interrupts_config import InterruptsConfig from ScEpTIC.config.logging_config import LoggingConfig from ScEpTIC.config.memory_config import MemoryConfig from ScEpTIC.config.program_config import ProgramConfig from ScEpTIC.config.register_allocation_config import RegisterAllocationConfig from ScEpTIC.config.register_file_config import RegisterFileConfig from ScEpTIC.config.state_retention_config import StateRetentionConfig class ScEpTICConfig: """ ScEpTIC Configuration """ def __init__(self): self.program = ProgramConfig(self) self.logging = LoggingConfig(self) self.register_file = RegisterFileConfig(self) self.register_allocation = RegisterAllocationConfig(self) self.memory = MemoryConfig(self) self.result_output = ResultOutputConfig(self) self.state_retention = StateRetentionConfig(self) self.ast_transformations = ASTTransformationsConfig(self) self.deprecated = DeprecatedConfig(self) self.analysis = AnalysisConfig(self) self.custom_metrics = CustomMetricsConfig(self) self.interrupts = InterruptsConfig(self) def validate(self): """ Verify the configuration """ return def load_system_defaults(self, system_name): """ Loads the configuration of a pre-defined system :param system_name: the system name """ module = __import__(f'ScEpTIC.config.system_defaults.{system_name}', fromlist=['']) module.setup(self)