Do not access attributes that don't match the method selector regex #14
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.
Only evaluate attributes after we know they match the method selector.
Otherwise properties on objects might trigger even though they're not matched by an aspect. Calling
getattr
is unavoidable for those attributes that do match the method selector, but we can avoid reading unrelated attributes.Sometimes developers do stupid things when attributes are read, like going to the network to read a remote API to get the value. PyGithub, for example, does that. So the order of these instructions, i.e. when precisely we access attributes to apply aspects can make a huge difference.