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