def __getattr__(self, name):
        # use whichever alternative last worked as our model
        x = getattr(self.__alternatives[self.__start_index], name)
        if hasattr(x, '__call__'):
            return self.__wrap_methods_with_call_and_maybe_retry(name)
        else:
            return x
The glue that makes functions retriable, and returns other
dataset/ETHPy150Open Yelp/mrjob/mrjob/retry.py/RetryGoRound.__getattr__