nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 buildPythonPackage,
4 certifi,
5 click,
6 cryptography,
7 dotmap,
8 ecs-logging,
9 elastic-transport,
10 elasticsearch8,
11 fetchFromGitHub,
12 hatchling,
13 mock,
14 pytest-asyncio,
15 pytestCheckHook,
16 pyyaml,
17 requests,
18 tiered-debug,
19 voluptuous,
20}:
21
22buildPythonPackage rec {
23 pname = "es-client";
24 version = "9.0.2";
25 pyproject = true;
26
27 src = fetchFromGitHub {
28 owner = "untergeek";
29 repo = "es_client";
30 tag = "v${version}";
31 hash = "sha256-83EBDmbZuOAVT2oYn98s6XTZrB38lx03nozAkBqHfgg=";
32 };
33
34 pythonRelaxDeps = true;
35
36 build-system = [ hatchling ];
37
38 dependencies = [
39 certifi
40 click
41 cryptography
42 dotmap
43 ecs-logging
44 elastic-transport
45 elasticsearch8
46 pyyaml
47 tiered-debug
48 voluptuous
49 ];
50
51 nativeCheckInputs = [
52 mock
53 pytest-asyncio
54 pytestCheckHook
55 requests
56 ];
57
58 pythonImportsCheck = [ "es_client" ];
59
60 disabledTests = [
61 # Tests require local Elasticsearch instance
62 "test_bad_version_raises"
63 "test_basic_operation"
64 "test_client_info"
65 "test_client_info"
66 "test_exit_if_not_master"
67 "test_multiple_hosts_raises"
68 "test_skip_version_check"
69 "TestCLIExample"
70 ];
71
72 meta = {
73 description = "Module for building Elasticsearch client objects";
74 homepage = "https://github.com/untergeek/es_client";
75 changelog = "https://github.com/untergeek/es_client/releases/tag/${src.tag}";
76 license = lib.licenses.asl20;
77 maintainers = with lib.maintainers; [ fab ];
78 };
79}