1{ lib
2, buildPythonPackage
3, certifi
4, click
5, elastic-transport
6, elasticsearch8
7, fetchFromGitHub
8, hatchling
9, mock
10, pytest-asyncio
11, pytestCheckHook
12, pythonOlder
13, pythonRelaxDepsHook
14, pyyaml
15, requests
16, six
17, voluptuous
18}:
19
20buildPythonPackage rec {
21 pname = "es-client";
22 version = "8.10.3";
23 format = "pyproject";
24
25 disabled = pythonOlder "3.7";
26
27 src = fetchFromGitHub {
28 owner = "untergeek";
29 repo = "es_client";
30 rev = "refs/tags/v${version}";
31 hash = "sha256-EvE40HLNKYl38PZ2bShAhFCsX3DMYsMmusUTcAql9b4=";
32 };
33
34 pythonRelaxDeps = true;
35
36 nativeBuildInputs = [
37 hatchling
38 pythonRelaxDepsHook
39 ];
40
41 propagatedBuildInputs = [
42 certifi
43 click
44 elastic-transport
45 elasticsearch8
46 pyyaml
47 six
48 voluptuous
49 ];
50
51 nativeCheckInputs = [
52 mock
53 pytest-asyncio
54 pytestCheckHook
55 requests
56 ];
57
58 pythonImportsCheck = [
59 "es_client"
60 ];
61
62 disabledTests = [
63 # Tests require network access
64 "test_bad_version_raises"
65 "test_client_info"
66 "test_multiple_hosts_raises"
67 "test_non_dict_passed"
68 "test_skip_version_check"
69 ];
70
71 meta = with lib; {
72 description = "Module for building Elasticsearch client objects";
73 homepage = "https://github.com/untergeek/es_client";
74 changelog = "https://github.com/untergeek/es_client/releases/tag/v${version}";
75 license = licenses.asl20;
76 maintainers = with maintainers; [ fab ];
77 };
78}