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_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