CELERY_APP ?= app.celery_app CELERY_BROKER_URL ?= redis://localhost:6379/0 TASK_NAME ?= app.apps.tasks.update_app_state_task TASK_ARGS ?= '[]' TASK_KWARGS ?= '{}' .PHONY: celery-list-tasks celery-run-task # The @ makes sure that the command itself isn't echoed in the terminal help: @echo "---------------HELP-----------------" @echo "To clean the workspace type 'make clean'" @echo "To install the projects dependencies type 'make install'" @echo "To install the projects dependencies for development type 'make install-dev'" @echo "To run the project type 'make run'" @echo "To test the project type 'make test'" @echo "To assess test coverage type 'make coverage'" @echo "To generate the requirements.txt file for pip type 'make update-requirements-file'" @echo "To sync current changes to a blitz for testing, type 'make sync-to-blitz'.\n   ℹ️  Adjust connection values in scripts/push_to_blitz.sh" @echo "To generate the client libraries type 'make generate-client-libs'" @echo "To list all celery tasks type 'make celery-list-tasks'" @echo "To manually trigger a celery task type 'make celery-run-task [TASK_NAME TASK_ARGS TASK_KWARGS]'" @echo "------------------------------------" clean: echo "Removing htmlcov folder and .coverage file" rm -rf htmlcov .coverage uv run python -m pyclean . install: uv pip install -r requirements.txt install-dev: # This command reads pyproject.toml and installs all dependencies (main + dev) uv sync run: uv run python -m uvicorn app.main:app --reload test: uv run python -m pytest coverage: uv run python -m coverage run --source=. -m pytest uv run python -m coverage html update-requirements-file: # --upgrade: don't keep stale pins from the existing requirements.txt uv pip compile --all-extras --universal --upgrade --output-file requirements.txt pyproject.toml sync-to-blitz: bash scripts/sync_to_blitz.sh generate-client-libs: uv run python gen_client_libs.py remote-debugging-help: bash scripts/remote_debugging.sh help enable-remote-debugging: bash scripts/remote_debugging.sh enable disable-remote-debugging: bash scripts/remote_debugging.sh disable celery-list-tasks: @echo "Listing registered Celery tasks..." @uv run celery -A $(CELERY_APP) inspect registered celery-run-task: @echo "Manually triggering Celery task: $(TASK_NAME)" @echo " Args: $(TASK_ARGS)" @echo " Kwargs: $(TASK_KWARGS)" @uv run celery -A $(CELERY_APP) call $(TASK_NAME) --args=$(TASK_ARGS) --kwargs=$(TASK_KWARGS)