Fix default vdims in raster.RGB (round two) #5775
Merged
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.
Follow up to #5773
This is how RGB worked before:
So if
Example()
was run,value
would use a copy of theself.value
with the default values in it. So running something like this would only change the id of the list, but not of the values inside of the list:By changing
value = list(self.value)
tovalue = copy.deepcopy(self.value)
, we get the expected behavior, a unique ID for everything.And if we set
value = self.value
, we also get the same identity for the list, which is something we really do not want.Because we are setting the value directly before calling
super()
, we are bypassing Param's mechanism for deep copying the default values.