nixpkgs/pkgs/development/python-modules/django/4.nix
Guillaume Girol 33afbf39f6 treewide: switch to nativeCheckInputs
checkInputs used to be added to nativeBuildInputs. Now we have
nativeCheckInputs to do that instead. Doing this treewide change allows
to keep hashes identical to before the introduction of
nativeCheckInputs.
2023-01-21 12:00:00 +00:00

123 lines
2.0 KiB
Nix

{ lib
, stdenv
, buildPythonPackage
, fetchPypi
, pythonOlder
, substituteAll
# build
, setuptools
# patched in
, fetchpatch
, geos
, gdal
, withGdal ? false
# propagated
, asgiref
, backports-zoneinfo
, sqlparse
# tests
, aiosmtpd
, argon2-cffi
, bcrypt
, docutils
, geoip2
, jinja2
, python-memcached
, numpy
, pillow
, pylibmc
, pymemcache
, python
, pytz
, pywatchman
, pyyaml
, redis
, selenium
, tblib
, tzdata
}:
buildPythonPackage rec {
pname = "Django";
version = "4.1.5";
format = "pyproject";
disabled = pythonOlder "3.8";
src = fetchPypi {
inherit pname version;
hash = "sha256-/1br1+rQ/V2+Bv4VewAkp6rqLgWTuzeF+1lM+U2tWO8=";
};
patches = [
(substituteAll {
src = ./django_4_set_zoneinfo_dir.patch;
zoneinfo = tzdata + "/share/zoneinfo";
})
] ++ lib.optionals withGdal [
(substituteAll {
src = ./django_4_set_geos_gdal_lib.patch;
geos = geos;
gdal = gdal;
extension = stdenv.hostPlatform.extensions.sharedLibrary;
})
];
nativeBuildInputs = [
setuptools
];
propagatedBuildInputs = [
asgiref
sqlparse
] ++ lib.optionals (pythonOlder "3.9") [
backports-zoneinfo
];
# Fails to import asgiref in ~200 tests
# ModuleNotFoundError: No module named 'asgiref'
doCheck = false;
nativeCheckInputs = [
aiosmtpd
argon2-cffi
asgiref
bcrypt
docutils
geoip2
jinja2
python-memcached
numpy
pillow
pylibmc
pymemcache
pytz
pywatchman
pyyaml
redis
selenium
tblib
tzdata
];
checkPhase = ''
runHook preCheck
${python.interpreter} tests/runtests.py
runHook postCheck
'';
meta = with lib; {
changelog = "https://docs.djangoproject.com/en/${lib.versions.majorMinor version}/releases/${version}/";
description = "A high-level Python Web framework that encourages rapid development and clean, pragmatic design.";
homepage = "https://www.djangoproject.com";
license = licenses.bsd3;
maintainers = with maintainers; [ hexa ];
};
}