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}