1{
2 lib,
3 buildPythonPackage,
4 elasticsearch,
5 fetchPypi,
6 python-dateutil,
7 pythonOlder,
8 setuptools,
9 typing-extensions,
10}:
11
12buildPythonPackage rec {
13 pname = "elasticsearch-dsl";
14 version = "8.17.1";
15 pyproject = true;
16
17 disabled = pythonOlder "3.8";
18
19 src = fetchPypi {
20 pname = "elasticsearch_dsl";
21 inherit version;
22 hash = "sha256-2BcGmb/bT+f6s4VM2sMZotbd26opyep5k9LsIgVttaA=";
23 };
24
25 build-system = [ setuptools ];
26
27 dependencies = [
28 elasticsearch
29 python-dateutil
30 typing-extensions
31 ];
32
33 optional-dependencies = {
34 async = [ elasticsearch ] ++ elasticsearch.optional-dependencies.async;
35 };
36
37 # ImportError: No module named test_elasticsearch_dsl
38 # Tests require a local instance of elasticsearch
39 doCheck = false;
40
41 meta = with lib; {
42 description = "High level Python client for Elasticsearch";
43 longDescription = ''
44 Elasticsearch DSL is a high-level library whose aim is to help with
45 writing and running queries against Elasticsearch. It is built on top of
46 the official low-level client (elasticsearch-py).
47 '';
48 homepage = "https://github.com/elasticsearch/elasticsearch-dsl-py";
49 changelog = "https://github.com/elastic/elasticsearch-dsl-py/blob/v${version}/Changelog.rst";
50 license = licenses.asl20;
51 maintainers = with maintainers; [ desiderius ];
52 };
53}