1{ 2 lib, 3 babel, 4 buildPythonPackage, 5 django, 6 djangorestframework, 7 fetchFromGitHub, 8 gettext, 9 phonenumbers, 10 phonenumberslite, 11 python, 12 setuptools-scm, 13}: 14 15buildPythonPackage rec { 16 pname = "django-phonenumber-field"; 17 version = "8.1.0"; 18 pyproject = true; 19 20 src = fetchFromGitHub { 21 owner = "stefanfoulis"; 22 repo = "django-phonenumber-field"; 23 tag = version; 24 hash = "sha256-KRi2rUx88NYoQhRChmNABP8KalMbf4HhWC8Wwnc/xB4="; 25 }; 26 27 build-system = [ setuptools-scm ]; 28 29 # Upstream doesn't put phonenumbers in dependencies but the package doesn't 30 # make sense without either of the two optional dependencies. Since, in 31 # Nixpkgs, phonenumberslite depends on phonenumbers, add the latter 32 # unconditionally. 33 dependencies = [ django ] ++ optional-dependencies.phonenumbers; 34 35 nativeCheckInputs = [ 36 babel 37 djangorestframework 38 ]; 39 40 nativeBuildInputs = [ gettext ]; 41 42 pythonImportsCheck = [ "phonenumber_field" ]; 43 44 checkPhase = '' 45 ${python.interpreter} -m django test --settings tests.settings 46 ''; 47 48 preBuild = '' 49 ${python.interpreter} -m django compilemessages 50 ''; 51 52 optional-dependencies = { 53 phonenumbers = [ phonenumbers ]; 54 phonenumberslite = [ phonenumberslite ]; 55 }; 56 57 meta = with lib; { 58 description = "Django model and form field for normalised phone numbers using python-phonenumbers"; 59 homepage = "https://github.com/stefanfoulis/django-phonenumber-field/"; 60 changelog = "https://github.com/stefanfoulis/django-phonenumber-field/releases/tag/${src.tag}"; 61 license = licenses.mit; 62 maintainers = with maintainers; [ sephi ]; 63 }; 64}