From f0b15072903dc2d4d8b726ca9755f849726b9fcc Mon Sep 17 00:00:00 2001 From: "devin-ai-integration[bot]" <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Tue, 29 Apr 2025 13:06:12 -0300 Subject: [PATCH] Fix: Handle both dict and model instances in actions parameter (#1508) * Fix: Handle both dict and model instances in actions parameter Co-Authored-By: Nicolas Camara * Update __init__.py --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: Nicolas Camara --- apps/python-sdk/firecrawl/__init__.py | 2 +- apps/python-sdk/firecrawl/firecrawl.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/python-sdk/firecrawl/__init__.py b/apps/python-sdk/firecrawl/__init__.py index eec75d4b..2a61df89 100644 --- a/apps/python-sdk/firecrawl/__init__.py +++ b/apps/python-sdk/firecrawl/__init__.py @@ -13,7 +13,7 @@ import os from .firecrawl import FirecrawlApp, AsyncFirecrawlApp, JsonConfig, ScrapeOptions, ChangeTrackingOptions # noqa -__version__ = "2.5.2" +__version__ = "2.5.3" # Define the logger for the Firecrawl project logger: logging.Logger = logging.getLogger("firecrawl") diff --git a/apps/python-sdk/firecrawl/firecrawl.py b/apps/python-sdk/firecrawl/firecrawl.py index fbafe10a..0942fe45 100644 --- a/apps/python-sdk/firecrawl/firecrawl.py +++ b/apps/python-sdk/firecrawl/firecrawl.py @@ -540,9 +540,9 @@ class FirecrawlApp: json_options["schema"] = self._ensure_schema_dict(json_options["schema"]) scrape_params['jsonOptions'] = json_options if isinstance(json_options, dict) else json_options.dict(exclude_none=True) if actions: - scrape_params['actions'] = [action.dict(exclude_none=True) for action in actions] + scrape_params['actions'] = [action if isinstance(action, dict) else action.dict(exclude_none=True) for action in actions] if change_tracking_options: - scrape_params['changeTrackingOptions'] = change_tracking_options.dict(exclude_none=True) + scrape_params['changeTrackingOptions'] = change_tracking_options if isinstance(change_tracking_options, dict) else change_tracking_options.dict(exclude_none=True) scrape_params.update(kwargs) @@ -2924,7 +2924,7 @@ class AsyncFirecrawlApp(FirecrawlApp): json_options["schema"] = self._ensure_schema_dict(json_options["schema"]) scrape_params['jsonOptions'] = json_options if isinstance(json_options, dict) else json_options.dict(exclude_none=True) if actions: - scrape_params['actions'] = [action.dict(exclude_none=True) for action in actions] + scrape_params['actions'] = [action if isinstance(action, dict) else action.dict(exclude_none=True) for action in actions] if 'extract' in scrape_params and scrape_params['extract'] and 'schema' in scrape_params['extract']: scrape_params['extract']['schema'] = self._ensure_schema_dict(scrape_params['extract']['schema'])