1{
2 lib,
3 stdenv,
4 buildPythonPackage,
5 fetchFromGitHub,
6
7 # build-system
8 setuptools,
9
10 # dependencies
11 click,
12 prettytable,
13 prompt-toolkit,
14 pygments,
15 requests,
16 rich,
17 urllib3,
18
19 # tests
20 mock,
21 pytestCheckHook,
22 sphinx,
23 testtools,
24 tkinter,
25 writableTmpDirAsHomeHook,
26 zeep,
27}:
28
29buildPythonPackage rec {
30 pname = "softlayer";
31 version = "6.2.7";
32 pyproject = true;
33
34 src = fetchFromGitHub {
35 owner = "softlayer";
36 repo = "softlayer-python";
37 tag = "v${version}";
38 hash = "sha256-mlC4o39Ol1ALguc9KGpxB0M0vhWz4LG2uwhW8CBrVgg=";
39 };
40
41 build-system = [ setuptools ];
42
43 pythonRelaxDeps = [ "rich" ];
44
45 dependencies = [
46 click
47 prettytable
48 prompt-toolkit
49 pygments
50 requests
51 rich
52 urllib3
53 ];
54
55 __darwinAllowLocalNetworking = true;
56
57 nativeCheckInputs = [
58 mock
59 pytestCheckHook
60 sphinx
61 testtools
62 tkinter
63 writableTmpDirAsHomeHook
64 zeep
65 ];
66
67 disabledTestPaths = [
68 # SoftLayer.exceptions.TransportError: TransportError(0): ('Connection aborted.', ConnectionResetError(54, 'Connection reset by peer'))
69 "tests/CLI/modules/hardware/hardware_basic_tests.py::HardwareCLITests"
70
71 # Test fails with ConnectionError trying to connect to api.softlayer.com
72 "tests/transports/soap_tests.py.unstable"
73 ];
74
75 pythonImportsCheck = [ "SoftLayer" ];
76
77 meta = {
78 description = "Python libraries that assist in calling the SoftLayer API";
79 homepage = "https://github.com/softlayer/softlayer-python";
80 changelog = "https://github.com/softlayer/softlayer-python/releases/tag/${src.tag}";
81 license = lib.licenses.mit;
82 maintainers = with lib.maintainers; [ onny ];
83 };
84}