| from ruamel.yaml import YAML | |
| import logging | |
| class YParams(): | |
| """ Yaml file parser """ | |
| def __init__(self, yaml_filename, config_name, print_params=False): | |
| self._yaml_filename = yaml_filename | |
| self._config_name = config_name | |
| self.params = {} | |
| if print_params: | |
| print("------------------ Configuration ------------------") | |
| with open(yaml_filename) as _file: | |
| for key, val in YAML().load(_file)[config_name].items(): | |
| if print_params: print(key, val) | |
| if val =='None': val = None | |
| self.params[key] = val | |
| self.__setattr__(key, val) | |
| if print_params: | |
| print("---------------------------------------------------") | |
| def __getitem__(self, key): | |
| return self.params[key] | |
| def __setitem__(self, key, val): | |
| self.params[key] = val | |
| self.__setattr__(key, val) | |
| def __contains__(self, key): | |
| return (key in self.params) | |
| def update_params(self, config): | |
| for key, val in config.items(): | |
| self.params[key] = val | |
| self.__setattr__(key, val) | |
| def log(self): | |
| logging.info("------------------ Configuration ------------------") | |
| logging.info("Configuration file: "+str(self._yaml_filename)) | |
| logging.info("Configuration name: "+str(self._config_name)) | |
| for key, val in self.params.items(): | |
| logging.info(str(key) + ' ' + str(val)) | |
| logging.info("---------------------------------------------------") |