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