1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 pyjwt,
6 pytestCheckHook,
7 python-dateutil,
8 pythonAtLeast,
9 pythonOlder,
10 requests,
11 responses,
12 setuptools,
13}:
14
15buildPythonPackage rec {
16 pname = "ibm-cloud-sdk-core";
17 version = "3.22.0";
18 pyproject = true;
19
20 disabled = pythonOlder "3.8";
21
22 src = fetchFromGitHub {
23 owner = "IBM";
24 repo = "python-sdk-core";
25 rev = "refs/tags/v${version}";
26 hash = "sha256-gNEd79kOtDlFJg3Ji9kO6VGGsy/VGxd6GzC/cuen9M0=";
27 };
28
29 pythonRelaxDeps = [ "requests" ];
30
31 build-system = [ setuptools ];
32
33 dependencies = [
34 pyjwt
35 python-dateutil
36 requests
37 ];
38
39 nativeCheckInputs = [
40 pytestCheckHook
41 responses
42 ];
43
44 disabledTests =
45 [
46 # Various tests try to access credential files which are not included with the source distribution
47 "test_configure_service"
48 "test_cp4d_authenticator"
49 "test_cwd"
50 "test_files_dict"
51 "test_files_duplicate_parts"
52 "test_files_list"
53 "test_get_authenticator"
54 "test_gzip_compression_external"
55 "test_iam"
56 "test_read_external_sources_2"
57 "test_retry_config_external"
58 # assertion error due to requests brotli support
59 "test_http_client"
60 # Tests require network access
61 "test_tls_v1_2"
62 ]
63 ++ lib.optionals (pythonAtLeast "3.12") [
64 # Tests are blocking or failing
65 "test_abstract_class_instantiation"
66 "test_abstract_class_instantiation"
67 ];
68
69 disabledTestPaths = [
70 "test/test_container_token_manager.py"
71 # Tests require credentials
72 "test_integration/"
73 ];
74
75 meta = with lib; {
76 description = "Client library for the IBM Cloud services";
77 homepage = "https://github.com/IBM/python-sdk-core";
78 changelog = "https://github.com/IBM/python-sdk-core/blob/v${version}/CHANGELOG.md";
79 license = licenses.asl20;
80 maintainers = with maintainers; [ globin ];
81 };
82}