1{ 2 lib, 3 buildPythonPackage, 4 pythonOlder, 5 fetchPypi, 6 7 # build dependencies 8 setuptools, 9 setuptools-scm, 10 11 # dependencies 12 django, 13 14 # tests 15 elasticsearch, 16 geopy, 17 nose, 18 pysolr, 19 python-dateutil, 20 requests, 21 whoosh, 22}: 23 24buildPythonPackage rec { 25 pname = "django-haystack"; 26 version = "3.2.1"; 27 format = "pyproject"; 28 29 disabled = pythonOlder "3.5"; 30 31 src = fetchPypi { 32 inherit pname version; 33 hash = "sha256-l+MZeu/CJf5AW28XYAolNL+CfLTWdDEwwgvBoG9yk6Q="; 34 }; 35 36 postPatch = '' 37 substituteInPlace setup.py \ 38 --replace "geopy==" "geopy>=" 39 ''; 40 41 nativeBuildInputs = [ 42 setuptools 43 setuptools-scm 44 ]; 45 46 buildInputs = [ django ]; 47 48 passthru.optional-dependencies = { 49 elasticsearch = [ elasticsearch ]; 50 }; 51 52 doCheck = lib.versionOlder django.version "4"; 53 54 nativeCheckInputs = [ 55 geopy 56 nose 57 pysolr 58 python-dateutil 59 requests 60 whoosh 61 ] ++ passthru.optional-dependencies.elasticsearch; 62 63 checkPhase = '' 64 runHook preCheck 65 python test_haystack/run_tests.py 66 runHook postCheck 67 ''; 68 69 meta = with lib; { 70 description = "Pluggable search for Django"; 71 homepage = "http://haystacksearch.org/"; 72 license = licenses.bsd3; 73 maintainers = with maintainers; [ ]; 74 }; 75}