Wait for the job until it has been processed. This method will block for
        up to `timeout` seconds.
        
        This method will wait for 4 seconds after the initial request and then
        will call :py:meth:`cloudsight.API.image_response` method every second
        until the status changes.

        :param token: Job token as returned from
                        :py:meth:`cloudsight.API.image_request` or
                        :py:meth:`cloudsight.API.remote_image_request`

def wait(self, token, timeout=DEFAULT_POLL_TIMEOUT):
        """
        Wait for the job until it has been processed. This method will block for
        up to `timeout` seconds.
        
        This method will wait for 4 seconds after the initial request and then
        will call :py:meth:`cloudsight.API.image_response` method every second
        until the status changes.

        :param token: Job token as returned from
                        :py:meth:`cloudsight.API.image_request` or
                        :py:meth:`cloudsight.API.remote_image_request`
        """
        delta = datetime.timedelta(seconds=timeout)
        timeout_at = datetime.datetime.now() + delta
        time.sleep(min(timeout, INITIAL_POLL_WAIT))
        response = self.image_response(token)

        while response['status'] == STATUS_NOT_COMPLETED \
              and datetime.datetime.now() < timeout_at:
            time.sleep(1)
            response = self.image_response(token)

        return response