firecrawl 4.3.6__tar.gz → 4.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of firecrawl might be problematic. Click here for more details.
- {firecrawl-4.3.6 → firecrawl-4.4.0}/LICENSE +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/PKG-INFO +6 -2
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__init__.py +1 -1
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/v2/methods/crawl.py +1 -1
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/v2/methods/search.py +1 -1
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/v2/types.py +8 -2
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/v2/watcher_async.py +2 -1
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl.egg-info/PKG-INFO +6 -2
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl.egg-info/top_level.txt +1 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/tests/test_change_tracking.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/README.md +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/e2e/v2/aio/test_aio_batch_scrape.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/e2e/v2/aio/test_aio_crawl.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/e2e/v2/aio/test_aio_extract.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/e2e/v2/aio/test_aio_map.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/e2e/v2/aio/test_aio_scrape.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/e2e/v2/aio/test_aio_search.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/e2e/v2/aio/test_aio_usage.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/e2e/v2/aio/test_aio_watcher.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/e2e/v2/conftest.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/e2e/v2/test_async.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/e2e/v2/test_batch_scrape.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/e2e/v2/test_crawl.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/e2e/v2/test_extract.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/e2e/v2/test_map.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/e2e/v2/test_scrape.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/e2e/v2/test_search.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/e2e/v2/test_usage.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/e2e/v2/test_watcher.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/unit/v2/methods/aio/test_aio_crawl_params.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/unit/v2/methods/aio/test_aio_crawl_request_preparation.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/unit/v2/methods/aio/test_aio_crawl_validation.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/unit/v2/methods/aio/test_aio_map_request_preparation.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/unit/v2/methods/aio/test_aio_scrape_request_preparation.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/unit/v2/methods/aio/test_aio_search_request_preparation.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/unit/v2/methods/aio/test_batch_request_preparation_async.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/unit/v2/methods/aio/test_ensure_async.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/unit/v2/methods/test_batch_request_preparation.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/unit/v2/methods/test_crawl_params.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/unit/v2/methods/test_crawl_request_preparation.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/unit/v2/methods/test_crawl_validation.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/unit/v2/methods/test_map_request_preparation.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/unit/v2/methods/test_pagination.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/unit/v2/methods/test_scrape_request_preparation.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/unit/v2/methods/test_search_request_preparation.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/unit/v2/methods/test_search_validation.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/unit/v2/methods/test_usage_types.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/unit/v2/methods/test_webhook.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/unit/v2/utils/test_validation.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/unit/v2/watcher/test_ws_watcher.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/client.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/firecrawl.backup.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/types.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/v1/__init__.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/v1/client.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/v2/__init__.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/v2/client.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/v2/client_async.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/v2/methods/aio/__init__.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/v2/methods/aio/batch.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/v2/methods/aio/crawl.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/v2/methods/aio/extract.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/v2/methods/aio/map.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/v2/methods/aio/scrape.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/v2/methods/aio/search.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/v2/methods/aio/usage.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/v2/methods/batch.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/v2/methods/extract.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/v2/methods/map.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/v2/methods/scrape.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/v2/methods/usage.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/v2/utils/__init__.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/v2/utils/error_handler.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/v2/utils/get_version.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/v2/utils/http_client.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/v2/utils/http_client_async.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/v2/utils/normalize.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/v2/utils/validation.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/v2/watcher.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl.egg-info/SOURCES.txt +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl.egg-info/dependency_links.txt +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl.egg-info/requires.txt +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/pyproject.toml +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/setup.cfg +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/setup.py +0 -0
- {firecrawl-4.3.6 → firecrawl-4.4.0}/tests/test_timeout_conversion.py +0 -0
|
File without changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: firecrawl
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.4.0
|
|
4
4
|
Summary: Python SDK for Firecrawl API
|
|
5
5
|
Home-page: https://github.com/firecrawl/firecrawl
|
|
6
6
|
Author: Mendable.ai
|
|
@@ -40,6 +40,10 @@ Requires-Dist: websockets
|
|
|
40
40
|
Requires-Dist: nest-asyncio
|
|
41
41
|
Requires-Dist: pydantic>=2.0
|
|
42
42
|
Requires-Dist: aiohttp
|
|
43
|
+
Dynamic: author
|
|
44
|
+
Dynamic: home-page
|
|
45
|
+
Dynamic: license-file
|
|
46
|
+
Dynamic: requires-python
|
|
43
47
|
|
|
44
48
|
# Firecrawl Python SDK
|
|
45
49
|
|
|
@@ -333,7 +333,7 @@ def wait_for_crawl_completion(
|
|
|
333
333
|
crawl_job = get_crawl_status(client, job_id)
|
|
334
334
|
|
|
335
335
|
# Check if job is complete
|
|
336
|
-
if crawl_job.status in ["completed", "failed"]:
|
|
336
|
+
if crawl_job.status in ["completed", "failed", "cancelled"]:
|
|
337
337
|
return crawl_job
|
|
338
338
|
|
|
339
339
|
# Check timeout
|
|
@@ -123,7 +123,7 @@ def _validate_search_request(request: SearchRequest) -> SearchRequest:
|
|
|
123
123
|
|
|
124
124
|
# Validate categories (if provided)
|
|
125
125
|
if request.categories is not None:
|
|
126
|
-
valid_categories = {"github", "research"}
|
|
126
|
+
valid_categories = {"github", "research", "pdf"}
|
|
127
127
|
for category in request.categories:
|
|
128
128
|
if isinstance(category, str):
|
|
129
129
|
if category not in valid_categories:
|
|
@@ -186,7 +186,13 @@ class Source(BaseModel):
|
|
|
186
186
|
SourceOption = Union[str, Source]
|
|
187
187
|
|
|
188
188
|
class Category(BaseModel):
|
|
189
|
-
"""Configuration for a search category.
|
|
189
|
+
"""Configuration for a search category.
|
|
190
|
+
|
|
191
|
+
Supported categories:
|
|
192
|
+
- "github": Filter results to GitHub repositories
|
|
193
|
+
- "research": Filter results to research papers and academic sites
|
|
194
|
+
- "pdf": Filter results to PDF files (adds filetype:pdf to search)
|
|
195
|
+
"""
|
|
190
196
|
type: str
|
|
191
197
|
|
|
192
198
|
CategoryOption = Union[str, Category]
|
|
@@ -348,7 +354,7 @@ class CrawlResponse(BaseModel):
|
|
|
348
354
|
|
|
349
355
|
class CrawlJob(BaseModel):
|
|
350
356
|
"""Crawl job status and progress data."""
|
|
351
|
-
status: Literal["scraping", "completed", "failed"]
|
|
357
|
+
status: Literal["scraping", "completed", "failed", "cancelled"]
|
|
352
358
|
total: int = 0
|
|
353
359
|
completed: int = 0
|
|
354
360
|
credits_used: int = 0
|
|
@@ -28,13 +28,14 @@ class AsyncWatcher:
|
|
|
28
28
|
job_id: str,
|
|
29
29
|
*,
|
|
30
30
|
kind: JobKind = "crawl",
|
|
31
|
+
poll_interval: int = 2,
|
|
31
32
|
timeout: Optional[int] = None,
|
|
32
33
|
) -> None:
|
|
33
34
|
self._client = client
|
|
34
35
|
self._job_id = job_id
|
|
35
36
|
self._kind = kind
|
|
36
37
|
self._timeout = timeout
|
|
37
|
-
self._poll_interval: float =
|
|
38
|
+
self._poll_interval: float = max(0.0, float(poll_interval)) # Guard against negative values
|
|
38
39
|
|
|
39
40
|
http_client = getattr(client, "http_client", None)
|
|
40
41
|
if http_client is not None:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: firecrawl
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.4.0
|
|
4
4
|
Summary: Python SDK for Firecrawl API
|
|
5
5
|
Home-page: https://github.com/firecrawl/firecrawl
|
|
6
6
|
Author: Mendable.ai
|
|
@@ -40,6 +40,10 @@ Requires-Dist: websockets
|
|
|
40
40
|
Requires-Dist: nest-asyncio
|
|
41
41
|
Requires-Dist: pydantic>=2.0
|
|
42
42
|
Requires-Dist: aiohttp
|
|
43
|
+
Dynamic: author
|
|
44
|
+
Dynamic: home-page
|
|
45
|
+
Dynamic: license-file
|
|
46
|
+
Dynamic: requires-python
|
|
43
47
|
|
|
44
48
|
# Firecrawl Python SDK
|
|
45
49
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/unit/v2/methods/aio/test_aio_crawl_params.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/unit/v2/methods/aio/test_ensure_async.py
RENAMED
|
File without changes
|
|
File without changes
|
{firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/unit/v2/methods/test_crawl_params.py
RENAMED
|
File without changes
|
|
File without changes
|
{firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/unit/v2/methods/test_crawl_validation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{firecrawl-4.3.6 → firecrawl-4.4.0}/firecrawl/__tests__/unit/v2/methods/test_search_validation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|