@@ -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