Fix bug: delegate parameter doesn't call its source to get value #6671
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Bug description:
A DelegateParameter should redirect to its source for the value but instead <function Parameter.init.._get_manual_parameter> is called and 0.0 is returned.
Cause
The reason why DelegateParameter doesn't call its source for the value is because of the following lines in Parameter.init:
When external_parameter is created, its source is None so it's not gettable and its get_raw is thus bound to _get_manual_parameter.
Solution
It turns out that even though gettable property of DelegateParameter is False when source is None, _gettable attribute is True because
get_raw
is defined in parameterSo the solution we propose is to use _gettable attribute instead of gettable property in Parameter.init.