Files
browser-use/debug_pydantic.py
Nick Sweeting 6b8360c475 better logging
2025-05-22 23:17:21 -07:00

35 lines
1.0 KiB
Python

import inspect
from pydantic import BaseModel
from browser_use.controller.views import ClickElementAction
# Check the pydantic detection logic
def click_element_by_index(params: ClickElementAction, browser_session):
pass
sig = inspect.signature(click_element_by_index)
parameters = list(sig.parameters.values())
parameter_names = [param.name for param in parameters]
print('Parameters:', parameter_names)
print('First param name:', parameters[0].name)
print('First param annotation:', parameters[0].annotation)
print('Is BaseModel:', issubclass(parameters[0].annotation, BaseModel))
# Check the name detection logic
name_check = parameters[0].name in ['params', 'param', 'model'] or parameters[0].name.endswith('_model')
print('Name check passed:', name_check)
is_pydantic = (
parameters
and len(parameters) > 0
and hasattr(parameters[0], 'annotation')
and parameters[0].annotation != parameters[0].empty
and issubclass(parameters[0].annotation, BaseModel)
and name_check
)
print('Is pydantic:', is_pydantic)