Something went wrong. Try again.
lol
Something went wrong. Try again.
5.7 kB · 231 lines
Nix
at master
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232{ lib, stdenv, azure-identity, azure-storage-blob, billiard, boto3, brotli, brotlipy, buildPythonPackage, cassandra-driver, click, click-didyoumean, click-plugins, click-repl, cryptography, exceptiongroup, django, elastic-transport, elasticsearch, ephem, fetchFromGitHub, gevent, google-cloud-firestore, google-cloud-storage, grpcio, isPyPy, kazoo, kombu, moto, pydantic, pydocumentdb, pylibmc, pytest-celery, pytest-click, pytest-timeout, pytest-xdist, pytestCheckHook, python-dateutil, python-memcached, pyzmq, setuptools, tzlocal, sphinx-autobuild, tblib, urllib3, vine, zstandard, # The AMQP REPL depends on click-repl, which is incompatible with our version # of click. withAmqpRepl ? false,}:
buildPythonPackage (finalAttrs: { pname = "celery"; version = "5.6.3"; pyproject = true;
src = fetchFromGitHub { owner = "celery"; repo = "celery"; tag = "v${finalAttrs.version}"; hash = "sha256-5YPM8/AnCSjeDDMQ30kTNjPr6QdlUiqzzBadtmjqoNg="; };
patches = lib.optionals (!withAmqpRepl) [ ./remove-amqp-repl.patch ];
build-system = [ setuptools ];
dependencies = [ billiard click click-didyoumean click-plugins exceptiongroup kombu python-dateutil tzlocal vine ] ++ lib.optionals withAmqpRepl [ click-repl ];
optional-dependencies = { # Everything commented is not packaged # see https://github.com/celery/celery/tree/main/requirements/extras arangodb = [ # pyarango ]; auth = [ cryptography ]; azureblockblob = [ azure-identity azure-storage-blob ]; brotli = if isPyPy then [ brotlipy ] else [ brotli ]; cassandra = [ cassandra-driver ]; consul = [ # python-consul2 ]; cosmosdbsql = [ pydocumentdb ]; couchbase = [ ]; couchdb = [ # pycouchdb ]; django = [ django ]; dynamodb = [ boto3 ]; elasticsearch = [ elasticsearch elastic-transport ]; eventlet = [ ]; gcs = [ google-cloud-firestore google-cloud-storage grpcio ]; gevent = [ gevent ]; memcache = [ pylibmc ]; mongodb = kombu.optional-dependencies.mongodb; msgpack = kombu.optional-dependencies.msgpack; pydantic = [ pydantic ]; pymemcache = [ python-memcached ]; pyro = [ ]; pytest = [ pytest-celery ] ++ pytest-celery.optional-dependencies.all; redis = kombu.optional-dependencies.redis; s3 = [ boto3 ]; slmq = [ # softlayer-messaging ]; solar = lib.optionals isPyPy [ ephem ]; sphinxautobuild = [ sphinx-autobuild ]; sqlalchemy = kombu.optional-dependencies.sqlalchemy; sqs = [ boto3 urllib3 ] ++ kombu.optional-dependencies.sqs; tblib = [ tblib ]; thread = [ ]; yaml = kombu.optional-dependencies.yaml; zeromq = [ pyzmq ]; zookeeper = [ kazoo ]; zsdt = [ zstandard ]; };
nativeCheckInputs = [ moto pytest-celery pytest-click pytest-timeout pytestCheckHook ] ++ lib.optionals stdenv.hostPlatform.isLinux [ # Using `pytest-xdist` leads to incomplete tests which hang `pytestRemoveBytecode` # under `sandbox=false` (the default on Darwin). pytest-xdist ] ++ lib.concatAttrValues finalAttrs.passthru.optional-dependencies;
disabledTestPaths = [ # test_eventlet touches network "t/unit/concurrency/test_eventlet.py" # test_multi tries to create directories under /var "t/unit/bin/test_multi.py" "t/unit/apps/test_multi.py" # Test requires moto<5 "t/unit/backends/test_s3.py" ];
disabledTests = [ "msgpack" "test_check_privileges_no_fchown" "test_uses_utc_timezone" # seems to only fail on higher core counts # AssertionError: assert 3 == 0 "test_setup_security_disabled_serializers" # Test is flaky, especially on hydra "test_ready" # Tests fail with pytest-xdist "test_itercapture_limit" "test_stamping_headers_in_options" "test_stamping_with_replace" # pymongo api compat # TypeError: InvalidDocument.__init__() missing 1 required positional argumen... "test_store_result" "test_store_result_with_request"
# Celery tries to look up group ID (e.g. 30000) # which does not reliably succeed in the sandbox on linux, # so it throws a security error as if we were running as root. # https://github.com/celery/celery/blob/0527296acb1f1790788301d4395ba6d5ce2a9704/celery/platforms.py#L807-L814 "test_regression_worker_startup_info" "test_check_privileges"
# FileNotFoundError: [Errno 2] No such file or directory: 'test.db' "test_forget"
# Flaky: Unclosed temporary file handle under heavy load (as in nixpkgs-review) "test_check_privileges_without_c_force_root_and_no_group_entry" ] ++ lib.optionals (lib.versionAtLeast django.version "6.0") [ "test_is_pickled" "test_cleanup" ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ # Too many open files on hydra "test_cleanup" "test_with_autoscaler_file_descriptor_safety" "test_with_file_descriptor_safety" # OverflowError: Python int too large to convert to C int "test_fd_by_path" "test_open" ];
pythonImportsCheck = [ "celery" ];
meta = { description = "Distributed task queue"; homepage = "https://github.com/celery/celery/"; changelog = "https://github.com/celery/celery/blob/${finalAttrs.src.tag}/Changelog.rst"; license = lib.licenses.bsd3; maintainers = with lib.maintainers; [ fab ]; mainProgram = "celery"; };})