firecrawl-py 2.7.1__py3-none-any.whl → 2.8.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-py might be problematic. Click here for more details.

Files changed (31) hide show
  1. build/lib/build/lib/build/lib/build/lib/firecrawl/__init__.py +79 -0
  2. build/lib/build/lib/build/lib/build/lib/firecrawl/__tests__/e2e_withAuth/__init__.py +0 -0
  3. build/lib/build/lib/build/lib/build/lib/firecrawl/__tests__/e2e_withAuth/test.py +170 -0
  4. build/lib/build/lib/build/lib/build/lib/firecrawl/__tests__/v1/e2e_withAuth/__init__.py +0 -0
  5. build/lib/build/lib/build/lib/build/lib/firecrawl/__tests__/v1/e2e_withAuth/test.py +440 -0
  6. build/lib/build/lib/build/lib/build/lib/firecrawl/firecrawl.py +4480 -0
  7. build/lib/build/lib/build/lib/build/lib/tests/test_change_tracking.py +98 -0
  8. build/lib/build/lib/build/lib/firecrawl/__init__.py +79 -0
  9. build/lib/build/lib/build/lib/firecrawl/__tests__/e2e_withAuth/__init__.py +0 -0
  10. build/lib/build/lib/build/lib/firecrawl/__tests__/e2e_withAuth/test.py +170 -0
  11. build/lib/build/lib/build/lib/firecrawl/__tests__/v1/e2e_withAuth/__init__.py +0 -0
  12. build/lib/build/lib/build/lib/firecrawl/__tests__/v1/e2e_withAuth/test.py +440 -0
  13. build/lib/build/lib/build/lib/firecrawl/firecrawl.py +4480 -0
  14. build/lib/build/lib/build/lib/tests/test_change_tracking.py +98 -0
  15. build/lib/build/lib/firecrawl/__init__.py +79 -0
  16. build/lib/build/lib/firecrawl/__tests__/e2e_withAuth/__init__.py +0 -0
  17. build/lib/build/lib/firecrawl/__tests__/e2e_withAuth/test.py +170 -0
  18. build/lib/build/lib/firecrawl/__tests__/v1/e2e_withAuth/__init__.py +0 -0
  19. build/lib/build/lib/firecrawl/__tests__/v1/e2e_withAuth/test.py +440 -0
  20. build/lib/build/lib/firecrawl/firecrawl.py +4480 -0
  21. build/lib/build/lib/tests/test_change_tracking.py +98 -0
  22. build/lib/firecrawl/__init__.py +1 -1
  23. build/lib/firecrawl/firecrawl.py +14 -1
  24. firecrawl/__init__.py +1 -1
  25. firecrawl/firecrawl.py +14 -1
  26. {firecrawl_py-2.7.1.dist-info → firecrawl_py-2.8.0.dist-info}/METADATA +1 -1
  27. firecrawl_py-2.8.0.dist-info/RECORD +40 -0
  28. firecrawl_py-2.7.1.dist-info/RECORD +0 -19
  29. {firecrawl_py-2.7.1.dist-info → firecrawl_py-2.8.0.dist-info}/LICENSE +0 -0
  30. {firecrawl_py-2.7.1.dist-info → firecrawl_py-2.8.0.dist-info}/WHEEL +0 -0
  31. {firecrawl_py-2.7.1.dist-info → firecrawl_py-2.8.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,98 @@
1
+ import unittest
2
+ from unittest.mock import patch, MagicMock
3
+ import json
4
+ import os
5
+ from firecrawl import FirecrawlApp
6
+
7
+ class TestChangeTracking(unittest.TestCase):
8
+ @patch('requests.post')
9
+ def test_change_tracking_format(self, mock_post):
10
+ mock_response = MagicMock()
11
+ mock_response.status_code = 200
12
+ mock_response.json.return_value = {
13
+ 'success': True,
14
+ 'data': {
15
+ 'markdown': 'Test markdown content',
16
+ 'changeTracking': {
17
+ 'previousScrapeAt': '2023-01-01T00:00:00Z',
18
+ 'changeStatus': 'changed',
19
+ 'visibility': 'visible'
20
+ }
21
+ }
22
+ }
23
+ mock_post.return_value = mock_response
24
+
25
+ app = FirecrawlApp(api_key=os.environ.get('TEST_API_KEY', 'dummy-api-key-for-testing'))
26
+ result = app.scrape_url('https://example.com', {
27
+ 'formats': ['markdown', 'changeTracking']
28
+ })
29
+
30
+ args, kwargs = mock_post.call_args
31
+ self.assertEqual(kwargs['json']['formats'], ['markdown', 'changeTracking'])
32
+
33
+ self.assertEqual(result['changeTracking']['previousScrapeAt'], '2023-01-01T00:00:00Z')
34
+ self.assertEqual(result['changeTracking']['changeStatus'], 'changed')
35
+ self.assertEqual(result['changeTracking']['visibility'], 'visible')
36
+
37
+ @patch('requests.post')
38
+ def test_change_tracking_options(self, mock_post):
39
+ mock_response = MagicMock()
40
+ mock_response.status_code = 200
41
+ mock_response.json.return_value = {
42
+ 'success': True,
43
+ 'data': {
44
+ 'markdown': 'Test markdown content',
45
+ 'changeTracking': {
46
+ 'previousScrapeAt': '2023-01-01T00:00:00Z',
47
+ 'changeStatus': 'changed',
48
+ 'visibility': 'visible',
49
+ 'diff': {
50
+ 'text': '@@ -1,1 +1,1 @@\n-old content\n+new content',
51
+ 'json': {
52
+ 'files': [{
53
+ 'from': None,
54
+ 'to': None,
55
+ 'chunks': [{
56
+ 'content': '@@ -1,1 +1,1 @@',
57
+ 'changes': [{
58
+ 'type': 'del',
59
+ 'content': '-old content',
60
+ 'del': True,
61
+ 'ln': 1
62
+ }, {
63
+ 'type': 'add',
64
+ 'content': '+new content',
65
+ 'add': True,
66
+ 'ln': 1
67
+ }]
68
+ }]
69
+ }]
70
+ }
71
+ },
72
+ 'json': {
73
+ 'title': {
74
+ 'previous': 'Old Title',
75
+ 'current': 'New Title'
76
+ }
77
+ }
78
+ }
79
+ }
80
+ }
81
+ mock_post.return_value = mock_response
82
+
83
+ app = FirecrawlApp(api_key=os.environ.get('TEST_API_KEY', 'dummy-api-key-for-testing'))
84
+ result = app.scrape_url('https://example.com', {
85
+ 'formats': ['markdown', 'changeTracking'],
86
+ 'changeTrackingOptions': {
87
+ 'modes': ['git-diff', 'json'],
88
+ 'schema': {'type': 'object', 'properties': {'title': {'type': 'string'}}}
89
+ }
90
+ })
91
+
92
+ args, kwargs = mock_post.call_args
93
+ self.assertEqual(kwargs['json']['formats'], ['markdown', 'changeTracking'])
94
+ self.assertEqual(kwargs['json']['changeTrackingOptions']['modes'], ['git-diff', 'json'])
95
+
96
+ self.assertEqual(result['changeTracking']['diff']['text'], '@@ -1,1 +1,1 @@\n-old content\n+new content')
97
+ self.assertEqual(result['changeTracking']['json']['title']['previous'], 'Old Title')
98
+ self.assertEqual(result['changeTracking']['json']['title']['current'], 'New Title')
@@ -13,7 +13,7 @@ import os
13
13
 
14
14
  from .firecrawl import FirecrawlApp, AsyncFirecrawlApp, JsonConfig, ScrapeOptions, ChangeTrackingOptions # noqa
15
15
 
16
- __version__ = "2.7.1"
16
+ __version__ = "2.8.0"
17
17
 
18
18
  # Define the logger for the Firecrawl project
19
19
  logger: logging.Logger = logging.getLogger("firecrawl")
@@ -140,6 +140,7 @@ class ChangeTrackingOptions(pydantic.BaseModel):
140
140
  modes: Optional[List[Literal["git-diff", "json"]]] = None
141
141
  schema: Optional[Any] = None
142
142
  prompt: Optional[str] = None
143
+ tag: Optional[str] = None
143
144
 
144
145
  class ScrapeOptions(pydantic.BaseModel):
145
146
  """Parameters for scraping operations."""
@@ -157,6 +158,8 @@ class ScrapeOptions(pydantic.BaseModel):
157
158
  blockAds: Optional[bool] = None
158
159
  proxy: Optional[Literal["basic", "stealth", "auto"]] = None
159
160
  changeTrackingOptions: Optional[ChangeTrackingOptions] = None
161
+ maxAge: Optional[int] = None
162
+ storeInCache: Optional[bool] = None
160
163
 
161
164
  class WaitAction(pydantic.BaseModel):
162
165
  """Wait action to perform during scraping."""
@@ -292,6 +295,7 @@ class MapParams(pydantic.BaseModel):
292
295
  sitemapOnly: Optional[bool] = None
293
296
  limit: Optional[int] = None
294
297
  timeout: Optional[int] = None
298
+ useIndex: Optional[bool] = None
295
299
 
296
300
  class MapResponse(pydantic.BaseModel):
297
301
  """Response from mapping operations."""
@@ -464,6 +468,8 @@ class FirecrawlApp:
464
468
  json_options: Optional[JsonConfig] = None,
465
469
  actions: Optional[List[Union[WaitAction, ScreenshotAction, ClickAction, WriteAction, PressAction, ScrollAction, ScrapeAction, ExecuteJavascriptAction]]] = None,
466
470
  change_tracking_options: Optional[ChangeTrackingOptions] = None,
471
+ max_age: Optional[int] = None,
472
+ store_in_cache: Optional[bool] = None,
467
473
  **kwargs) -> ScrapeResponse[Any]:
