def try_create_meta_curriculum( curriculum_config: Optional[Dict], env: SubprocessEnvManager, restore: bool = False ) -> Optional[MetaCurriculum]: if curriculum_config is None or len(curriculum_config) <= 0: return None else: meta_curriculum = MetaCurriculum(curriculum_config) if restore: meta_curriculum.try_restore_all_curriculum() return meta_curriculum
def test_restore_curriculums(mock_trainingstatus): meta_curriculum = MetaCurriculum(test_meta_curriculum_config) # Test restore to value mock_trainingstatus.get_parameter_state.return_value = 2 meta_curriculum.try_restore_all_curriculum() mock_trainingstatus.get_parameter_state.assert_has_calls( [ call("Brain1", StatusType.LESSON_NUM), call("Brain2", StatusType.LESSON_NUM) ], any_order=True, ) assert meta_curriculum.brains_to_curricula["Brain1"].lesson_num == 2 assert meta_curriculum.brains_to_curricula["Brain2"].lesson_num == 2 # Test restore to None mock_trainingstatus.get_parameter_state.return_value = None meta_curriculum.try_restore_all_curriculum() assert meta_curriculum.brains_to_curricula["Brain1"].lesson_num == 0 assert meta_curriculum.brains_to_curricula["Brain2"].lesson_num == 0