def get_scalars(): """Get scalar data for given train_ids and tags.""" train_ids = request.args.getlist('train_id') tags = request.args.getlist('tag') processor = ScalarsProcessor(DATA_MANAGER) scalars = processor.get_scalars(train_ids, tags) return jsonify({'scalars': scalars})
def test_get_metadata_list_with_not_exist_id(self): """Get metadata list with not exist id.""" test_train_id = 'not_exist_id' scalar_processor = ScalarsProcessor(self._mock_data_manager) with pytest.raises(TrainJobNotExistError) as exc_info: scalar_processor.get_metadata_list(test_train_id, self._tag_name) assert exc_info.value.error_code == '50545005' assert exc_info.value.message == "Train job is not exist. Detail: Can not find the given train job in cache."
def test_get_metadata_list_with_not_exist_id(self, load_scalar_record): """Get metadata list with not exist id.""" test_train_id = 'not_exist_id' scalar_processor = ScalarsProcessor(self._mock_data_manager) with pytest.raises(ParamValueError) as exc_info: scalar_processor.get_metadata_list(test_train_id, self._tag_name) assert exc_info.value.error_code == '50540002' assert "Can not find any data in loader pool about the train job." in exc_info.value.message
def test_get_metadata_list_with_not_exist_tag(self): """Get metadata list with not exist tag.""" test_tag_name = 'not_exist_tag_name' scalar_processor = ScalarsProcessor(self._mock_data_manager) with pytest.raises(ScalarNotExistError) as exc_info: scalar_processor.get_metadata_list(self._train_id, test_tag_name) assert exc_info.value.error_code == '5054500E' assert "Can not find any data in this train job by given tag." in exc_info.value.message
def test_get_scalars(self): """Get scalars success.""" scalar_processor = ScalarsProcessor(self._mock_data_manager) scalars = scalar_processor.get_scalars([self._train_id], [self._complete_tag_name]) scalar = scalars[0] assert scalar['train_id'] == self._train_id assert scalar['tag'] == self._complete_tag_name for recv_values, expected_values in zip(scalar['values'], self._scalars_metadata): assert recv_values.get('wall_time') == expected_values.get('wall_time') assert recv_values.get('step') == expected_values.get('step') assert abs(recv_values.get('value') - expected_values.get('value')) < 1e-6
def test_get_metadata_list_success(self): """Get metadata list success.""" test_tag_name = self._complete_tag_name scalar_processor = ScalarsProcessor(self._mock_data_manager) results = scalar_processor.get_metadata_list(self._train_id, test_tag_name) recv_metadata = results.get('metadatas') for recv_values, expected_values in zip(recv_metadata, self._scalars_metadata): assert recv_values.get('wall_time') == expected_values.get('wall_time') assert recv_values.get('step') == expected_values.get('step') assert abs(recv_values.get('value') - expected_values.get('value')) < 1e-6
def scalar_metadata(): """ Interface to fetch metadata about the scalars for the particular run and tag. Returns: Response, which contains a list in JSON containing scalar events, each one of which is an object containing items' wall_time, step and value. """ tag = request.args.get("tag") train_id = get_train_id(request) processor = ScalarsProcessor(DATA_MANAGER) response = processor.get_metadata_list(train_id, tag) metadatas = response['metadatas'] for metadata in metadatas: value = metadata.get("value") metadata["value"] = if_nan_inf_to_none('scalar_value', value) return jsonify(response)