1{ lib
2, buildPythonPackage
3, fetchPypi
4, installShellFiles
5, mock
6, openstacksdk
7, pbr
8, python-keystoneclient
9, pythonOlder
10, stestr
11}:
12
13buildPythonPackage rec {
14 pname = "python-swiftclient";
15 version = "4.4.0";
16 format = "setuptools";
17
18 disabled = pythonOlder "3.6";
19
20 src = fetchPypi {
21 inherit pname version;
22 hash = "sha256-p32Xqw5AEsZ4cy5XW9/u0oKzSJuRdegsRqR6yEke7oQ=";
23 };
24
25 # remove duplicate script that will be created by setuptools from the
26 # entry_points section of setup.cfg
27 postPatch = ''
28 sed -i '/^scripts =/d' setup.cfg
29 sed -i '/bin\/swift/d' setup.cfg
30 '';
31
32 nativeBuildInputs = [
33 installShellFiles
34 ];
35
36 propagatedBuildInputs = [
37 pbr
38 python-keystoneclient
39 ];
40
41 nativeCheckInputs = [
42 mock
43 openstacksdk
44 stestr
45 ];
46
47 postInstall = ''
48 installShellCompletion --cmd swift \
49 --bash tools/swift.bash_completion
50 installManPage doc/manpages/*
51 '';
52
53 checkPhase = ''
54 stestr run
55 '';
56
57 pythonImportsCheck = [
58 "swiftclient"
59 ];
60
61 meta = with lib; {
62 homepage = "https://github.com/openstack/python-swiftclient";
63 description = "Python bindings to the OpenStack Object Storage API";
64 license = licenses.asl20;
65 maintainers = teams.openstack.members;
66 };
67}