468
474
  """
469
475
  Scrape and extract content from a URL.
@@ -545,6 +551,10 @@ class FirecrawlApp:
545
551
  scrape_params['actions'] = [action if isinstance(action, dict) else action.dict(exclude_none=True) for action in actions]
546
552
  if change_tracking_options:
547
553
  scrape_params['changeTrackingOptions'] = change_tracking_options if isinstance(change_tracking_options, dict) else change_tracking_options.dict(exclude_none=True)
554
+ if max_age is not None:
555
+ scrape_params['maxAge'] = max_age
556
+ if store_in_cache is not None:
557
+ scrape_params['storeInCache'] = store_in_cache
548
558
 
549
559
  scrape_params.update(kwargs)
550
560
 
@@ -1102,6 +1112,7 @@ class FirecrawlApp:
1102
1112
  sitemap_only: Optional[bool] = None,
1103
1113
  limit: Optional[int] = None,
1104
1114
  timeout: Optional[int] = None,
1115
+ use_index: Optional[bool] = None,
1105
1116
  **kwargs) -> MapResponse:
1106
1117
  """
1107
1118
  Map and discover links from a URL.
@@ -1144,7 +1155,9 @@ class FirecrawlApp:
1144
1155
  map_params['limit'] = limit
1145
1156
  if timeout is not None:
