added setting manager
This commit is contained in:
		
							parent
							
								
									8c964967c2
								
							
						
					
					
						commit
						18960e8e33
					
				
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -51,6 +51,7 @@ coverage.xml | ||||
| .hypothesis/ | ||||
| .pytest_cache/ | ||||
| cover/ | ||||
| config.yml | ||||
| 
 | ||||
| # Translations | ||||
| *.mo | ||||
|  | ||||
| @ -1,3 +1,4 @@ | ||||
| vispy==0.12.2 | ||||
| PyQt5==5.15.9 | ||||
| numpy==1.24.2 | ||||
| numpy==1.24.2 | ||||
| PyYAML==6.0 | ||||
							
								
								
									
										59
									
								
								utils/settings/SettingManager.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								utils/settings/SettingManager.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,59 @@ | ||||
| from yaml import load, dump | ||||
| try: | ||||
|     from yaml import CLoader as Loader, CDumper as Dumper | ||||
| except ImportError: | ||||
|     from yaml import Loader, Dumper | ||||
| 
 | ||||
| class SettingManager: | ||||
|     instance = None | ||||
| 
 | ||||
|     def __init__(self): | ||||
|         try: | ||||
|             with open('config.yml', 'r') as f: | ||||
|                 self.settings = load(f.read(), Loader=Loader)       | ||||
|         except FileNotFoundError: | ||||
|             self.settings = {} | ||||
|             self.createInitialSettings() | ||||
| 
 | ||||
|     @staticmethod | ||||
|     def get_instance(): | ||||
|         if SettingManager.instance is None: | ||||
|             SettingManager.instance = SettingManager() | ||||
|         return SettingManager.instance | ||||
| 
 | ||||
| 
 | ||||
|     def save(self): | ||||
|         with open('config.yml', 'w') as f: | ||||
|             f.write(dump(self.settings, Dumper=Dumper)) | ||||
| 
 | ||||
|     def createInitialSettings(self): | ||||
|         self.settings['version'] = "1.0.0" | ||||
|         self.settings['name'] = 'Analyse Morphologique' | ||||
|         self.settings['authors'] = 'Alexis Doghmane <alexis@doghmane.fr>, Djalim Simaila <djalim.simaila@inrae.fr>' | ||||
|         self.settings['description'] = 'Analyse Morphologique' | ||||
|         self.settings['repo'] = 'https://forgemia.inra.fr/scanner3d/analysemorphologique' | ||||
|         self.settings['lastGraph'] = ["Aucun" for i in range(11)] | ||||
|         self.settings['discretisation_method'] = 'Z0-Zi >= DeltaZ' # 'Z0-Zi < DeltaZ' | ||||
|         self.settings['raw_data_suffix'] = '_delta_{delta_z}_analyse_brute' | ||||
|         self.settings['discrete_data_suffix'] = '_delta_{delta_z}_analyse_rayon' | ||||
|         self.settings['output_file_extention'] = '.txt' | ||||
|         self.settings['output_file_separator'] = '\t' | ||||
|         self.settings['pretiffy_output_file'] = True | ||||
|         self.save() | ||||
| 
 | ||||
|     def get_last_graph(self, graph_number): | ||||
|         return self.settings['lastGraph'][graph_number] | ||||
| 
 | ||||
|     def set_last_graph(self, graph_number, graph_name): | ||||
|         self.settings['lastGraph'][graph_number] = graph_name | ||||
|         self.save() | ||||
| 
 | ||||
|     def get_setting(self, setting_name): | ||||
|         return self.settings[setting_name] | ||||
|      | ||||
|     def get_settings(self): | ||||
|         return self.settings | ||||
|      | ||||
|     def set_setting(self, setting_name, setting_value): | ||||
|         self.settings[setting_name] = setting_value | ||||
|         self.save() | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user