1{ 2 lib, 3 buildPythonPackage, 4 fetchFromGitHub, 5 setuptools, 6 argon2-cffi, 7 construct, 8 lxml, 9 pycryptodomex, 10 pyotp, 11 unittestCheckHook, 12}: 13 14buildPythonPackage rec { 15 pname = "pykeepass"; 16 version = "4.0.7"; 17 pyproject = true; 18 19 src = fetchFromGitHub { 20 owner = "libkeepass"; 21 repo = "pykeepass"; 22 rev = "v${version}"; 23 hash = "sha256-qUNMjnIhQpUSQY0kN9bA4IxQx8fiFIA6p8rPqNqdjNo="; 24 }; 25 26 postPatch = '' 27 # https://github.com/libkeepass/pykeepass/pull/378 28 substituteInPlace pyproject.toml \ 29 --replace-fail 'packages = ["pykeepass"]' 'packages = ["pykeepass", "pykeepass.kdbx_parsing"]' 30 ''; 31 32 nativeBuildInputs = [ setuptools ]; 33 34 propagatedBuildInputs = [ 35 argon2-cffi 36 construct 37 lxml 38 pycryptodomex 39 setuptools 40 ]; 41 42 propagatedNativeBuildInputs = [ argon2-cffi ]; 43 44 nativeCheckInputs = [ 45 pyotp 46 unittestCheckHook 47 ]; 48 49 pythonImportsCheck = [ "pykeepass" ]; 50 51 meta = with lib; { 52 homepage = "https://github.com/libkeepass/pykeepass"; 53 changelog = "https://github.com/libkeepass/pykeepass/blob/${src.rev}/CHANGELOG.rst"; 54 description = "Python library to interact with keepass databases (supports KDBX3 and KDBX4)"; 55 license = licenses.gpl3Only; 56 maintainers = with maintainers; [ dotlambda ]; 57 }; 58}