def _load_yaml_and_configure(self, path, label, cache, device, device_memory): # pylint: disable=R0913 doc = load_yaml_file(path, label) try: doc['device'] = parse_device(doc.get('device', {}), device_id=device, device_memory=device_memory) doc['data'] = parse_data(doc.get('data', {}), cache=cache, plugins=self.plugins) if 'random-seed' in doc and not isinstance(doc['random-seed'], int): raise VergeMLError('Invalid value option random-seed.', 'random-seed must be an integer value.', hint_type='value', hint_key='random-seed') except VergeMLError as err: if err.hint_key: with open(path) as file: definition = yaml_find_definition(file, err.hint_key, err.hint_type) if definition: line, column, length = definition err.message = display_err_in_file(path, line, column, str(err), length) # clear suggestion because it is already contained in the error message. err.suggestion = None raise err else: raise err else: raise err return doc
def test_display_err(): line, column, length = yaml_find_definition(TEST_YAML, 'data.preprocess.1.op', 'value') msg = "Invalid preprocessing operation 'flip-horizontalz'. Did you mean 'flip-horizontal'?" res = _display_err("vergeml.yaml", line, column, msg, length, 3, TEST_YAML) res = "Error! " + res assert res == """\
def test_find_definition_arr_val(): res = yaml_find_definition(TEST_YAML, 'data.preprocess.1.op', 'value') assert res == (9, 14, 16)
def test_find_definition_arr_key(): res = yaml_find_definition(TEST_YAML, 'data.preprocess.1.op', 'key') assert res == (9, 10, 3)
def test_find_definition_val(): res = yaml_find_definition(TEST_YAML, 'data.input.type', 'value') assert res == (2, 14, 6)
def test_find_definition_key(): res = yaml_find_definition(TEST_YAML, 'data.input.type', 'key') assert res == (2, 8, 5)
def _check_definition(filename, key, kind): if not filename: return None with open(filename) as f: definition = yaml_find_definition(f, key, kind) return (definition, filename) if definition else None