Skip to content

Commit 84d8bd2

Browse files
committed
Update client.py
1 parent d9ca12a commit 84d8bd2

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

src/browser_use/wrapper/tasks/client.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ def create_task(
7373
start_url: typing.Optional[str] = OMIT,
7474
max_steps: typing.Optional[int] = OMIT,
7575
structured_output: typing.Optional[str] = OMIT,
76-
schema: typing.Optional[typing.Type[BaseModel]] = OMIT,
76+
schema: typing.Optional[typing.Type[T]] = OMIT,
7777
session_id: typing.Optional[str] = OMIT,
7878
metadata: typing.Optional[typing.Dict[str, typing.Optional[str]]] = OMIT,
7979
secrets: typing.Optional[typing.Dict[str, typing.Optional[str]]] = OMIT,
@@ -140,15 +140,17 @@ def get_task(self, task_id: str, *, request_options: typing.Optional[RequestOpti
140140
def get_task(
141141
self,
142142
task_id: str,
143-
schema: typing.Optional[typing.Union[typing.Type[BaseModel], str]] = OMIT,
143+
schema: typing.Optional[typing.Union[typing.Type[T], str]] = OMIT,
144144
*,
145145
request_options: typing.Optional[RequestOptions] = None,
146146
) -> typing.Union[TaskViewWithOutput[T], TaskView]:
147147
res = super().get_task(task_id, request_options=request_options)
148148

149149
if schema is not None:
150-
parsed_output = schema.model_validate_json(res.output)
151-
return TaskViewWithOutput(**res.model_dump(), parsed_output=parsed_output)
150+
if res.output is None:
151+
return TaskViewWithOutput[T](**res.model_dump(), parsed_output=None)
152+
153+
return TaskViewWithOutput[T](**res.model_dump(), parsed_output=schema.model_validate_json(res.output))
152154
else:
153155
return res
154156

@@ -281,7 +283,9 @@ async def get_task(
281283
res = await super().get_task(task_id, request_options=request_options)
282284

283285
if schema is not None:
284-
parsed_output = schema.model_validate_json(res.output)
285-
return TaskViewWithOutput(**res.model_dump(), parsed_output=parsed_output)
286+
if res.output is None:
287+
return TaskViewWithOutput[T](**res.model_dump(), parsed_output=None)
288+
289+
return TaskViewWithOutput[T](**res.model_dump(), parsed_output=schema.model_validate_json(res.output))
286290
else:
287291
return res

0 commit comments

Comments
 (0)