1{ 2 lib, 3 buildPythonPackage, 4 fetchPypi, 5 betamax, 6 fixtures, 7 hacking, 8 iso8601, 9 lxml, 10 oauthlib, 11 os-service-types, 12 oslo-config, 13 oslo-utils, 14 pbr, 15 pycodestyle, 16 pyyaml, 17 requests, 18 requests-kerberos, 19 requests-mock, 20 setuptools, 21 stestr, 22 stevedore, 23 testresources, 24 testtools, 25 typing-extensions, 26}: 27 28buildPythonPackage rec { 29 pname = "keystoneauth1"; 30 version = "5.12.0"; 31 pyproject = true; 32 33 src = fetchPypi { 34 inherit pname version; 35 hash = "sha256-3RE8Lz3LQY2fdhxzuM1DqW3fqKYStRxXaCI4HznKSug="; 36 }; 37 38 build-system = [ setuptools ]; 39 40 dependencies = [ 41 iso8601 42 os-service-types 43 pbr 44 requests 45 stevedore 46 typing-extensions 47 ] 48 # TODO: remove this workaround and fix breakages 49 ++ lib.flatten (builtins.attrValues optional-dependencies); 50 51 optional-dependencies = { 52 betamax = [ 53 betamax 54 pyyaml 55 ]; 56 kerberos = [ requests-kerberos ]; 57 oauth1 = [ oauthlib ]; 58 saml2 = [ lxml ]; 59 }; 60 61 nativeCheckInputs = [ 62 fixtures 63 hacking 64 oslo-config 65 oslo-utils 66 pycodestyle 67 requests-mock 68 stestr 69 testresources 70 testtools 71 ] 72 ++ lib.flatten (builtins.attrValues optional-dependencies); 73 74 # test_keystoneauth_betamax_fixture is incompatible with urllib3 2.0.0 75 # https://bugs.launchpad.net/keystoneauth/+bug/2020112 76 checkPhase = '' 77 stestr run \ 78 -E "keystoneauth1.tests.unit.test_betamax_fixture.TestBetamaxFixture.test_keystoneauth_betamax_fixture" 79 ''; 80 81 pythonImportsCheck = [ "keystoneauth1" ]; 82 83 meta = with lib; { 84 description = "Authentication Library for OpenStack Identity"; 85 homepage = "https://github.com/openstack/keystoneauth"; 86 license = licenses.asl20; 87 teams = [ teams.openstack ]; 88 }; 89}