revert signature of Accessibles.copy() method
no more kwds arguments, method 'merge' should be used Change-Id: I7028d9df8b69c018dcdc0c55d3ae0f71e24ee15b
This commit is contained in:
@ -56,6 +56,7 @@ class HasAccessibles(HasProperties):
|
||||
accessibles = OrderedDict() # dict of accessibles
|
||||
merged_properties = {} # dict of dict of merged properties
|
||||
new_names = [] # list of names of new accessibles
|
||||
override_values = {} # bare values overriding a parameter and methods overriding a command
|
||||
for base in reversed(cls.__mro__):
|
||||
for key, value in base.__dict__.items():
|
||||
if isinstance(value, Accessible):
|
||||
@ -63,17 +64,20 @@ class HasAccessibles(HasProperties):
|
||||
if base == cls and key not in accessibles:
|
||||
new_names.append(key)
|
||||
accessibles[key] = value
|
||||
override_values.pop(key, None)
|
||||
elif key in accessibles:
|
||||
# either a bare value overriding a parameter
|
||||
# or a method overriding a command
|
||||
aobj = aobj.copy()
|
||||
aobj.override(value)
|
||||
accessibles[key] = aobj
|
||||
override_values[key] = value
|
||||
for aname, aobj in accessibles.items():
|
||||
if aobj != getattr(cls, aname, None):
|
||||
if aname in override_values:
|
||||
aobj = aobj.copy()
|
||||
aobj.merge(merged_properties[aname])
|
||||
aobj.override(override_values[aname])
|
||||
# replace the bare value by the created accessible
|
||||
setattr(cls, aname, aobj)
|
||||
aobj.merge(merged_properties[aname])
|
||||
else:
|
||||
aobj.merge(merged_properties[aname])
|
||||
accessibles[aname] = aobj
|
||||
# rebuild order: (1) inherited items, (2) items from paramOrder, (3) new accessibles
|
||||
# move (2) to the end
|
||||
|
Reference in New Issue
Block a user