smashbox.model.setup

  1import yaml
  2import os
  3from smashbox.tools.tools import check_asset_path, print_tree
  4from smashbox.init import param
  5
  6
  7class setup:
  8    """The class setup stores the Smash model setup and functions to manipulate
  9    the setup"""
 10
 11    def __init__(self, param: param = None):
 12
 13        self.setup = None
 14        """The smash model setup"""
 15
 16        self._setup_file = None
 17        """The preconfigured setup file to use."""
 18
 19        self._param = param
 20        """The easy smash parameters src.param.param"""
 21
 22        if param.setup_file is not None:
 23            self._setup_file = param.setup_file
 24        else:
 25            self._setup_file = os.path.join(
 26                self._param.asset_dir, "setup", "setup_rhax_gr4_dt3600.yaml"
 27            )
 28
 29        self.load_setup(self._setup_file)
 30
 31    @property
 32    def setup_file(self):
 33        """The current selected setup file in the preconfigured list."""
 34        return self._setup_file
 35
 36    @setup_file.setter
 37    def setup_file(self, value: os.PathLike):
 38        """Set and load the a preconfigured setup file."""
 39        self._setup_file = check_asset_path(
 40            os.path.join(self._param.asset_dir, "setup"), value
 41        )
 42        self.load_setup(self._setup_file)
 43
 44    def list_available_setup(self):
 45        """List available preconfigured setup"""
 46        print_tree(os.path.join(self._param.asset_dir, "setup"))
 47
 48    def set_setup(self, attr: str | None = None, value: any = None):
 49        """
 50        Change the value of an attribute of the setup in setup.setup.
 51        :param attr: Name of the attribute, defaults to None
 52        :type attr: str | None, optional
 53        :param value: value of the attribute, defaults to None
 54        :type value: any, optional
 55        """
 56
 57        if attr is not None:
 58            self.setup.update({attr: value})
 59
 60    def get_setup(self, attr: str | None = None):
 61        """
 62        Get the value of an attribute in setup.setup
 63        :param attr: name of the attribute, defaults to None
 64        :type attr: str | None, optional
 65        """
 66
 67        if attr in self.setup.keys():
 68            return self.setup["attr"]
 69        else:
 70            raise ValueError(f"attribute '{attr}' not found in setup.")
 71
 72    def update_setup(self, options: dict = {}):
 73        """
 74        Update the value of the setup with a dictionnary.
 75        :param options: Dictionnary with some setup options, defaults to {}
 76        """
 77
 78        self.setup.update(options)
 79
 80    def load_setup(self, filename: os.PathLike = None):
 81        """
 82        Load an existing setup file (.yaml)
 83        :param filename: Path to the setup file, defaults to None
 84        :type filename: : os.PathLike, optional
 85        """
 86
 87        filename = check_asset_path(
 88            os.path.join(self._param.asset_dir, "setup"), filename
 89        )
 90
 91        if os.path.exists(filename):
 92
 93            with open(filename, "r") as file:
 94
 95                self.setup = yaml.safe_load(file)
 96
 97            self._setup_file = filename
 98
 99        else:
100            raise ValueError(f"{filename} does not exist.")
101
102    def write_setup(self, filename: os.PathLike = None):
103        """
104        Write the setup to a file
105        :param filename: Path to the file
106        :type filename: os.PathLike
107        """
108
109        with open(filename, "w") as file:
110
111            yaml.dump(self.setup, file)
class setup:
  8class setup:
  9    """The class setup stores the Smash model setup and functions to manipulate
 10    the setup"""
 11
 12    def __init__(self, param: param = None):
 13
 14        self.setup = None
 15        """The smash model setup"""
 16
 17        self._setup_file = None
 18        """The preconfigured setup file to use."""
 19
 20        self._param = param
 21        """The easy smash parameters src.param.param"""
 22
 23        if param.setup_file is not None:
 24            self._setup_file = param.setup_file
 25        else:
 26            self._setup_file = os.path.join(
 27                self._param.asset_dir, "setup", "setup_rhax_gr4_dt3600.yaml"
 28            )
 29
 30        self.load_setup(self._setup_file)
 31
 32    @property
 33    def setup_file(self):
 34        """The current selected setup file in the preconfigured list."""
 35        return self._setup_file
 36
 37    @setup_file.setter
 38    def setup_file(self, value: os.PathLike):
 39        """Set and load the a preconfigured setup file."""
 40        self._setup_file = check_asset_path(
 41            os.path.join(self._param.asset_dir, "setup"), value
 42        )
 43        self.load_setup(self._setup_file)
 44
 45    def list_available_setup(self):
 46        """List available preconfigured setup"""
 47        print_tree(os.path.join(self._param.asset_dir, "setup"))
 48
 49    def set_setup(self, attr: str | None = None, value: any = None):
 50        """
 51        Change the value of an attribute of the setup in setup.setup.
 52        :param attr: Name of the attribute, defaults to None
 53        :type attr: str | None, optional
 54        :param value: value of the attribute, defaults to None
 55        :type value: any, optional
 56        """
 57
 58        if attr is not None:
 59            self.setup.update({attr: value})
 60
 61    def get_setup(self, attr: str | None = None):
 62        """
 63        Get the value of an attribute in setup.setup
 64        :param attr: name of the attribute, defaults to None
 65        :type attr: str | None, optional
 66        """
 67
 68        if attr in self.setup.keys():
 69            return self.setup["attr"]
 70        else:
 71            raise ValueError(f"attribute '{attr}' not found in setup.")
 72
 73    def update_setup(self, options: dict = {}):
 74        """
 75        Update the value of the setup with a dictionnary.
 76        :param options: Dictionnary with some setup options, defaults to {}
 77        """
 78
 79        self.setup.update(options)
 80
 81    def load_setup(self, filename: os.PathLike = None):
 82        """
 83        Load an existing setup file (.yaml)
 84        :param filename: Path to the setup file, defaults to None
 85        :type filename: : os.PathLike, optional
 86        """
 87
 88        filename = check_asset_path(
 89            os.path.join(self._param.asset_dir, "setup"), filename
 90        )
 91
 92        if os.path.exists(filename):
 93
 94            with open(filename, "r") as file:
 95
 96                self.setup = yaml.safe_load(file)
 97
 98            self._setup_file = filename
 99
