nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{ lib
2, stdenv
3, buildPythonPackage
4, fetchPypi
5, pythonOlder
6, substituteAll
7
8# patched in
9, geos
10, gdal
11, withGdal ? false
12
13# propagated
14, asgiref
15, backports-zoneinfo
16, sqlparse
17
18# tests
19, aiosmtpd
20, argon2-cffi
21, bcrypt
22, docutils
23, geoip2
24, jinja2
25, python-memcached
26, numpy
27, pillow
28, pylibmc
29, pymemcache
30, python
31, pytz
32, pywatchman
33, pyyaml
34, redis
35, selenium
36, tblib
37, tzdata
38}:
39
40buildPythonPackage rec {
41 pname = "Django";
42 version = "4.0.4";
43 format = "pyproject";
44
45 disabled = pythonOlder "3.8";
46
47 src = fetchPypi {
48 inherit pname version;
49 hash = "sha256-ToF3hYUkQXVjzAQw8p6iSZRtgx6ssAaKFFVoZYffQLU=";
50 };
51
52 patches = lib.optional withGdal
53 (substituteAll {
54 src = ./django_4_set_geos_gdal_lib.patch;
55 geos = geos;
56 gdal = gdal;
57 extension = stdenv.hostPlatform.extensions.sharedLibrary;
58 });
59
60 propagatedBuildInputs = [
61 asgiref
62 sqlparse
63 ] ++ lib.optionals (pythonOlder "3.9") [
64 backports-zoneinfo
65 ];
66
67 # Fails to import asgiref in ~200 tests
68 # ModuleNotFoundError: No module named 'asgiref'
69 doCheck = false;
70
71 checkInputs = [
72 aiosmtpd
73 argon2-cffi
74 asgiref
75 bcrypt
76 docutils
77 geoip2
78 jinja2
79 python-memcached
80 numpy
81 pillow
82 pylibmc
83 pymemcache
84 pytz
85 pywatchman
86 pyyaml
87 redis
88 selenium
89 tblib
90 tzdata
91 ];
92
93 checkPhase = ''
94 runHook preCheck
95
96 ${python.interpreter} tests/runtests.py
97
98 runHook postCheck
99 '';
100
101 meta = with lib; {
102 description = "A high-level Python Web framework that encourages rapid development and clean, pragmatic design.";
103 homepage = "https://www.djangoproject.com";
104 license = licenses.bsd3;
105 maintainers = with maintainers; [ hexa ];
106 };
107}