1{ lib 2, stdenv 3, buildPythonPackage 4, fetchPypi 5, pythonOlder 6, setuptools-scm 7, importlib-metadata 8, dbus-python 9, jaraco-classes 10, jeepney 11, secretstorage 12, pytestCheckHook 13}: 14 15buildPythonPackage rec { 16 pname = "keyring"; 17 version = "24.2.0"; 18 format = "pyproject"; 19 disabled = pythonOlder "3.8"; 20 21 src = fetchPypi { 22 inherit pname version; 23 hash = "sha256-ygdGoZ7EISGfTXE/hI+il6ZhqKjBUEhn5Vv7XgkJFQk="; 24 }; 25 26 nativeBuildInputs = [ 27 setuptools-scm 28 ]; 29 30 propagatedBuildInputs = [ 31 jaraco-classes 32 ] ++ lib.optionals stdenv.isLinux [ 33 jeepney 34 secretstorage 35 ] ++ lib.optionals (pythonOlder "3.12") [ 36 importlib-metadata 37 ]; 38 39 pythonImportsCheck = [ 40 "keyring" 41 "keyring.backend" 42 ]; 43 44 nativeCheckInputs = [ 45 pytestCheckHook 46 ]; 47 48 disabledTestPaths = [ 49 "tests/backends/test_macOS.py" 50 ] 51 # These tests fail when sandboxing is enabled because they are unable to get a password from keychain. 52 ++ lib.optional stdenv.isDarwin "tests/test_multiprocess.py"; 53 54 meta = with lib; { 55 description = "Store and access your passwords safely"; 56 homepage = "https://github.com/jaraco/keyring"; 57 changelog = "https://github.com/jaraco/keyring/blob/v${version}/NEWS.rst"; 58 license = licenses.mit; 59 maintainers = with maintainers; [ lovek323 dotlambda ]; 60 platforms = platforms.unix; 61 }; 62}