When the multi is not grouped, just set the value and do not try to
update len of inexistant slaves.
The code path try to update the len of all other variables under the
OptionDescription of the multi.
* tiramisu/option.py (Multi.append): return after setting the value.
Fixes: #4811 @10m
The exception was raised during unwrap_from_path() call.
* tiramisu/config.py (_filter_by_attrs): do not catch exception arround
getattr().
(_find): continue to next option if unwrap_from_path() raise
PropertiesOptionError.
Fixes: #4728 @5m
* tiramisu/option.py (Multi.append): append the default value when the
slaves have no item or lesser than the master.
Divide looping over slaves by factor 2.
Fixes: #4799 @4h
There was a infinite recursion between option.Multi.append() and
config.Config._getattr() through config.Config.fill_multi() when
calculating the master:
- config.Config._getattr()
-> config.Config.fill_multi()
-> option.Multi.__init__()
-> option.Multi.append()
-> config.Config._getattr()
* tiramisu/option.py (Multi.append): do not pass by
config.Config._getattr().
* tiramisu/option.py (Multi.__init__): do not catch exception when
appending.
Ref: #4799 @8h
* tiramisu/option.py (Multi.__setitem__): Do not returns.
(Multi.append): Ditoo.
Remove useless "ret" variable.
(Multi._setvalue): Ditoo.
(Multi.pop): Do not set "ret" to None, raise if "ret" is not in "locals()"
(Multi._pop): Avoid useless "oldvalue" variable.
Variable defined in sub-scope ("for", "if") are not defined above.
* tiramisu/option.py (Multi.append): Define "ret" to None.
* tiramisu/option.py (Multi._setvalue): Ditoo.
* tiramisu/option.py (Multi.pop): Ditoo.