1{
2 lib,
3 buildPythonPackage,
4 celery,
5 cron-descriptor,
6 django-timezone-field,
7 django,
8 fakeredis,
9 fetchFromGitHub,
10 mock,
11 pytestCheckHook,
12 python-crontab,
13 python-dateutil,
14 pytz,
15 setuptools,
16}:
17
18buildPythonPackage rec {
19 pname = "celery-redbeat";
20 version = "2.8.1";
21 pyproject = true;
22
23 src = fetchFromGitHub {
24 owner = "celery";
25 repo = "django-celery-beat";
26 tag = "v${version}";
27 hash = "sha256-pakOpch5r2ug0UDSqEU34qr4Tz1/mkuFiHW+IOUuGcc=";
28 };
29
30 postPatch = ''
31 # Hack the custom dependency resolution in setup.py to avoid pulling in pip
32 substituteInPlace setup.py \
33 --replace-fail "install_requires=reqs('default.txt') + reqs('runtime.txt')," "install_requires=[],"
34 '';
35
36 build-system = [ setuptools ];
37
38 dependencies = [
39 celery
40 cron-descriptor
41 django
42 django-timezone-field
43 python-crontab
44 python-dateutil
45 ];
46
47 nativeCheckInputs = [
48 mock
49 pytestCheckHook
50 pytz
51 ];
52
53 pythonImportsCheck = [ "django_celery_beat" ];
54
55 # Tests require additional work
56 doCheck = false;
57
58 meta = with lib; {
59 description = "Database-backed Periodic Tasks";
60 homepage = "https://github.com/celery/django-celery-beat";
61 changelog = "https://github.com/celery/django-celery-beat/releases/tag/${src.tag}";
62 license = licenses.bsd3;
63 maintainers = with maintainers; [ onny ];
64 };
65}