firecrawl 4.3.6__py3-none-any.whl → 4.4.0__py3-none-any.whl

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/__init__.py CHANGED
@@ -17,7 +17,7 @@ from .v1 import (
17
17
  V1ChangeTrackingOptions,
18
18
  )
19
19
 
20
- __version__ = "4.3.6"
20
+ __version__ = "4.4.0"
21
21
 
22
22
  # Define the logger for the Firecrawl project
23
23
  logger: logging.Logger = logging.getLogger("firecrawl")
@@ -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:
firecrawl/v2/types.py CHANGED
@@ -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 = 2.0
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
1
+ Metadata-Version: 2.4
2
2
  Name: firecrawl
3
- Version: 4.3.6
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
@@ -38,8 +38,12 @@ Requires-Dist: httpx
38
38
  Requires-Dist: python-dotenv
39
39
  Requires-Dist: websockets
40
40
  Requires-Dist: nest-asyncio
41
- Requires-Dist: pydantic (>=2.0)
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
 
@@ -1,4 +1,4 @@
1
- firecrawl/__init__.py,sha256=V6faUxnmrRvR4mfES3V_pZGHYQu1IAX3-KAMQWTDdSw,2192
1
+ firecrawl/__init__.py,sha256=-2sr3h_Oqik7BIh0eYYKkdjWLu_tzqPIWmwCPj4bv_Q,2192
2
2
  firecrawl/client.py,sha256=Lmrg2jniCETU6_xVMn_fgLrgDXiBixK9hSkkdsCGiog,11840
3
3
  firecrawl/firecrawl.backup.py,sha256=v1FEN3jR4g5Aupg4xp6SLkuFvYMQuUKND2YELbYjE6c,200430
4
4
  firecrawl/types.py,sha256=RmLTq14Z-Nf883wgZxubrtn2HDu9mecsCEdcIdBCu14,2923
@@ -46,15 +46,15 @@ firecrawl/v1/client.py,sha256=2Rq38RxGnuf2dMCmr4cc3f-ythavcBkUyJmRrwLmMHg,208104
46
46
  firecrawl/v2/__init__.py,sha256=Jc6a8tBjYG5OPkjDM5pl-notyys-7DEj7PLEfepv3fc,137
47
47
  firecrawl/v2/client.py,sha256=KBDN8p7epuCOG0XNb-jcftxfboufgYLYl6d3RiYyORA,32828
48
48
  firecrawl/v2/client_async.py,sha256=lnVnnjwVDVYHT1a2IiBooZi4rPt75gdxpzD0WpRrvb8,11457
49
- firecrawl/v2/types.py,sha256=ReVJ9VWYlCKX-tX55xFaA_XAIIePUbUGTq7vYQgwCSA,26166
49
+ firecrawl/v2/types.py,sha256=0cv39cqOyLYWV-UloJS-qTyF8jKNt13312mP8kMzRSg,26411
50
50
  firecrawl/v2/watcher.py,sha256=FOU71tqSKxgeuGycu4ye0SLc2dw7clIcoQjPsi-4Csc,14229
51
- firecrawl/v2/watcher_async.py,sha256=AVjW2mgABniolSsauK4u0FW8ya6WzRUdyEg2R-8vGCw,10278
51
+ firecrawl/v2/watcher_async.py,sha256=dMMACMgeKrne_xSYeRvPu0m8nXqdNkDEsaiNBiD5ilw,10370
52
52
  firecrawl/v2/methods/batch.py,sha256=-eGnCGgB76pY-BFVKG1DC58XViETWukQXtDU0esU_UU,14865
53
- firecrawl/v2/methods/crawl.py,sha256=p-1UC3-8vT757zOnNL5NJEWiT63BiAN2H1dCzLymqiQ,18797
53
+ firecrawl/v2/methods/crawl.py,sha256=bNHdIrknZSSnDzctGtTSoWIJ6vSTUOTB4F_Le8Oy3RY,18810
54
54
  firecrawl/v2/methods/extract.py,sha256=5EcgBzF8uNwA7auzco8xWdOycVV-Y44e04xJG4nlfZY,4982
