Coverage for credoai/evaluators/utils/utils.py: 38%

8 statements  

« prev     ^ index     » next       coverage.py v6.5.0, created at 2022-12-08 07:32 +0000

1from credoai.evaluators import Evaluator 

2 

3 

4def name2evaluator(evaluator_name): 

5 """Converts evaluator name to evaluator class""" 

6 for eval in all_subclasses(Evaluator): 

7 if evaluator_name == eval.__name__: 

8 return eval 

9 raise Exception( 

10 f"<{evaluator_name}> not found in list of Evaluators. Please confirm specified evaluator name is identical to Evaluator class definition." 

11 ) 

12 

13 

14def all_subclasses(cls): 

15 return set(cls.__subclasses__()).union( 

16 [s for c in cls.__subclasses__() for s in all_subclasses(c)] 

17 )