Skip to content
Snippets Groups Projects
Commit 854b97b6 authored by Florian Spreckelsen's avatar Florian Spreckelsen
Browse files

Merge branch 'f-better-parser-error' into 'dev'

F better parser error

See merge request !75
parents 7f0e3c98 7c21f20f
No related branches found
No related tags found
2 merge requests!89ENH: JsonSchemaExporter accepts do_not_create parameter.,!75F better parser error
Pipeline #40033 passed
......@@ -10,6 +10,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed ###
* A bit better error handling in the yaml model parser.
### Deprecated ###
### Removed ###
......
......@@ -32,7 +32,7 @@ from caosadvancedtools.converter import labfolder_export as labfolder
def main(args):
"""The main function."""
model = parse_model_from_yaml("./model.yml")
model = parse_model_from_yaml("./models/model.yml")
model.sync_data_model()
labfolder.import_data(args.folder)
......
......@@ -31,7 +31,7 @@ from caosadvancedtools.converter.labfolder_api import Importer
def main(args):
"""The main function."""
model = parse_model_from_yaml("./model.yml")
model = parse_model_from_yaml("./models/model.yml")
# model.sync_data_model()
importer = Importer()
......
......@@ -294,7 +294,12 @@ class Parser(object):
self._check_and_convert_datatypes()
for name, entity in ymlmodel.items():
self._treat_entity(name, entity, line=ymlmodel["__line__"])
try:
self._treat_entity(name, entity, line=ymlmodel["__line__"])
except ValueError as err:
err_str = err.args[0].replace("invalid keyword:",
f"invalid keyword in line {entity['__line__']}:", 1)
raise ValueError(err_str, *err.args[1:]) from err
return DataModel(self.model.values())
......
File moved
Project:
ObligatoryProperties:
......@@ -511,3 +511,11 @@ R3:
# Until removal, both do the same
assert has_parent(r3, par)
assert r3.get_parent(par)._flags["inheritance"] == db.OBLIGATORY
def test_yaml_error():
"""Testing error while parsing a yaml.
"""
with raises(ValueError, match=r"line 2: .*"):
parse_model_from_yaml("unittests/models/model_invalid.yml")
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment