Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at 24.05-beta 85 lines 2.0 kB view raw
1{ 2 lib, 3 buildPythonPackage, 4 click, 5 fetchFromGitHub, 6 pythonOlder, 7 setuptools, 8 orjson, 9 curl-cffi, 10 11 # To build orjson 12 rustPlatform, 13 14 # Optional dependencies 15 lxml, 16}: 17let 18 curl-cffi_0_7_0 = curl-cffi.overrideAttrs ( 19 final: old: { 20 version = "0.7.0b4"; 21 src = fetchFromGitHub { 22 owner = "yifeikong"; 23 repo = "curl_cffi"; 24 rev = "v${final.version}"; 25 hash = "sha256-txrJNUzswAPeH4Iazn0iKJI0Rqk0HHRoDrtTfDHKMoo="; 26 }; 27 } 28 ); 29 30 orjson_3_10_3 = orjson.overrideAttrs ( 31 final: old: { 32 version = "3.10.3"; 33 src = fetchFromGitHub { 34 owner = "ijl"; 35 repo = "orjson"; 36 rev = "refs/tags/${final.version}"; 37 hash = "sha256-bK6wA8P/IXEbiuJAx7psd0nUUKjR1jX4scFfJr1MBAk="; 38 }; 39 cargoDeps = rustPlatform.fetchCargoTarball { 40 inherit (final) src; 41 name = "${old.pname}-${final.version}"; 42 hash = "sha256-ilGq+/gPSuNwURUWy2ZxInzmUv+PxYMxd8esxrMpr2o="; 43 }; 44 } 45 ); 46in 47buildPythonPackage rec { 48 pname = "duckduckgo-search"; 49 version = "v5.3.1"; 50 pyproject = true; 51 52 disabled = pythonOlder "3.8"; 53 54 src = fetchFromGitHub { 55 owner = "deedy5"; 56 repo = "duckduckgo_search"; 57 rev = version; 58 hash = "sha256-T7rlB3dU7y+HbHr1Ss9KkejlXFORhnv9Va7cFTRtfQU="; 59 }; 60 61 nativeBuildInputs = [ setuptools ]; 62 63 propagatedBuildInputs = [ 64 click 65 orjson_3_10_3 66 curl-cffi_0_7_0 67 ]; 68 69 passthru.optional-dependencies = { 70 lxml = [ lxml ]; 71 }; 72 73 doCheck = false; # tests require network access 74 75 pythonImportsCheck = [ "duckduckgo_search" ]; 76 77 meta = { 78 description = "Python CLI and library for searching for words, documents, images, videos, news, maps and text translation using the DuckDuckGo.com search engine"; 79 mainProgram = "ddgs"; 80 homepage = "https://github.com/deedy5/duckduckgo_search"; 81 changelog = "https://github.com/deedy5/duckduckgo_search/releases/tag/${version}"; 82 license = lib.licenses.mit; 83 maintainers = with lib.maintainers; [ drawbu ]; 84 }; 85}