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