55
55
  firecrawl/v2/methods/map.py,sha256=MH8jhLIFsp-4IC9womVtdCyarnGTeMqBXqwL21TRbFk,2849
56
56
  firecrawl/v2/methods/scrape.py,sha256=CSHBwC-P91UfrW3zHirjNAs2h899FKcWvd1DY_4fJdo,1921
57
- firecrawl/v2/methods/search.py,sha256=fWkMt0WL-VqmFEnkSf9Vi9E5gtBB2TEhtotaFuVb6rw,8024
57
+ firecrawl/v2/methods/search.py,sha256=cyHYDioLtr3QKWqFMibXEjl-JeG-UzircmEvzR2NzCQ,8031
58
58
  firecrawl/v2/methods/usage.py,sha256=NqkmFd-ziw8ijbZxwaxjxZHl85u0LTe_TYqr_NGWFwE,3693
59
59
  firecrawl/v2/methods/aio/__init__.py,sha256=RocMJnGwnLIvGu3G8ZvY8INkipC7WHZiu2bE31eSyJs,35
60
60
  firecrawl/v2/methods/aio/batch.py,sha256=0R01YcWqk4Tkilbec1EH2fqY614F5PPICQmILRJg38A,6840
@@ -71,10 +71,10 @@ firecrawl/v2/utils/http_client.py,sha256=gUrC1CvU5sj03w27Lbq-3-yH38Yi_OXiI01-piw
71
71
  firecrawl/v2/utils/http_client_async.py,sha256=iy89_bk2HS3afSRHZ8016eMCa9Fk-5MFTntcOHfbPgE,1936
72
72
  firecrawl/v2/utils/normalize.py,sha256=nlTU6QRghT1YKZzNZlIQj4STSRuSUGrS9cCErZIcY5w,3636
73
73
  firecrawl/v2/utils/validation.py,sha256=zzpCK4McM4P8Cag0_8s-d7Ww0idyTWKB4-yk92MT-rY,15405
74
+ firecrawl-4.4.0.dist-info/licenses/LICENSE,sha256=nPCunEDwjRGHlmjvsiDUyIWbkqqyj3Ej84ntnh0g0zA,1084
74
75
  tests/test_change_tracking.py,sha256=_IJ5ShLcoj2fHDBaw-nE4I4lHdmDB617ocK_XMHhXps,4177
75
76
  tests/test_timeout_conversion.py,sha256=PWlIEMASQNhu4cp1OW_ebklnE9NCiigPnEFCtI5N3w0,3996
76
- firecrawl-4.3.6.dist-info/LICENSE,sha256=nPCunEDwjRGHlmjvsiDUyIWbkqqyj3Ej84ntnh0g0zA,1084
77
- firecrawl-4.3.6.dist-info/METADATA,sha256=FwTSDQ4Hk5O09wHnDzaIM5V8jlHz11TKd09OBbgq7E0,7313
78
- firecrawl-4.3.6.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
79
- firecrawl-4.3.6.dist-info/top_level.txt,sha256=8T3jOaSN5mtLghO-R3MQ8KO290gIX8hmfxQmglBPdLE,16
80
- firecrawl-4.3.6.dist-info/RECORD,,
77
+ firecrawl-4.4.0.dist-info/METADATA,sha256=koMmKCkduC_7WcdU1z0_1G0b8sKaQpBQDOYb1b_8OvE,7392
78
+ firecrawl-4.4.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
79
+ firecrawl-4.4.0.dist-info/top_level.txt,sha256=8T3jOaSN5mtLghO-R3MQ8KO290gIX8hmfxQmglBPdLE,16
80
+ firecrawl-4.4.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.38.4)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5