1{
2 lib,
3 buildPythonPackage,
4 callPackage,
5 fetchPypi,
6 platformdirs,
7 cryptography,
8 dogpile-cache,
9 jmespath,
10 jsonpatch,
11 keystoneauth1,
12 munch,
13 netifaces,
14 openstackdocstheme,
15 os-service-types,
16 pbr,
17 pythonOlder,
18 pyyaml,
19 requestsexceptions,
20 setuptools,
21 sphinxHook,
22}:
23
24buildPythonPackage rec {
25 pname = "openstacksdk";
26 version = "3.3.0";
27 pyproject = true;
28
29 disabled = pythonOlder "3.7";
30
31 outputs = [
32 "out"
33 "man"
34 ];
35
36 src = fetchPypi {
37 inherit pname version;
38 hash = "sha256-BghpDKN8pzMnsPo3YdF+ZTlb43/yALhzXY8kJ3tPSYA=";
39 };
40
41 postPatch = ''
42 # Disable rsvgconverter not needed to build manpage
43 substituteInPlace doc/source/conf.py \
44 --replace-fail "'sphinxcontrib.rsvgconverter'," "#'sphinxcontrib.rsvgconverter',"
45 '';
46
47 build-system = [
48 openstackdocstheme
49 setuptools
50 sphinxHook
51 ];
52
53 sphinxBuilders = [ "man" ];
54
55 dependencies = [
56 platformdirs
57 cryptography
58 dogpile-cache
59 jmespath
60 jsonpatch
61 keystoneauth1
62 munch
63 netifaces
64 os-service-types
65 pbr
66 requestsexceptions
67 pyyaml
68 ];
69
70 # Checks moved to 'passthru.tests' to workaround slowness
71 doCheck = false;
72
73 passthru.tests = {
74 tests = callPackage ./tests.nix { };
75 };
76
77 pythonImportsCheck = [ "openstack" ];
78
79 meta = with lib; {
80 description = "SDK for building applications to work with OpenStack";
81 mainProgram = "openstack-inventory";
82 homepage = "https://github.com/openstack/openstacksdk";
83 license = licenses.asl20;
84 maintainers = teams.openstack.members;
85 };
86}