1{
2 lib,
3 buildPythonPackage,
4 django,
5 elasticsearch,
6 fetchPypi,
7 geopy,
8 packaging,
9 pysolr,
10 python-dateutil,
11 pythonOlder,
12 requests,
13 setuptools-scm,
14 setuptools,
15 stdenv,
16 whoosh,
17}:
18
19buildPythonPackage rec {
20 pname = "django-haystack";
21 version = "3.3.0";
22 pyproject = true;
23
24 disabled = pythonOlder "3.8";
25
26 src = fetchPypi {
27 pname = "django_haystack";
28 inherit version;
29 hash = "sha256-487ta4AAYl2hTUCetNrGmJSQXirIrBj5v9tZMjygLqs=";
30 };
31
32 build-system = [
33 setuptools
34 setuptools-scm
35 ];
36
37 buildInputs = [ django ];
38
39 dependencies = [ packaging ];
40
41 optional-dependencies = {
42 elasticsearch = [ elasticsearch ];
43 };
44
45 # tests fail and get stuck on darwin
46 doCheck = !stdenv.hostPlatform.isDarwin;
47
48 nativeCheckInputs = [
49 geopy
50 pysolr
51 python-dateutil
52 requests
53 whoosh
54 ]
55 ++ optional-dependencies.elasticsearch;
56
57 checkPhase = ''
58 runHook preCheck
59 python test_haystack/run_tests.py
60 runHook postCheck
61 '';
62
63 meta = with lib; {
64 description = "Pluggable search for Django";
65 homepage = "http://haystacksearch.org/";
66 changelog = "https://github.com/django-haystack/django-haystack/releases/tag/v${version}";
67 license = licenses.bsd3;
68 maintainers = [ ];
69 };
70}