16
16
ObserveOptions ,
17
17
ObserveResult ,
18
18
)
19
- from .types import DefaultExtractSchema , EmptyExtractSchema
19
+ from .types import DefaultExtractSchema
20
20
21
21
_INJECTION_SCRIPT = None
22
22
@@ -361,17 +361,12 @@ async def extract(
361
361
processed_data_payload = result_dict
362
362
if schema_to_validate_with and isinstance (processed_data_payload , dict ):
363
363
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
+ )
375
370
except Exception as e :
376
371
self ._stagehand .logger .error (
377
372
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():
606
601
meta .pop (request_id , None )
607
602
self ._stagehand .logger .debug (
608
603
"⏳ forcing completion of stalled iframe document" ,
609
- extra = {"url" : request_meta ["url" ][:120 ]},
604
+ auxiliary = {"url" : request_meta ["url" ][:120 ]},
610
605
)
611
606
maybe_quiet ()
612
607
@@ -620,7 +615,7 @@ async def timeout_guard():
620
615
if len (inflight ) > 0 :
621
616
self ._stagehand .logger .debug (
622
617
"⚠️ DOM-settle timeout reached – network requests still pending" ,
623
- extra = {"count" : len (inflight )},
618
+ auxiliary = {"count" : len (inflight )},
624
619
)
625
620
resolve_done ()
626
621
0 commit comments