Prepend lists when merging event objects
This commit is contained in:
@@ -110,7 +110,7 @@ def fireEvent(name, *args, **kwargs):
|
|||||||
if isinstance(results[0], dict):
|
if isinstance(results[0], dict):
|
||||||
merged = {}
|
merged = {}
|
||||||
for result in results:
|
for result in results:
|
||||||
merged = mergeDicts(merged, result)
|
merged = mergeDicts(merged, result, prepend_list = True)
|
||||||
|
|
||||||
results = merged
|
results = merged
|
||||||
# Lists
|
# Lists
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ def getDataDir():
|
|||||||
def isDict(object):
|
def isDict(object):
|
||||||
return isinstance(object, dict)
|
return isinstance(object, dict)
|
||||||
|
|
||||||
def mergeDicts(a, b):
|
def mergeDicts(a, b, prepend_list = False):
|
||||||
assert isDict(a), isDict(b)
|
assert isDict(a), isDict(b)
|
||||||
dst = a.copy()
|
dst = a.copy()
|
||||||
|
|
||||||
@@ -67,7 +67,7 @@ def mergeDicts(a, b):
|
|||||||
if isDict(current_src[key]) and isDict(current_dst[key]):
|
if isDict(current_src[key]) and isDict(current_dst[key]):
|
||||||
stack.append((current_dst[key], current_src[key]))
|
stack.append((current_dst[key], current_src[key]))
|
||||||
elif isinstance(current_src[key], list) and isinstance(current_dst[key], list):
|
elif isinstance(current_src[key], list) and isinstance(current_dst[key], list):
|
||||||
current_dst[key].extend(current_src[key])
|
current_dst[key] = current_src[key] + current_dst[key] if prepend_list else current_dst[key] + current_src[key]
|
||||||
current_dst[key] = removeListDuplicates(current_dst[key])
|
current_dst[key] = removeListDuplicates(current_dst[key])
|
||||||
else:
|
else:
|
||||||
current_dst[key] = current_src[key]
|
current_dst[key] = current_src[key]
|
||||||
|
|||||||
Reference in New Issue
Block a user