1146
1157
  map_params['timeout'] = timeout
1147
-
1158
+ if use_index is not None:
1159
+ map_params['useIndex'] = use_index
1160
+
1148
1161
  # Add any additional kwargs
1149
1162
  map_params.update(kwargs)
1150
1163
 
firecrawl/__init__.py CHANGED
@@ -13,7 +13,7 @@ import os
13
13
 
14
14
  from .firecrawl import FirecrawlApp, AsyncFirecrawlApp, JsonConfig, ScrapeOptions, ChangeTrackingOptions # noqa
15
15
 
16
- __version__ = "2.7.1"
16
+ __version__ = "2.8.0"
17
17
 
18
18
  # Define the logger for the Firecrawl project
19
19
  logger: logging.Logger = logging.getLogger("firecrawl")
firecrawl/firecrawl.py CHANGED
@@ -140,6 +140,7 @@ class ChangeTrackingOptions(pydantic.BaseModel):
140
140
  modes: Optional[List[Literal["git-diff", "json"]]] = None
141
141
  schema: Optional[Any] = None
142
142
  prompt: Optional[str] = None
143
+ tag: Optional[str] = None
143
144
 
144
145
  class ScrapeOptions(pydantic.BaseModel):
145
146
  """Parameters for scraping operations."""
@@ -157,6 +158,8 @@ class ScrapeOptions(pydantic.BaseModel):
157
158
  blockAds: Optional[bool] = None
