diff --git a/src/newcrawler/converters.py b/src/newcrawler/converters.py index 878122805a9520ce6be82b375a471bee445cf2b2..ab3bd4120ab03f3d67e2e1c70a20f0c4ba9026e7 100644 --- a/src/newcrawler/converters.py +++ b/src/newcrawler/converters.py @@ -218,40 +218,28 @@ class Converter(object): # additionally add the new record to the general store: values[name] = c_record - # the following rules apply: - # - all properties will be added (as they do not exist yet) - # if +$ a new list is created and an element is added + c_record = records[name] - for key, value in record.items(): - if key == "parents": - continue - propvalue, collection_mode = handle_value(value, values) + for key, value in record.items(): + if key == "parents": + continue + propvalue, collection_mode = handle_value(value, values) + if c_record.get_property(key) is None: + if collection_mode == "list": c_record.add_property(name=key, value=[propvalue]) elif (collection_mode == "multiproperty" or collection_mode == "single"): c_record.add_property(name=key, value=propvalue) - else: - # the following rules apply: - # if +$ an element is added to the existing list - # if *$ the property is added (leading possibly to multiple properties) - # if just $ the property is set (and possibly overwritten) - c_record = records[name] - - for key, value in record.items(): - if key == "parents": - continue - - propvalue, collection_mode = handle_value(value, values) - + else: if collection_mode == "list": c_record.get_property(key).value.append(propvalue) elif collection_mode == "multiproperty": c_record.add_property(name=key, value=propvalue) elif collection_mode == "single": c_record.get_property(key).value = propvalue - + # no matter whether the record existed in the record store or not,