Differentiate order in Expression equality function #1080
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.
This PR makes
trait("a") | trait("b")
to be considered as NOT equivalent totrait("b") | trait("a")
. Strictly speaking, this is true because the given change handler will be registered to "a" first and then to "b" whenobserve(handler, trait("a") | trait("b"))
is called. Whenobserve(handler, trait("b") | trait("a"))
is called, the change handler will be registered to "b" first and then to "a".The
__eq__
is not used by the internal machinery, it is there to help users learning the expression. Internal observe machinery uses_as_graphs
instead. So if the users want to see these two being considered equal, we can change this back without affecting anything.Checklist
docs/source/traits_api_reference
): autodoc handled this.Update User manual (: Does not exist yet.docs/source/traits_user_manual
)Update type annotation hints intraits-stubs