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.18.0";
15 pyproject = true;
16
17 disabled = pythonOlder "3.8";
18
19 src = fetchPypi {
20 pname = "elasticsearch_dsl";
21 inherit version;
22 hash = "sha256-djRl26nq4Wat0QVn6STGVzCqEigZsIv+mgd+kbE7MNE=";
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 };
52}