1{
2 lib,
3 stdenv,
4 adal,
5 buildPythonPackage,
6 certifi,
7 fetchFromGitHub,
8 google-auth,
9 mock,
10 pytestCheckHook,
11 python-dateutil,
12 pythonOlder,
13 pythonRelaxDepsHook,
14 pyyaml,
15 requests,
16 requests-oauthlib,
17 setuptools,
18 six,
19 urllib3,
20 websocket-client,
21}:
22
23buildPythonPackage rec {
24 pname = "kubernetes";
25 version = "29.0.0";
26 pyproject = true;
27
28 disabled = pythonOlder "3.6";
29
30 src = fetchFromGitHub {
31 owner = "kubernetes-client";
32 repo = "python";
33 rev = "refs/tags/v${version}";
34 hash = "sha256-KChfiXYnJTeIW6O7GaK/fMxU2quIvbjc4gB4aZBeTtI=";
35 };
36
37 postPatch = ''
38 substituteInPlace kubernetes/base/config/kube_config_test.py \
39 --replace-fail "assertEquals" "assertEqual"
40 '';
41
42 pythonRelaxDeps = [ "urllib3" ];
43
44 build-system = [
45 pythonRelaxDepsHook
46 setuptools
47 ];
48
49 dependencies = [
50 certifi
51 google-auth
52 python-dateutil
53 pyyaml
54 requests
55 requests-oauthlib
56 six
57 urllib3
58 websocket-client
59 ];
60
61 passthru.optional-dependencies = {
62 adal = [ adal ];
63 };
64
65 pythonImportsCheck = [ "kubernetes" ];
66
67 nativeCheckInputs = [
68 mock
69 pytestCheckHook
70 ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
71
72 disabledTests = lib.optionals stdenv.isDarwin [
73 # AssertionError: <class 'urllib3.poolmanager.ProxyManager'> != <class 'urllib3.poolmanager.Poolmanager'>
74 "test_rest_proxycare"
75 ];
76
77 meta = with lib; {
78 description = "Kubernetes Python client";
79 homepage = "https://github.com/kubernetes-client/python";
80 changelog = "https://github.com/kubernetes-client/python/releases/tag/v${version}";
81 license = licenses.asl20;
82 maintainers = with maintainers; [ lsix ];
83 };
84}