Type stubs for celery related projects:
pip install celery-typesYou'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),
)# install uv (https://docs.astral.sh/uv/)
curl -LsSf https://astral.sh/uv/install.sh | shuv sync# 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 publishThe 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- ruff — formatting and linting
- basedpyright — type checking
- mypy — type checking