|
31 | 31 | from typing import Optional, Dict, List |
32 | 32 | from dataclasses import dataclass |
33 | 33 |
|
34 | | -from httpx import AsyncClient, Response |
| 34 | +from httpx import AsyncClient, Response, Timeout |
35 | 35 | from json import JSONDecodeError |
36 | 36 | from httpx_retries import RetryTransport, Retry |
37 | 37 | from google.auth import jwt |
@@ -71,6 +71,9 @@ async def _extract_message(r: Response): |
71 | 71 | return error_message |
72 | 72 |
|
73 | 73 |
|
| 74 | +_timeout = Timeout(10, read=300) |
| 75 | + |
| 76 | + |
74 | 77 | class ServiceXAdapter: |
75 | 78 | def __init__(self, url: str, refresh_token: Optional[str] = None): |
76 | 79 | self.url = url |
@@ -349,7 +352,9 @@ async def cancel_transform(self, transform_id=None): |
349 | 352 | async def submit_transform(self, transform_request: TransformRequest) -> str: |
350 | 353 | headers = await self._get_authorization() |
351 | 354 | retry_options = Retry(total=3, backoff_factor=30) |
352 | | - async with AsyncClient(transport=RetryTransport(retry=retry_options)) as client: |
| 355 | + async with AsyncClient( |
| 356 | + transport=RetryTransport(retry=retry_options), timeout=_timeout |
| 357 | + ) as client: |
353 | 358 | r = await client.post( |
354 | 359 | url=f"{self.url}/servicex/transformation", |
355 | 360 | headers=headers, |
|
0 commit comments