158
159
  proxy: Optional[Literal["basic", "stealth", "auto"]] = None
159
160
  changeTrackingOptions: Optional[ChangeTrackingOptions] = None
161
+ maxAge: Optional[int] = None
162
+ storeInCache: Optional[bool] = None
160
163
 
161
164
  class WaitAction(pydantic.BaseModel):
162
165
  """Wait action to perform during scraping."""
@@ -292,6 +295,7 @@ class MapParams(pydantic.BaseModel):
292
295
  sitemapOnly: Optional[bool] = None
293
296
  limit: Optional[int] = None
294
297
  timeout: Optional[int] = None
298
+ useIndex: Optional[bool] = None
295
299
 
296
300
  class MapResponse(pydantic.BaseModel):
297
301
  """Response from mapping operations."""
@@ -464,6 +468,8 @@ class FirecrawlApp:
464
468
  json_options: Optional[JsonConfig] = None,
465
469
  actions: Optional[List[Union[WaitAction, ScreenshotAction, ClickAction, WriteAction, PressAction, ScrollAction, ScrapeAction, ExecuteJavascriptAction]]] = None,
466
470
  change_tracking_options: Optional[ChangeTrackingOptions] = None,
471
+ max_age: Optional[int] = None,
472
+ store_in_cache: Optional[bool] = None,
467
473
  **kwargs) -> ScrapeResponse[Any]:
468
474
  """
469
475
  Scrape and extract content from a URL.
@@ -545,6 +551,10 @@ class FirecrawlApp:
545
551
  scrape_params['actions'] = [action if isinstance(action, dict) else action.dict(exclude_none=True) for action in actions]
546
552
  if change_tracking_options:
547
553
  scrape_params['changeTrackingOptions'] = change_tracking_options if isinstance(change_tracking_options, dict) else change_tracking_options.dict(exclude_none=True)
554
+ if max_age is not None:
555
+ scrape_params['maxAge'] = max_age
556
+ if store_in_cache is not None:
557
+ scrape_params['storeInCache'] = store_in_cache
548
558
 
549
559
  scrape_params.update(kwargs)
550
560
 
@@ -1102,6 +1112,7 @@ class FirecrawlApp:
1102
1112
  sitemap_only: Optional[bool] = None,
1103
1113
  limit: Optional[int] = None,
1104
1114
  timeout: Optional[int] = None,
1115
+ use_index: Optional[bool] = None,
1105
1116
  **kwargs) -> MapResponse:
1106
1117
  """
1107
1118
  Map and discover links from a URL.
@@ -1144,7 +1155,9 @@ class FirecrawlApp:
1144
1155
  map_params['limit'] = limit
1145
1156
  if timeout is not None:
1146
1157
  map_params['timeout'] = timeout
1147
-
1158
+ if use_index is not None:
1159
+ map_params['useIndex'] = use_index
1160
+
1148
1161
  # Add any additional kwargs
1149
1162
  map_params.update(kwargs)
1150
1163
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: firecrawl-py
3
- Version: 2.7.1
3
+ Version: 2.8.0
4
4
  Summary: Python SDK for Firecrawl API
5
5
  Home-page: https://github.com/mendableai/firecrawl
6
6
  Author: Mendable.ai
