1{ 2 lib, 3 buildPythonPackage, 4 django, 5 django-formtools, 6 django-otp, 7 django-phonenumber-field, 8 fetchFromGitHub, 9 phonenumbers, 10 pydantic, 11 pythonOlder, 12 pythonRelaxDepsHook, 13 qrcode, 14 setuptools-scm, 15 twilio, 16 webauthn, 17}: 18 19buildPythonPackage rec { 20 pname = "django-two-factor-auth"; 21 version = "1.15.5"; 22 pyproject = true; 23 24 disabled = pythonOlder "3.7"; 25 26 src = fetchFromGitHub { 27 owner = "jazzband"; 28 repo = "django-two-factor-auth"; 29 rev = "refs/tags/${version}"; 30 hash = "sha256-Sr7L3ioeofyADHb1NSgs0GmVbzX7rro7yhhG9Gq6GJE="; 31 }; 32 33 nativeBuildInputs = [ 34 pythonRelaxDepsHook 35 setuptools-scm 36 ]; 37 38 pythonRelaxDeps = [ "django-phonenumber-field" ]; 39 40 propagatedBuildInputs = [ 41 django 42 django-formtools 43 django-otp 44 django-phonenumber-field 45 qrcode 46 ]; 47 48 passthru.optional-dependencies = { 49 call = [ twilio ]; 50 sms = [ twilio ]; 51 webauthn = [ 52 pydantic 53 webauthn 54 ]; 55 # yubikey = [ 56 # django-otp-yubikey 57 # ]; 58 phonenumbers = [ phonenumbers ]; 59 # phonenumberslite = [ 60 # phonenumberslite 61 # ]; 62 }; 63 64 # Tests require internet connection 65 doCheck = false; 66 67 pythonImportsCheck = [ "two_factor" ]; 68 69 meta = with lib; { 70 description = "Complete Two-Factor Authentication for Django"; 71 homepage = "https://github.com/jazzband/django-two-factor-auth"; 72 changelog = "https://github.com/jazzband/django-two-factor-auth/releases/tag/${version}"; 73 license = licenses.mit; 74 maintainers = with maintainers; [ derdennisop ]; 75 }; 76}