Raise explicitly on Python methods that are incompatible with lazy variables #1190
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.
Notably changes the behavior of
__bool__
to always raise. Before there was a hack based on whether a variable had been compared to something before.This should avoid surprising behavior such as:
After this PR it raises
The correct behavior as per the API standard is to raise in these cases: https://data-apis.org/array-api/latest/design_topics/lazy_eager.html
There is still surprising behavior with (in)equality checks, but we can't do anything about those as they are needed for Python hashing behavior. The default is
x == y: True if x is y else False
Related to #1189
📚 Documentation preview 📚: https://pytensor--1190.org.readthedocs.build/en/1190/