fix: resolve all call-non-callable ty diagnostics across codebase

Replace hasattr() duck-typing with isinstance() checks for DiscordAdapter
in gateway/run.py, add TypedDict for IMAGEGEN_BACKENDS in tools_config.py,
properly type fal_client getattr'd callables in image_generation_tool.py,
fix dict[str, object] → Callable annotation in approval.py, use
isinstance(BaseModel) in web_tools.py, capture _message_handler to local
in base.py, rename shadowed list_distributions parameter in batch_runner.py,
and remove dead queue_message branch.
This commit is contained in:
alt-glitch 2026-04-21 16:00:37 +05:30
parent 971542d254
commit 3eddabf53b
7 changed files with 61 additions and 47 deletions

View file

@ -1720,8 +1720,8 @@ async def web_crawl_tool(
metadata = {}
# Extract data from the item
if hasattr(item, 'model_dump'):
# Pydantic model - use model_dump to get dict
from pydantic import BaseModel
if isinstance(item, BaseModel):
item_dict = item.model_dump()
content_markdown = item_dict.get('markdown')
content_html = item_dict.get('html')
@ -1730,15 +1730,15 @@ async def web_crawl_tool(
# Regular object with attributes
content_markdown = getattr(item, 'markdown', None)
content_html = getattr(item, 'html', None)
# Handle metadata - convert to dict if it's an object
metadata_obj = getattr(item, 'metadata', {})
if hasattr(metadata_obj, 'model_dump'):
if isinstance(metadata_obj, BaseModel):
metadata = metadata_obj.model_dump()
elif hasattr(metadata_obj, '__dict__'):
metadata = metadata_obj.__dict__
elif isinstance(metadata_obj, dict):
metadata = metadata_obj
elif hasattr(metadata_obj, '__dict__'):
metadata = metadata_obj.__dict__
else:
metadata = {}
elif isinstance(item, dict):