<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def request_with_retries_on_post_search(self, session, url, query, json_input, stream, headers):
 """ Submit a request and retry POST search requests specifically. We don't currently retry on POST requests, and this is intended as a temporary fix until the swagger is updated and changes applied to prod. In the meantime, this function will add retries specifically for POST search (and any other POST requests will not be retried). """

        # TODO: Revert this PR as soon as the appropriate swagger definitions have percolated up
        # to prod and merged; see https://github.com/HumanCellAtlas/data-store/pull/1961
        status_code = 500
        if '/v1/search' in url:
            retry_count = 10
        else:
            retry_count = 1
        while status_code in (500, 502, 503, 504) and retry_count > 0:
            try:
                retry_count -= 1
                res = session.request(self.http_method,
                                      url,
                                      params=query,
                                      json=json_input,
                                      stream=stream,
                                      headers=headers,
                                      timeout=self.client.timeout_policy)
                status_code = res.status_code
            except SwaggerAPIException:
                if retry_count > 0:
                    pass
                else:
                    raise
        return res