1616 ObserveOptions ,
1717 ObserveResult ,
1818)
19- from .types import DefaultExtractSchema , EmptyExtractSchema
19+ from .types import DefaultExtractSchema
2020
2121_INJECTION_SCRIPT = None
2222
@@ -361,17 +361,12 @@ async def extract(
361361 processed_data_payload = result_dict
362362 if schema_to_validate_with and isinstance (processed_data_payload , dict ):
363363 try :
364- # For extract with no params
365- if not options_obj :
366- validated_model = EmptyExtractSchema .model_validate (
367- processed_data_payload
368- )
369- processed_data_payload = validated_model
370- else :
371- validated_model = schema_to_validate_with .model_validate (
372- processed_data_payload
373- )
374- processed_data_payload = validated_model
364+ validated_model = schema_to_validate_with .model_validate (
365+ processed_data_payload
366+ )
367+ processed_data_payload = (
368+ validated_model # Payload is now the Pydantic model instance
369+ )
375370 except Exception as e :
376371 self ._stagehand .logger .error (
377372 f"Failed to validate extracted data against schema { schema_to_validate_with .__name__ } : { e } . Keeping raw data dict in .data field."
@@ -606,7 +601,7 @@ async def sweep_stalled_requests():
606601 meta .pop (request_id , None )
607602 self ._stagehand .logger .debug (
608603 "⏳ forcing completion of stalled iframe document" ,
609- extra = {"url" : request_meta ["url" ][:120 ]},
604+ auxiliary = {"url" : request_meta ["url" ][:120 ]},
610605 )
611606 maybe_quiet ()
612607
@@ -620,7 +615,7 @@ async def timeout_guard():
620615 if len (inflight ) > 0 :
621616 self ._stagehand .logger .debug (
622617 "⚠️ DOM-settle timeout reached – network requests still pending" ,
623- extra = {"count" : len (inflight )},
618+ auxiliary = {"count" : len (inflight )},
624619 )
625620 resolve_done ()
626621
0 commit comments