From e41160a5b9179edad476899be24f5a3ac64f47f8 Mon Sep 17 00:00:00 2001 From: fspreck <f.spreckelsen@indiscale.com> Date: Wed, 16 Mar 2022 10:07:55 +0100 Subject: [PATCH] MAINT: Refactor and simplify adding of properties --- src/caosadvancedtools/models/parser.py | 36 ++++++++++++-------------- 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/src/caosadvancedtools/models/parser.py b/src/caosadvancedtools/models/parser.py index 22632191..fe52616d 100644 --- a/src/caosadvancedtools/models/parser.py +++ b/src/caosadvancedtools/models/parser.py @@ -325,30 +325,26 @@ class Parser(object): n = self._stringify(n) 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"] - ) + if "datatype" in e and _get_listdatatype(e["datatype"]) is not None: + datatype = db.LIST(_get_listdatatype(e["datatype"])) else: - self.model[ent_name].add_property( - name=n, - importance=importance - ) + # ignore a possible e["datatype"] here if it's not a list + # since it has been treated in the definition of the + # property (entity) already + datatype = None if "value" in e: - self.model[ent_name].get_property(n).value = e["value"] + value = e["value"] + else: + value = None else: - self.model[ent_name].add_property(name=n, - value=e, - importance=importance) + value = e + datatype = None + + self.model[ent_name].add_property(name=n, + value=value, + importance=importance, + datatype=datatype) def _inherit(self, name, prop, inheritance): if not isinstance(prop, list): -- GitLab