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.10.0"; 31 pyproject = true; 32 33 src = fetchPypi { 34 inherit pname version; 35 hash = "sha256-NLhw27z4Bs21rsmEg7YoIKZWjTZOynsRdMpqi1qcd+0="; 36 }; 37 38 build-system = [ setuptools ]; 39 40 dependencies = 41 [ 42 iso8601 43 os-service-types 44 pbr 45 requests 46 stevedore 47 typing-extensions 48 ] 49 # TODO: remove this workaround and fix breakages 50 ++ lib.flatten (builtins.attrValues optional-dependencies); 51 52 optional-dependencies = { 53 betamax = [ 54 betamax 55 pyyaml 56 ]; 57 kerberos = [ requests-kerberos ]; 58 oauth1 = [ oauthlib ]; 59 saml2 = [ lxml ]; 60 }; 61 62 nativeCheckInputs = [ 63 fixtures 64 hacking 65 oslo-config 66 oslo-utils 67 pycodestyle 68 requests-mock 69 stestr 70 testresources 71 testtools 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}