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