100        else:
101            raise ValueError(f"{filename} does not exist.")
102
103    def write_setup(self, filename: os.PathLike = None):
104        """
105        Write the setup to a file
106        :param filename: Path to the file
107        :type filename: os.PathLike
108        """
109
110        with open(filename, "w") as file:
111
112            yaml.dump(self.setup, file)

The class setup stores the Smash model setup and functions to manipulate the setup

setup( param: <module 'smashbox.init.param' from '/home/maxime/DEV/smashbox/smashbox/init/param.py'> = None)
12    def __init__(self, param: param = None):
13
14        self.setup = None
15        """The smash model setup"""
16
17        self._setup_file = None
18        """The preconfigured setup file to use."""
19
20        self._param = param
21        """The easy smash parameters src.param.param"""
22
23        if param.setup_file is not None:
24            self._setup_file = param.setup_file
25        else:
26            self._setup_file = os.path.join(
27                self._param.asset_dir, "setup", "setup_rhax_gr4_dt3600.yaml"
28            )
29
30        self.load_setup(self._setup_file)
setup

The smash model setup

setup_file
32    @property
33    def setup_file(self):
34        """The current selected setup file in the preconfigured list."""
35        return self._setup_file

The current selected setup file in the preconfigured list.

def list_available_setup(self):
45    def list_available_setup(self):
46        """List available preconfigured setup"""
47        print_tree(os.path.join(self._param.asset_dir, "setup"))

List available preconfigured setup

def set_setup(self, attr: str | None = None, value: <built-in function any> = None):
49    def set_setup(self, attr: str | None = None, value: any = None):
50        """
51        Change the value of an attribute of the setup in setup.setup.
52        :param attr: Name of the attribute, defaults to None
53        :type attr: str | None, optional
54        :param value: value of the attribute, defaults to None
55        :type value: any, optional
56        """
57
58        if attr is not None:
59            self.setup.update({attr: value})

Change the value of an attribute of the setup in setup.setup.

Parameters
  • attr: Name of the attribute, defaults to None
  • value: value of the attribute, defaults to None
def get_setup(self, attr: str | None = None):
61    def get_setup(self, attr: str | None = None):
62        """
63        Get the value of an attribute in setup.setup
64        :param attr: name of the attribute, defaults to None
65        :type attr: str | None, optional
66        """
67
68        if attr in self.setup.keys():
69            return self.setup["attr"]
70        else:
71            raise ValueError(f"attribute '{attr}' not found in setup.")

Get the value of an attribute in setup.setup

Parameters
  • attr: name of the attribute, defaults to None
def update_setup(self, options: dict = {}):
73    def update_setup(self, options: dict = {}):
74        """
75        Update the value of the setup with a dictionnary.
76        :param options: Dictionnary with some setup options, defaults to {}
77        """
78
79        self.setup.update(options)

Update the value of the setup with a dictionnary.

Parameters
  • options: Dictionnary with some setup options, defaults to {}
def load_setup(self, filename: os.PathLike = None):
 81    def load_setup(self, filename: os.PathLike = None):
 82        """
 83        Load an existing setup file (.yaml)
 84        :param filename: Path to the setup file, defaults to None
 85        :type filename: : os.PathLike, optional
 86        """
 87
 88        filename = check_asset_path(
 89            os.path.join(self._param.asset_dir, "setup"), filename
 90        )
 91
 92        if os.path.exists(filename):
 93
 94            with open(filename, "r") as file:
 95
 96                self.setup = yaml.safe_load(file)
 97
 98            self._setup_file = filename
 99
100        else:
101            raise ValueError(f"{filename} does not exist.")

Load an existing setup file (.yaml)

Parameters
  • filename: Path to the setup file, defaults to None
def write_setup(self, filename: os.PathLike = None):
103    def write_setup(self, filename: os.PathLike = None):
104        """
105        Write the setup to a file
106        :param filename: Path to the file
107        :type filename: os.PathLike
108        """
109
110        with open(filename, "w") as file:
111
112            yaml.dump(self.setup, file)

Write the setup to a file

Parameters
  • filename: Path to the file