Skip to content

Commit 550dba8

Browse files
committed
Return no browser on pool acquire timeout
1 parent efa6445 commit 550dba8

2 files changed

Lines changed: 7 additions & 4 deletions

File tree

‎src/kernel/_response.py‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
Iterator,
1717
AsyncIterator,
1818
cast,
19+
get_args,
1920
overload,
2021
)
2122
from typing_extensions import Awaitable, ParamSpec, override, get_origin
@@ -185,6 +186,8 @@ def _parse(self, *, to: type[_T] | None = None) -> R | _T:
185186
return cast(R, None)
186187

187188
response = self.http_response
189+
if response.status_code == 204 and NoneType in get_args(cast_to):
190+
return cast(R, None)
188191
if cast_to == str:
189192
return cast(R, response.text)
190193

‎src/kernel/resources/browser_pools.py‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -542,7 +542,7 @@ def acquire(
542542
extra_query: Query | None = None,
543543
extra_body: Body | None = None,
544544
timeout: float | httpx.Timeout | None | NotGiven = not_given,
545-
) -> BrowserPoolAcquireResponse:
545+
) -> Optional[BrowserPoolAcquireResponse]:
546546
"""Long-polling endpoint to acquire a browser from the pool.
547547
548548
Returns immediately
@@ -607,7 +607,7 @@ def acquire(
607607
options=make_request_options(
608608
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
609609
),
610-
cast_to=BrowserPoolAcquireResponse,
610+
cast_to=Optional[BrowserPoolAcquireResponse],
611611
)
612612

613613
def flush(
@@ -1199,7 +1199,7 @@ async def acquire(
11991199
extra_query: Query | None = None,
12001200
extra_body: Body | None = None,
12011201
timeout: float | httpx.Timeout | None | NotGiven = not_given,
1202-
) -> BrowserPoolAcquireResponse:
1202+
) -> Optional[BrowserPoolAcquireResponse]:
12031203
"""Long-polling endpoint to acquire a browser from the pool.
12041204
12051205
Returns immediately
@@ -1264,7 +1264,7 @@ async def acquire(
12641264
options=make_request_options(
12651265
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
12661266
),
1267-
cast_to=BrowserPoolAcquireResponse,
1267+
cast_to=Optional[BrowserPoolAcquireResponse],
12681268
)
12691269

12701270
async def flush(

0 commit comments

Comments
 (0)