1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 setuptools,
6 nest-asyncio,
7 pydantic,
8 python-dotenv,
9 requests,
10 websockets,
11}:
12
13buildPythonPackage rec {
14 pname = "firecrawl-py";
15 version = "1.7.0";
16 pyproject = true;
17
18 src = fetchFromGitHub {
19 owner = "mendableai";
20 repo = "firecrawl";
21 tag = "v${version}";
22 hash = "sha256-Tsw5OMjv/t9lt3seG31958R9o+s/6N7MGzHgqgkHrzQ=";
23 };
24
25 sourceRoot = "${src.name}/apps/python-sdk";
26
27 build-system = [ setuptools ];
28
29 dependencies = [
30 nest-asyncio
31 pydantic
32 python-dotenv
33 requests
34 websockets
35 ];
36
37 # No tests
38 doCheck = false;
39
40 pythonImportsCheck = [ "firecrawl" ];
41
42 meta = {
43 description = "Turn entire websites into LLM-ready markdown or structured data. Scrape, crawl and extract with a single API";
44 homepage = "https://firecrawl.dev";
45 changelog = "https://github.com/mendableai/firecrawl/releases/tag/${src.tag}";
46 license = lib.licenses.mit;
47 maintainers = with lib.maintainers; [ drupol ];
48 };
49}