diff --git a/config.json b/config.json deleted file mode 100644 index 3d18623..0000000 --- a/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "singularity_path": ".", - "singularity_name": "voxsim_singularity_latest.sif" -} - diff --git a/config.py b/config.py deleted file mode 100644 index 232a35c..0000000 --- a/config.py +++ /dev/null @@ -1,13 +0,0 @@ -import json -from os.path import dirname, join, realpath - - -def get_config(path=dirname(realpath(__file__))): - with open(join(path, "config.json")) as f: - return json.load(f) - - -def override_global_config(config): - print(config) - with open(join(dirname(realpath(__file__)), "config.json"), "w+") as f: - json.dump(config, f) diff --git a/setup.py b/setup.py index 19e4249..c2b3514 100644 --- a/setup.py +++ b/setup.py @@ -3,18 +3,16 @@ from simulator.utils.setup.documentation import DocCommand - if __name__ == "__main__": setup( name="simulation_generator", - version="1.0.0", + version="1.0.1", packages=find_packages(exclude=("tests", "tests.*")), url="", license="", author="avcaron", author_email="", description="", - data_files=[(".", ["config.py", "config.json"])], scripts=list( filter(lambda s: "init" not in s, glob.glob("scripts/*.py")) ), diff --git a/simulator/default.py b/simulator/default.py new file mode 100644 index 0000000..3a170b7 --- /dev/null +++ b/simulator/default.py @@ -0,0 +1,7 @@ +import typing +import pathlib + +SINGULARITY_PATH: typing.Final[pathlib.PurePath] = pathlib.PurePath() +SINGULARITY_NAME: typing.Final[str] = "voxsim_singularity_latest.sif" +SINGULARITY: typing.Final[pathlib.PurePath] = SINGULARITY_PATH / SINGULARITY_NAME +SINGULARITY_EXEC: typing.Final[str] = "singularity" diff --git a/simulator/factory/common/__init__.py b/simulator/factory/common/__init__.py index fd9d22f..8e48e44 100755 --- a/simulator/factory/common/__init__.py +++ b/simulator/factory/common/__init__.py @@ -1 +1 @@ -from .common import AttributeAsDictClass +from ._common import AttributeAsDictClass diff --git a/simulator/factory/common/common.py b/simulator/factory/common/_common.py old mode 100755 new mode 100644 similarity index 100% rename from simulator/factory/common/common.py rename to simulator/factory/common/_common.py diff --git a/simulator/factory/geometry_factory/__init__.py b/simulator/factory/geometry_factory/__init__.py index b69e045..6cbe349 100755 --- a/simulator/factory/geometry_factory/__init__.py +++ b/simulator/factory/geometry_factory/__init__.py @@ -1,3 +1,3 @@ -from .geometry_factory import GeometryFactory +from ._geometry_factory import GeometryFactory from simulator.factory.geometry_factory.utils.plane import Plane from simulator.factory.geometry_factory.utils.rotation import Rotation diff --git a/simulator/factory/geometry_factory/geometry_factory.py b/simulator/factory/geometry_factory/_geometry_factory.py old mode 100755 new mode 100644 similarity index 100% rename from simulator/factory/geometry_factory/geometry_factory.py rename to simulator/factory/geometry_factory/_geometry_factory.py diff --git a/simulator/factory/simulation_factory/__init__.py b/simulator/factory/simulation_factory/__init__.py index 1cb8895..fe0c0a9 100755 --- a/simulator/factory/simulation_factory/__init__.py +++ b/simulator/factory/simulation_factory/__init__.py @@ -1 +1 @@ -from .simulation_factory import SimulationFactory +from ._simulation_factory import SimulationFactory diff --git a/simulator/factory/simulation_factory/simulation_factory.py b/simulator/factory/simulation_factory/_simulation_factory.py old mode 100755 new mode 100644 similarity index 100% rename from simulator/factory/simulation_factory/simulation_factory.py rename to simulator/factory/simulation_factory/_simulation_factory.py diff --git a/simulator/runner/__init__.py b/simulator/runner/__init__.py index 119609b..49dc376 100755 --- a/simulator/runner/__init__.py +++ b/simulator/runner/__init__.py @@ -1 +1,2 @@ +from .config import SingularityConfig from .simulation_runner import SimulationRunner diff --git a/simulator/runner/config.py b/simulator/runner/config.py new file mode 100644 index 0000000..1667208 --- /dev/null +++ b/simulator/runner/config.py @@ -0,0 +1,10 @@ +import dataclasses +import pathlib + +import simulator.default as default + + +@dataclasses.dataclass +class SingularityConfig: + singularity: pathlib.PurePath = default.SINGULARITY + singularity_exec: str = default.SINGULARITY_EXEC diff --git a/simulator/runner/legacy.py b/simulator/runner/legacy.py index 463b321..b73efbb 100644 --- a/simulator/runner/legacy.py +++ b/simulator/runner/legacy.py @@ -10,21 +10,21 @@ from numpy import ones_like, sum import nrrd -from config import get_config +from .config import SingularityConfig from ..exceptions import SimulationRunnerException from ..utils.logging import RTLogging - logger = logging.getLogger(basename(__file__).split(".")[0]) class SimulationRunner: + def __init__( self, base_naming, geometry_infos, simulation_infos=None, - singularity_conf=get_config(), + singularity_conf=SingularityConfig(), output_nifti=False, ): self._geometry_path = geometry_infos["file_path"] @@ -40,17 +40,10 @@ def __init__( self._compartment_ids = simulation_infos["compartment_ids"] singularity_conf = ( - singularity_conf if singularity_conf else get_config() - ) - self._singularity = path.join( - singularity_conf["singularity_path"], - singularity_conf["singularity_name"], - ) - self._singularity_exec = ( - singularity_conf["singularity_exec"] - if "singularity_exec" in singularity_conf - else "singularity" + singularity_conf if singularity_conf else SingularityConfig() ) + self._singularity = singularity_conf.singularity + self._singularity_exec = singularity_conf.singularity_exec self._run_simulation = True if simulation_infos else False self._extension = "nii.gz" if output_nifti else "nrrd" diff --git a/simulator/runner/simulation_runner.py b/simulator/runner/simulation_runner.py index 1857cc1..ae13528 100755 --- a/simulator/runner/simulation_runner.py +++ b/simulator/runner/simulation_runner.py @@ -5,15 +5,15 @@ from os.path import basename from subprocess import PIPE, Popen -from config import get_config +from .config import SingularityConfig from .datastore import Datastore from ..utils.logging import RTLogging - logger = logging.getLogger(basename(__file__).split(".")[0]) class AsyncRunner: + def __init__(self): self._event_loop = new_event_loop() @@ -49,16 +49,11 @@ async def _run_async(self, command, log_file, log_tag): class SimulationRunner(AsyncRunner): _apps = {"phantom": "launch_voxsim", "diffusion mri": "launch_mitk"} - def __init__(self, singularity_conf=get_config()): - self._singularity = path.join( - singularity_conf["singularity_path"], - singularity_conf["singularity_name"], - ) + def __init__(self, singularity_conf=SingularityConfig()): + self._singularity = singularity_conf.singularity super().__init__() - self._singularity_exec = "singularity" - if "singularity_exec" in singularity_conf: - self._singularity_exec = singularity_conf["singularity_exec"] + self._singularity_exec = singularity_conf.singularity_exec def _bind_singularity(self, step, paths, arguments): return "{} run -B {} --app {} {} {}".format(