Type stubs for celery related projects:
install
You'll also need to monkey patch the classes from the example below (you can delete anything you don't intend to use) so generic params can be provided:
from celery import Celery, Signature from celery.app.task import Task from celery.contrib.abortable import AbortableAsyncResult, AbortableTask from celery.contrib.django.task import DjangoTask from celery.local import class_property from celery.result import AsyncResult from celery.utils.objects import FallbackContext classes = [ Celery, Task, DjangoTask, AbortableTask, AsyncResult, AbortableAsyncResult, Signature, FallbackContext, class_property, ] for cls in classes: setattr( # noqa: B010 cls, "__class_getitem__", classmethod(lambda cls, *args, **kwargs: cls), )
dev
initial setup
# install uv (https://docs.astral.sh/uv/) curl -LsSf https://astral.sh/uv/install.sh | sh
regular development
# run formatting, linting, and typechecking
s/lintor
uv run ruff check --fix uv run ruff format uv run basedpyright typings tests uv run mypy tests
# build and publish uv build && uv publish
pre-commit
The project uses pre-commit for code quality checks:
# install pre-commit hooks uv run prek install # run all checks manually uv run prek run --all-files
tooling
- ruff — formatting and linting
- basedpyright — type checking
- mypy — type checking