[merge] Install merged dict on object
This commit is contained in:
parent
0d5fcf498c
commit
82c54638e3
@ -91,6 +91,7 @@ def mergeObjects(lst):
|
|||||||
assert all(type(item) == clazz for item in lst), lst
|
assert all(type(item) == clazz for item in lst), lst
|
||||||
logic = clazz.mergeMap
|
logic = clazz.mergeMap
|
||||||
returnTable = clazz()
|
returnTable = clazz()
|
||||||
|
returnDict = {}
|
||||||
|
|
||||||
allKeys = set.union(set(), *(vars(table).keys() for table in lst))
|
allKeys = set.union(set(), *(vars(table).keys() for table in lst))
|
||||||
for key in allKeys:
|
for key in allKeys:
|
||||||
@ -106,7 +107,9 @@ def mergeObjects(lst):
|
|||||||
continue
|
continue
|
||||||
value = mergeLogic(getattr(table, key, NotImplemented) for table in lst)
|
value = mergeLogic(getattr(table, key, NotImplemented) for table in lst)
|
||||||
if value is not NotImplemented:
|
if value is not NotImplemented:
|
||||||
setattr(returnTable, key, value)
|
returnDict[key] = value
|
||||||
|
|
||||||
|
returnTable.__dict__ = returnDict
|
||||||
|
|
||||||
return returnTable
|
return returnTable
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user