at 25.11-pre 1.5 kB view raw
1{ 2 lib, 3 buildPythonPackage, 4 cargo, 5 rustPlatform, 6 rustc, 7 setuptools, 8 setuptoolsRustBuildHook, 9 fetchPypi, 10 pythonOlder, 11 pytestCheckHook, 12 libiconv, 13 stdenv, 14 # for passthru.tests 15 asyncssh, 16 django_4, 17 fastapi, 18 paramiko, 19 twisted, 20}: 21 22buildPythonPackage rec { 23 pname = "bcrypt"; 24 version = "4.3.0"; 25 format = "pyproject"; 26 27 disabled = pythonOlder "3.6"; 28 29 src = fetchPypi { 30 inherit pname version; 31 hash = "sha256-Oj/SIEF4ttKtzwnLT2Qm/+9UdiV3p8m1TBWQCMsojBg="; 32 }; 33 34 cargoRoot = "src/_bcrypt"; 35 cargoDeps = rustPlatform.fetchCargoVendor { 36 inherit src; 37 sourceRoot = "${pname}-${version}/${cargoRoot}"; 38 name = "${pname}-${version}"; 39 hash = "sha256-HgHvfMBspPsSYhllnKBg5XZB6zxFIqJj+4//xKG8HwA="; 40 }; 41 42 nativeBuildInputs = [ 43 setuptools 44 setuptoolsRustBuildHook 45 rustPlatform.cargoSetupHook 46 cargo 47 rustc 48 ]; 49 50 # Remove when https://github.com/NixOS/nixpkgs/pull/190093 lands. 51 buildInputs = lib.optional stdenv.hostPlatform.isDarwin libiconv; 52 53 nativeCheckInputs = [ pytestCheckHook ]; 54 55 pythonImportsCheck = [ "bcrypt" ]; 56 57 passthru.tests = { 58 inherit 59 asyncssh 60 django_4 61 fastapi 62 paramiko 63 twisted 64 ; 65 }; 66 67 meta = with lib; { 68 description = "Modern password hashing for your software and your servers"; 69 homepage = "https://github.com/pyca/bcrypt/"; 70 license = licenses.asl20; 71 maintainers = with maintainers; [ domenkozar ]; 72 }; 73}