1{ 2 lib, 3 buildPythonPackage, 4 fetchFromGitHub, 5 pythonOlder, 6 7 # build-system 8 setuptools, 9 10 # dependencies 11 django, 12 pytz, 13 14 # optional-dependencies 15 coreapi, 16 coreschema, 17 django-guardian, 18 inflection, 19 psycopg2, 20 pygments, 21 pyyaml, 22 23 # tests 24 pytestCheckHook, 25 pytest-django, 26}: 27 28buildPythonPackage rec { 29 pname = "djangorestframework"; 30 version = "3.16.0"; 31 pyproject = true; 32 disabled = pythonOlder "3.6"; 33 34 src = fetchFromGitHub { 35 owner = "encode"; 36 repo = "django-rest-framework"; 37 rev = version; 38 hash = "sha256-LFq8mUx+jAFFnQTfysYs+DSN941p+8h9mDDOp+LO7VU="; 39 }; 40 41 build-system = [ setuptools ]; 42 43 dependencies = [ 44 django 45 pygments 46 ] 47 ++ (lib.optional (lib.versionOlder django.version "5.0.0") pytz); 48 49 optional-dependencies = { 50 complete = [ 51 coreschema 52 django-guardian 53 inflection 54 psycopg2 55 pygments 56 pyyaml 57 ] 58 ++ lib.optionals (pythonOlder "3.13") [ 59 # broken on 3.13 60 coreapi 61 ]; 62 }; 63 64 nativeCheckInputs = [ 65 pytest-django 66 pytestCheckHook 67 ] 68 ++ optional-dependencies.complete; 69 70 disabledTests = [ 71 # https://github.com/encode/django-rest-framework/issues/9422 72 "test_urlpatterns" 73 ]; 74 75 pythonImportsCheck = [ "rest_framework" ]; 76 77 meta = with lib; { 78 changelog = "https://github.com/encode/django-rest-framework/releases/tag/3.15.1"; 79 description = "Web APIs for Django, made easy"; 80 homepage = "https://www.django-rest-framework.org/"; 81 license = licenses.bsd2; 82 }; 83}