From fee161e54f9120e3c9c2ae35d425c4f3a58fd60d Mon Sep 17 00:00:00 2001 From: fspreck <f.spreckelsen@indiscale.com> Date: Fri, 11 Mar 2022 18:19:12 +0100 Subject: [PATCH] FIX: Correct parsing of dicts in properties --- src/caosadvancedtools/models/parser.py | 33 ++++++++++++++++++-------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/src/caosadvancedtools/models/parser.py b/src/caosadvancedtools/models/parser.py index f385a1a3..a6d37045 100644 --- a/src/caosadvancedtools/models/parser.py +++ b/src/caosadvancedtools/models/parser.py @@ -320,15 +320,27 @@ class Parser(object): continue n = self._stringify(n) - if (isinstance(e, dict) and "datatype" in e - and (_get_listdatatype(e["datatype"]) is not None)): - self.model[ent_name].add_property( - name=n, - importance=importance, - datatype=db.LIST(_get_listdatatype(e["datatype"]))) - elif e is None: - self.model[ent_name].add_property(name=n, - importance=importance) + if isinstance(e, dict): + if "datatype" in e: + if _get_listdatatype(e["datatype"]) is not None: + self.model[ent_name].add_property( + name=n, + importance=importance, + datatype=db.LIST(_get_listdatatype(e["datatype"]))) + else: + self.model[ent_name].add_property( + name=n, + importance=importance, + datatype=e["datatype"] + ) + else: + self.model[ent_name].add_property( + name=n, + importance=importance + ) + if "value" in e: + self.model[ent_name].get_property(n).value = e["value"] + else: self.model[ent_name].add_property(name=n, value=e, @@ -470,7 +482,8 @@ class Parser(object): continue - raise ValueError("Property {} has an unknown datatype: {}".format(value.name, value.datatype)) + raise ValueError("Property {} has an unknown datatype: {}".format( + value.name, value.datatype)) def _set_recordtypes(self): """ properties are defined in first iteration; set remaining as RTs """ -- GitLab