comparison resfinder/cge/out/translate.py @ 0:a16d245332d6 draft default tip

Uploaded
author dcouvin
date Wed, 08 Dec 2021 01:46:07 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:a16d245332d6
1 #!/usr/bin/env python3
2
3 from result import Result
4 from exceptions import CGECoreOutTypeError, CGECoreOutTranslateError
5
6
7 class Translate():
8
9 def __init__(self, type, transl_table):
10 self.transl_table = transl_table
11 self.type = type
12
13 if(type not in Result.beone_defs):
14 raise CGECoreOutTypeError(
15 "Unknown type given to Translate object. type given: {}. "
16 "type must be one of:\n{}"
17 .format(type, list(Result.beone_defs.keys())))
18
19 self._check_translation_keys()
20
21 def translate(self, source_dict):
22 dest_dict = {}
23 for key, val in source_dict.items():
24 dest_key = self.transl_table.get(key, None)
25 if(dest_key is not None and val is not None):
26 dest_dict[dest_key] = val
27 return dest_dict
28
29 def _check_translation_keys(self):
30 for key, val in self.transl_table.items():
31 if(val not in Result.beone_defs[self.type]):
32 raise CGECoreOutTranslateError(
33 "Value in the translation table given was not found in the"
34 " definition of the given type. Type given: {}. Value not "
35 "found: {}. Possible values for the given type: {}"
36 .format(self.type, self.key,
37 list(self.transl_table.keys())))