Loading csp-lmc-common/csp_lmc_common/csp_manage_json.py 0 → 100644 +50 −0 Original line number Diff line number Diff line import json from ska_telmodel.csp.schema import validate_csp_config class ManageJson: def __init__(self, json_config:str, logger): self.major_version=None self.minor_version=None self.config = json.loads(json_config) self.logger = logger def detect_version(self): #ADR-22 if 'interface' in self.config.keys(): interface = self.config['interface'] version_str = interface.split('/')[-1] self.major_version = int(version_str.split('.')[0]) self.minor_version = int(version_str.split('.')[1]) #ADR-18 elif 'common' in config.keys(): self.major_version = 0 self.minor_version = 2 #pre ADR-18 else: self.major_version = 0 self.minor_version = 1 self.version = [self.major_version, self.minor_version] self.logger.info(f'Version is{major_version}{minor_version}') def get_section(self, name:str): try: return self.config[name] except KeyError as e: self.logger.warning(e) raise ValueError(e) from e def conversion_02_01(self): common_dict = self.get_section('common') cbf_dict = self.get_section('cbf') config_converted = {**common_dict, **cbf_dict} validate_csp_config(0, config_converted) self.config = config_converted def build_json(self): if self.version == [0, 1]: pass elif self.version == [0,2]: self.conversion_02_01() else: raise ValueError(f'version{self.version}is not supported') return json.dumps(self.config) csp-lmc-common/requirements.txt +1 −0 Original line number Diff line number Diff line Loading @@ -3,3 +3,4 @@ pytango >= 9.3.2 jsonschema >= 3.2.0 lmcbaseclasses >= 0.7.2 ska-log-transactions ska-telescope-model Loading
csp-lmc-common/csp_lmc_common/csp_manage_json.py 0 → 100644 +50 −0 Original line number Diff line number Diff line import json from ska_telmodel.csp.schema import validate_csp_config class ManageJson: def __init__(self, json_config:str, logger): self.major_version=None self.minor_version=None self.config = json.loads(json_config) self.logger = logger def detect_version(self): #ADR-22 if 'interface' in self.config.keys(): interface = self.config['interface'] version_str = interface.split('/')[-1] self.major_version = int(version_str.split('.')[0]) self.minor_version = int(version_str.split('.')[1]) #ADR-18 elif 'common' in config.keys(): self.major_version = 0 self.minor_version = 2 #pre ADR-18 else: self.major_version = 0 self.minor_version = 1 self.version = [self.major_version, self.minor_version] self.logger.info(f'Version is{major_version}{minor_version}') def get_section(self, name:str): try: return self.config[name] except KeyError as e: self.logger.warning(e) raise ValueError(e) from e def conversion_02_01(self): common_dict = self.get_section('common') cbf_dict = self.get_section('cbf') config_converted = {**common_dict, **cbf_dict} validate_csp_config(0, config_converted) self.config = config_converted def build_json(self): if self.version == [0, 1]: pass elif self.version == [0,2]: self.conversion_02_01() else: raise ValueError(f'version{self.version}is not supported') return json.dumps(self.config)
csp-lmc-common/requirements.txt +1 −0 Original line number Diff line number Diff line Loading @@ -3,3 +3,4 @@ pytango >= 9.3.2 jsonschema >= 3.2.0 lmcbaseclasses >= 0.7.2 ska-log-transactions ska-telescope-model