def make_request(self, request, data, max_wait=600, step=5, wait=0):
    'Sends a get, post or delete request every step seconds until the request was successful or wait exceeds max_wait.\n\n        Args:\n            request (str): Define which kind of request to execute.\n            data (str): Submit information or sherpas job_id for a status request or job_id for deleting a trial.\n            max_wait (int, optional): Time in seconds after which the requests repetition will be stopped. Defaults to 600.\n            step (int, optional): Time in seconds after which a faulty request is repeated. Defaults to 5.\n            wait (int, optional): Variable to which the step time is added and compared to max_wait. Defaults to 0.\n\n        Returns:\n            [class]: Response\n        '
    proxies = {'http': None, 'https': None}
    if (request == 'GET'):
        response = requests.get((self.status_url + data), headers=self.headers, proxies=proxies, verify=False)
    elif (request == 'POST'):
        response = requests.post(self.submit_url, headers=self.headers, data=data, proxies=proxies, verify=False)
    elif (request == 'DELETE'):
        response = requests.delete((self.status_url + data), headers=self.headers, proxies=proxies, verify=False)
    else:
        logging.error('Request argument is none of ["GET","POST","DELETE"].')
    if ((response.status_code == 200) or (wait > max_wait)):
        if (wait > max_wait):
            logging.warning('Request has failed for {} seconds with status code: {}:{}'.format(max_wait, response.status_code, response.reason))
        return response
    else:
        sleep(step)
        logging.error('Request has failed for {} times with reason {}:{}'.format((1 + int(((max_wait / step) - ((max_wait / step) - (wait / step))))), response.status_code, response.reason))
        return self.make_request(request=request, data=data, max_wait=max_wait, step=step, wait=(wait + step))
Sends a get, post or delete request every step seconds until the request was successful or wait exceeds max_wait.

Args:
    request (str): Define which kind of request to execute.
    data (str): Submit information or sherpas job_id for a status request or job_id for deleting a trial.
    max_wait (int, optional): Time in seconds after which the requests repetition will be stopped. Defaults to 600.
    step (int, optional): Time in seconds after which a faulty request is repeated. Defaults to 5.
    wait (int, optional): Variable to which the step time is added and compared to max_wait. Defaults to 0.

Returns:
    [class]: Response
def make_request(self, request, data, max_wait=600, step=5, wait=0):
    'Sends a get, post or delete request every step seconds until the request was successful or wait exceeds max_wait.\n\n        Args:\n            request (str): Define which kind of request to execute.\n            data (str): Submit information or sherpas job_id for a status request or job_id for deleting a trial.\n            max_wait (int, optional): Time in seconds after which the requests repetition will be stopped. Defaults to 600.\n            step (int, optional): Time in seconds after which a faulty request is repeated. Defaults to 5.\n            wait (int, optional): Variable to which the step time is added and compared to max_wait. Defaults to 0.\n\n        Returns:\n            [class]: Response\n        '
    proxies = {'http': None, 'https': None}
    if (request == 'GET'):
        response = requests.get((self.status_url + data), headers=self.headers, proxies=proxies, verify=False)
    elif (request == 'POST'):
        response = requests.post(self.submit_url, headers=self.headers, data=data, proxies=proxies, verify=False)
    elif (request == 'DELETE'):
        response = requests.delete((self.status_url + data), headers=self.headers, proxies=proxies, verify=False)
    else:
        logging.error('Request argument is none of ["GET","POST","DELETE"].')
    if ((response.status_code == 200) or (wait > max_wait)):
        if (wait > max_wait):
            logging.warning('Request has failed for {} seconds with status code: {}:{}'.format(max_wait, response.status_code, response.reason))
        return response
    else:
        sleep(step)
        logging.error('Request has failed for {} times with reason {}:{}'.format((1 + int(((max_wait / step) - ((max_wait / step) - (wait / step))))), response.status_code, response.reason))
        return self.make_request(request=request, data=data, max_wait=max_wait, step=step, wait=(wait + step))