1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 pythonOlder,
6 setuptools,
7 click,
8 primp,
9
10 # Optional dependencies
11 lxml,
12}:
13
14buildPythonPackage rec {
15 pname = "duckduckgo-search";
16 version = "8.0.0";
17 pyproject = true;
18
19 disabled = pythonOlder "3.8";
20
21 src = fetchFromGitHub {
22 owner = "deedy5";
23 repo = "duckduckgo_search";
24 tag = "v${version}";
25 hash = "sha256-FoGBVHxEXM9Mt0wpy7GctrlqUfhZb8DlK3UhlHld7E0=";
26 };
27
28 build-system = [ setuptools ];
29
30 dependencies = [
31 click
32 primp
33 ] ++ optional-dependencies.lxml;
34
35 optional-dependencies = {
36 lxml = [ lxml ];
37 };
38
39 doCheck = false; # tests require network access
40
41 pythonImportsCheck = [ "duckduckgo_search" ];
42
43 meta = {
44 description = "Python CLI and library for searching for words, documents, images, videos, news, maps and text translation using the DuckDuckGo.com search engine";
45 mainProgram = "ddgs";
46 homepage = "https://github.com/deedy5/duckduckgo_search";
47 changelog = "https://github.com/deedy5/duckduckgo_search/releases/tag/${src.tag}";
48 license = lib.licenses.mit;
49 maintainers = with lib.maintainers; [ drawbu ];
50 };
51}