diff options
| author | Radu Nicolae <rnicolae04@gmail.com> | 2025-06-16 18:01:07 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-16 18:01:07 +0200 |
| commit | 0df3d9ced743ac3385dd710c7133a6cf369b051c (patch) | |
| tree | eff5d6d67c275643e229731ba08c5fe7dc4ccd0a /opendc-experiments/opendc-experiments-m3sa/src/main/python/main.py | |
| parent | c7e303ad1b5217e2ff24cee9538ac841d6149706 (diff) | |
integrated M3SA, updated with tests and CpuPowerModels
Diffstat (limited to 'opendc-experiments/opendc-experiments-m3sa/src/main/python/main.py')
| -rw-r--r-- | opendc-experiments/opendc-experiments-m3sa/src/main/python/main.py | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/opendc-experiments/opendc-experiments-m3sa/src/main/python/main.py b/opendc-experiments/opendc-experiments-m3sa/src/main/python/main.py index 11ee836d..8f7b82ec 100644 --- a/opendc-experiments/opendc-experiments-m3sa/src/main/python/main.py +++ b/opendc-experiments/opendc-experiments-m3sa/src/main/python/main.py @@ -1,19 +1,29 @@ -from os import sys +from models import MultiModel, MetaModel +from util import SimulationConfig, parse_configuration +from argparse import ArgumentParser, Namespace -from input_parser import read_input -from models.MetaModel import MetaModel -from models.MultiModel import MultiModel + +def arg_parser() -> Namespace: + parser = ArgumentParser(prog="m3sa", description="Multi-Model Simulation and Analysis") + parser.add_argument("config", help="Path to the JSON configuration file", type=str) + parser.add_argument("simulation", help="Path to the simulation directory", type=str) + parser.add_argument("-o", "--output", help="Path to the output directory", type=str, nargs="?") + return parser.parse_args() def main(): - multimodel = MultiModel( - user_input=read_input(sys.argv[2]), - path=sys.argv[1], - ) + arg_input: Namespace = arg_parser() + output_path: str = arg_input.output if arg_input.output else "output" + simulation_path: str = arg_input.simulation + simulation_config: SimulationConfig = parse_configuration(arg_input.config, output_path, simulation_path) - multimodel.generate_plot() + multi_model: MultiModel = MultiModel(config=simulation_config) + multi_model.generate_plot() - MetaModel(multimodel) + if simulation_config.is_metamodel: + meta_model: MetaModel = MetaModel(multi_model) + meta_model.compute() + meta_model.output() if __name__ == "__main__": |
