1{
2 lib,
3 aiohttp,
4 buildPythonPackage,
5 elastic-transport,
6 fetchPypi,
7 hatchling,
8 orjson,
9 pythonOlder,
10 requests,
11}:
12
13buildPythonPackage rec {
14 pname = "elasticsearch8";
15 version = "8.17.2";
16 pyproject = true;
17
18 disabled = pythonOlder "3.7";
19
20 src = fetchPypi {
21 inherit pname version;
22 hash = "sha256-j6FaQWPFJ8kqoTwjIPyMDcOZBg8mOO0BbKCFn4ESCAM=";
23 };
24
25 build-system = [ hatchling ];
26
27 dependencies = [ elastic-transport ];
28
29 optional-dependencies = {
30 async = [ aiohttp ];
31 requests = [ requests ];
32 orjson = [ orjson ];
33 };
34
35 # Check is disabled because running them destroy the content of the local cluster!
36 # https://github.com/elasticsearch/elasticsearch-py/tree/main/test_elasticsearch
37 doCheck = false;
38
39 pythonImportsCheck = [ "elasticsearch8" ];
40
41 meta = with lib; {
42 description = "Official low-level client for Elasticsearch";
43 homepage = "https://github.com/elasticsearch/elasticsearch-py";
44 changelog = "https://github.com/elastic/elasticsearch-py/releases/tag/v${version}";
45 license = licenses.asl20;
46 maintainers = with maintainers; [ fab ];
47 };
48}