@@ -73,7 +73,7 @@ def create_task(
73
73
start_url : typing .Optional [str ] = OMIT ,
74
74
max_steps : typing .Optional [int ] = OMIT ,
75
75
structured_output : typing .Optional [str ] = OMIT ,
76
- schema : typing .Optional [typing .Type [BaseModel ]] = OMIT ,
76
+ schema : typing .Optional [typing .Type [T ]] = OMIT ,
77
77
session_id : typing .Optional [str ] = OMIT ,
78
78
metadata : typing .Optional [typing .Dict [str , typing .Optional [str ]]] = OMIT ,
79
79
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
140
140
def get_task (
141
141
self ,
142
142
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 ,
144
144
* ,
145
145
request_options : typing .Optional [RequestOptions ] = None ,
146
146
) -> typing .Union [TaskViewWithOutput [T ], TaskView ]:
147
147
res = super ().get_task (task_id , request_options = request_options )
148
148
149
149
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 ))
152
154
else :
153
155
return res
154
156
@@ -281,7 +283,9 @@ async def get_task(
281
283
res = await super ().get_task (task_id , request_options = request_options )
282
284
283
285
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 ))
286
290
else :
287
291
return res
0 commit comments