ok, then it is nuts that __getattr__ (itself a specially blessed function) is not required to be pure at least from the caller point of view.
If it was it wouldn't be Python. It can never be pure because __getattr__ is just another method that anyone can overwrite.
If it was it wouldn't be Python. It can never be pure because __getattr__ is just another method that anyone can overwrite.