@@ -0,0 +1,40 @@
1
+ build/lib/build/lib/build/lib/build/lib/firecrawl/__init__.py,sha256=yjca32tLszqh8QmT5UsMFmlU7KupIvrfvXHFcNaoGFQ,2612
2
+ build/lib/build/lib/build/lib/build/lib/firecrawl/firecrawl.py,sha256=tWGrSt1_G0CJrAbzOwkDAgV2txPSjU5oCzcltRvbgm0,190740
3
+ build/lib/build/lib/build/lib/build/lib/firecrawl/__tests__/e2e_withAuth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
+ build/lib/build/lib/build/lib/build/lib/firecrawl/__tests__/e2e_withAuth/test.py,sha256=-Fq2vPcMo0iQi4dwsUkkCd931ybDaTxMBnZbRfGdDcA,7931
5
+ build/lib/build/lib/build/lib/build/lib/firecrawl/__tests__/v1/e2e_withAuth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ build/lib/build/lib/build/lib/build/lib/firecrawl/__tests__/v1/e2e_withAuth/test.py,sha256=DcCw-cohtnL-t9XPekUtRoQrgg3UCWu8Ikqudf9ory8,19880
7
+ build/lib/build/lib/build/lib/build/lib/tests/test_change_tracking.py,sha256=_IJ5ShLcoj2fHDBaw-nE4I4lHdmDB617ocK_XMHhXps,4177
8
+ build/lib/build/lib/build/lib/firecrawl/__init__.py,sha256=yjca32tLszqh8QmT5UsMFmlU7KupIvrfvXHFcNaoGFQ,2612
9
+ build/lib/build/lib/build/lib/firecrawl/firecrawl.py,sha256=tWGrSt1_G0CJrAbzOwkDAgV2txPSjU5oCzcltRvbgm0,190740
10
+ build/lib/build/lib/build/lib/firecrawl/__tests__/e2e_withAuth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
+ build/lib/build/lib/build/lib/firecrawl/__tests__/e2e_withAuth/test.py,sha256=-Fq2vPcMo0iQi4dwsUkkCd931ybDaTxMBnZbRfGdDcA,7931
12
+ build/lib/build/lib/build/lib/firecrawl/__tests__/v1/e2e_withAuth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
+ build/lib/build/lib/build/lib/firecrawl/__tests__/v1/e2e_withAuth/test.py,sha256=DcCw-cohtnL-t9XPekUtRoQrgg3UCWu8Ikqudf9ory8,19880
14
+ build/lib/build/lib/build/lib/tests/test_change_tracking.py,sha256=_IJ5ShLcoj2fHDBaw-nE4I4lHdmDB617ocK_XMHhXps,4177
15
+ build/lib/build/lib/firecrawl/__init__.py,sha256=yjca32tLszqh8QmT5UsMFmlU7KupIvrfvXHFcNaoGFQ,2612
16
+ build/lib/build/lib/firecrawl/firecrawl.py,sha256=tWGrSt1_G0CJrAbzOwkDAgV2txPSjU5oCzcltRvbgm0,190740
17
+ build/lib/build/lib/firecrawl/__tests__/e2e_withAuth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
+ build/lib/build/lib/firecrawl/__tests__/e2e_withAuth/test.py,sha256=-Fq2vPcMo0iQi4dwsUkkCd931ybDaTxMBnZbRfGdDcA,7931
19
+ build/lib/build/lib/firecrawl/__tests__/v1/e2e_withAuth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
+ build/lib/build/lib/firecrawl/__tests__/v1/e2e_withAuth/test.py,sha256=DcCw-cohtnL-t9XPekUtRoQrgg3UCWu8Ikqudf9ory8,19880
21
+ build/lib/build/lib/tests/test_change_tracking.py,sha256=_IJ5ShLcoj2fHDBaw-nE4I4lHdmDB617ocK_XMHhXps,4177
22
+ build/lib/firecrawl/__init__.py,sha256=yjca32tLszqh8QmT5UsMFmlU7KupIvrfvXHFcNaoGFQ,2612
23
+ build/lib/firecrawl/firecrawl.py,sha256=tWGrSt1_G0CJrAbzOwkDAgV2txPSjU5oCzcltRvbgm0,190740
24
+ build/lib/firecrawl/__tests__/e2e_withAuth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
+ build/lib/firecrawl/__tests__/e2e_withAuth/test.py,sha256=-Fq2vPcMo0iQi4dwsUkkCd931ybDaTxMBnZbRfGdDcA,7931
26
+ build/lib/firecrawl/__tests__/v1/e2e_withAuth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
+ build/lib/firecrawl/__tests__/v1/e2e_withAuth/test.py,sha256=DcCw-cohtnL-t9XPekUtRoQrgg3UCWu8Ikqudf9ory8,19880
28
+ build/lib/tests/test_change_tracking.py,sha256=_IJ5ShLcoj2fHDBaw-nE4I4lHdmDB617ocK_XMHhXps,4177
29
+ firecrawl/__init__.py,sha256=yjca32tLszqh8QmT5UsMFmlU7KupIvrfvXHFcNaoGFQ,2612
30
+ firecrawl/firecrawl.py,sha256=tWGrSt1_G0CJrAbzOwkDAgV2txPSjU5oCzcltRvbgm0,190740
31
+ firecrawl/__tests__/e2e_withAuth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
+ firecrawl/__tests__/e2e_withAuth/test.py,sha256=-Fq2vPcMo0iQi4dwsUkkCd931ybDaTxMBnZbRfGdDcA,7931
33
+ firecrawl/__tests__/v1/e2e_withAuth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
+ firecrawl/__tests__/v1/e2e_withAuth/test.py,sha256=DcCw-cohtnL-t9XPekUtRoQrgg3UCWu8Ikqudf9ory8,19880
35
+ tests/test_change_tracking.py,sha256=_IJ5ShLcoj2fHDBaw-nE4I4lHdmDB617ocK_XMHhXps,4177
36
+ firecrawl_py-2.8.0.dist-info/LICENSE,sha256=nPCunEDwjRGHlmjvsiDUyIWbkqqyj3Ej84ntnh0g0zA,1084
37
+ firecrawl_py-2.8.0.dist-info/METADATA,sha256=oMrtp1WndHvC_k4bwXxhayCuToEEMFwxpQB9vjid3JM,7168
38
+ firecrawl_py-2.8.0.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
39
+ firecrawl_py-2.8.0.dist-info/top_level.txt,sha256=ytN_R30g2U2qZYFyIm710Z8QeK9FO1Uwa-WPGHXyqjE,27
40
+ firecrawl_py-2.8.0.dist-info/RECORD,,
@@ -1,19 +0,0 @@
1
- build/lib/firecrawl/__init__.py,sha256=jAxgyVgi4Aq94lwkcicF2_Ba2Y9u51-KfskU9d7ynRQ,2612
2
- build/lib/firecrawl/firecrawl.py,sha256=fsKXa1cHcIIsGUbFAENLlKYZaW349CHQ6O353Uq6ypg,190196
3
- build/lib/firecrawl/__tests__/e2e_withAuth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- build/lib/firecrawl/__tests__/e2e_withAuth/test.py,sha256=-Fq2vPcMo0iQi4dwsUkkCd931ybDaTxMBnZbRfGdDcA,7931
5
- build/lib/firecrawl/__tests__/v1/e2e_withAuth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- build/lib/firecrawl/__tests__/v1/e2e_withAuth/test.py,sha256=DcCw-cohtnL-t9XPekUtRoQrgg3UCWu8Ikqudf9ory8,19880
7
- build/lib/tests/test_change_tracking.py,sha256=_IJ5ShLcoj2fHDBaw-nE4I4lHdmDB617ocK_XMHhXps,4177
8
- firecrawl/__init__.py,sha256=jAxgyVgi4Aq94lwkcicF2_Ba2Y9u51-KfskU9d7ynRQ,2612
9
- firecrawl/firecrawl.py,sha256=fsKXa1cHcIIsGUbFAENLlKYZaW349CHQ6O353Uq6ypg,190196
10
- firecrawl/__tests__/e2e_withAuth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
- firecrawl/__tests__/e2e_withAuth/test.py,sha256=-Fq2vPcMo0iQi4dwsUkkCd931ybDaTxMBnZbRfGdDcA,7931
12
- firecrawl/__tests__/v1/e2e_withAuth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
- firecrawl/__tests__/v1/e2e_withAuth/test.py,sha256=DcCw-cohtnL-t9XPekUtRoQrgg3UCWu8Ikqudf9ory8,19880
14
- tests/test_change_tracking.py,sha256=_IJ5ShLcoj2fHDBaw-nE4I4lHdmDB617ocK_XMHhXps,4177
15
- firecrawl_py-2.7.1.dist-info/LICENSE,sha256=nPCunEDwjRGHlmjvsiDUyIWbkqqyj3Ej84ntnh0g0zA,1084
16
- firecrawl_py-2.7.1.dist-info/METADATA,sha256=Y987r2PX3wds2_T6J47titJBzWVKNLBvLvd_d9CVQKw,7168
17
- firecrawl_py-2.7.1.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
18
- firecrawl_py-2.7.1.dist-info/top_level.txt,sha256=ytN_R30g2U2qZYFyIm710Z8QeK9FO1Uwa-WPGHXyqjE,27
19
- firecrawl_py-2.7.1.dist-info/RECORD,,