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
« prev ^ index » next coverage.py v6.5.0, created at 2022-12-08 07:32 +0000
1from credoai.evaluators import Evaluator
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 )
14def all_subclasses(cls):
15 return set(cls.__subclasses__()).union(
16 [s for c in cls.__subclasses__() for s in all_subclasses(c)]
17 )