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