(
self,
request: requests.PreparedRequest,
stream: bool,
timeout: float = min_connection_timeout,
**kwargs,
)
| 164 | return self._internal_request(request, stream) |
| 165 | |
| 166 | def _internal_request( |
| 167 | self, |
| 168 | request: requests.PreparedRequest, |
| 169 | stream: bool, |
| 170 | timeout: float = min_connection_timeout, |
| 171 | **kwargs, |
| 172 | ) -> Tuple[int, Union[str, requests.Response]]: |
| 173 | try: |
| 174 | response = self._session.send( |
| 175 | request, stream=stream, timeout=timeout, **kwargs |
| 176 | ) |
| 177 | if stream: |
| 178 | return response.status_code, response |
| 179 | else: |
| 180 | try: |
| 181 | response.encoding = "UTF-8" |
| 182 | return response.status_code, response.text |
| 183 | finally: |
| 184 | response.close() |
| 185 | |
| 186 | except requests.exceptions.ConnectionError as e: |
| 187 | message = f"Connection failed: {e}" |
| 188 | raise ConnectionException(message, should_retry=True) from e |
| 189 | except requests.exceptions.Timeout as e: |
| 190 | message = f"Request timed out: {e}" |
| 191 | raise ConnectionException(message, should_retry=True) from e |
| 192 | except requests.exceptions.RequestException as e: |
| 193 | message = f"Request failed: {e}" |
| 194 | raise ConnectionException(message, should_retry=False) from e |
| 195 | except Exception as e: |
| 196 | message = f"Unexpected request failure: {e}" |
| 197 | raise ConnectionException(message, should_retry=False) from e |
| 198 | |
| 199 | def _should_retry(self, response, exception, num_retries): |
| 200 | if num_retries >= max_network_retries: |
no test coverage detected