diff options
| author | DanteNiewenhuis <d.niewenhuis@hotmail.com> | 2026-06-15 19:22:50 +0200 |
|---|---|---|
| committer | DanteNiewenhuis <d.niewenhuis@hotmail.com> | 2026-06-15 19:25:45 +0200 |
| commit | 1a314f07b61ebe9b1f547262388ae0bbc5930782 (patch) | |
| tree | 18f96e211ec2f23c775dbdfef5f309259740675b /opendc-experiments/opendc-experiments-m3sa/src/main | |
| parent | 53ce2807c0dd2a45227e2351bc634f6a53412c6a (diff) | |
Added proper Python setup for M3SA (#431)
Diffstat (limited to 'opendc-experiments/opendc-experiments-m3sa/src/main')
3 files changed, 23 insertions, 23 deletions
diff --git a/opendc-experiments/opendc-experiments-m3sa/src/main/kotlin/org/opendc/experiments/m3sa/M3SAAnalyzer.kt b/opendc-experiments/opendc-experiments-m3sa/src/main/kotlin/org/opendc/experiments/m3sa/M3SAAnalyzer.kt index 5cc7cb78..ef309126 100644 --- a/opendc-experiments/opendc-experiments-m3sa/src/main/kotlin/org/opendc/experiments/m3sa/M3SAAnalyzer.kt +++ b/opendc-experiments/opendc-experiments-m3sa/src/main/kotlin/org/opendc/experiments/m3sa/M3SAAnalyzer.kt @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 AtLarge Research + * Copyright (c) 2026 AtLarge Research * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -20,7 +20,7 @@ * SOFTWARE. */ -import java.nio.file.Files +package org.opendc.experiments.m3sa import java.nio.file.Paths /** @@ -33,29 +33,29 @@ public fun m3saAnalyze( m3saSetupPath: String, m3saExecPath: String, ) { - // script to run - val scriptPath = - Paths.get(m3saExecPath, "main.py") - .toAbsolutePath() - .normalize() - .toString() - - // look for venv python; if missing, use system python3 - val venvPython = - Paths.get(m3saExecPath, "venv", "bin", "python3") - .toAbsolutePath() - .normalize() - val pythonBin = - if (Files.isRegularFile(venvPython) && Files.isExecutable(venvPython)) { - venvPython.toString() + val isWindows: Boolean = + System.getProperty("os.name").startsWith("Windows", ignoreCase = true) + val command: List<String> = + if (isWindows) { + listOf( + "python", + Paths.get(m3saExecPath, "main.py") + .toAbsolutePath() + .normalize() + .toString(), + ) } else { - "python3" // fallback + listOf( + Paths.get(m3saExecPath, "m3sa") + .toAbsolutePath() + .normalize() + .toString(), + ) } val process = ProcessBuilder( - pythonBin, - scriptPath, + *command.toTypedArray(), m3saSetupPath, "$outputFolderPath/raw-output", "-o", diff --git a/opendc-experiments/opendc-experiments-m3sa/src/main/kotlin/org/opendc/experiments/m3sa/runner/M3SACli.kt b/opendc-experiments/opendc-experiments-m3sa/src/main/kotlin/org/opendc/experiments/m3sa/runner/M3SACli.kt index 51919722..de833ad8 100644 --- a/opendc-experiments/opendc-experiments-m3sa/src/main/kotlin/org/opendc/experiments/m3sa/runner/M3SACli.kt +++ b/opendc-experiments/opendc-experiments-m3sa/src/main/kotlin/org/opendc/experiments/m3sa/runner/M3SACli.kt @@ -30,8 +30,8 @@ import com.github.ajalt.clikt.parameters.options.defaultLazy import com.github.ajalt.clikt.parameters.options.option import com.github.ajalt.clikt.parameters.types.file import com.github.ajalt.clikt.parameters.types.int -import m3saAnalyze import org.opendc.experiments.base.experiment.getExperiment +import org.opendc.experiments.m3sa.m3saAnalyze import org.opendc.experiments.m3sa.scenario.getOutputFolder import java.io.File diff --git a/opendc-experiments/opendc-experiments-m3sa/src/main/python/m3sa b/opendc-experiments/opendc-experiments-m3sa/src/main/python/m3sa index 06ecaaea..855447cc 100755 --- a/opendc-experiments/opendc-experiments-m3sa/src/main/python/m3sa +++ b/opendc-experiments/opendc-experiments-m3sa/src/main/python/m3sa @@ -9,11 +9,11 @@ VENV_PATH="$SRC_PATH/venv" if [ ! -d "$VENV_PATH" ]; then python3 -m venv "$VENV_PATH" || exit 1 - pip install --upgrade pip || exit 1 - pip install -r "$SRC_PATH/requirements.txt" || exit 1 fi . "$VENV_PATH/bin/activate" +pip install --upgrade pip || exit 1 +pip install -r "$SRC_PATH/requirements.txt" || exit 1 python3 "$SRC_PATH/main.py" "$@" |
