fix exception on accessing missing attribute on JobStatus #619
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.
When (accidentally) trying to access a job status check that is not actually defined, like
job.status.queued
instead ofjob.status.submitted
you'd get a weird error message like thiswhich doesn't explain the actual issue (that you typed the wrong name).
The previous implementation of
__getattr__
tried to escalate toobject.__getattr__
if the requested attribute name is not one of thestatus names, probably to keep normal attribute lookup working. But
this is not needed because python first calls
__getattribute__
to do thenormal lookup and only then calls
__getattr__
if it is defined1 andsince object doesn't define
__getattr__
this gave a weird exception whenyou tried to access JobStatus.status_name and got the status name wrong.
This now raises the proper AttributeError, while keeping normal
attribute access intact.
Not a big problem, but I stumbled on this this morning, because I mixed up the status names.