blitz_api/Makefile
fusion44 e0f4d7e2fc
fix(deps): ensure async-timeout is included for older Python 3.11
- Add async-timeout as a direct dependency in pyproject.toml to fix
  ModuleNotFoundError on systems with Python < 3.11.3 (e.g. Raspberry Pi).
- Switch to universal requirements generation in Makefile and
  requirements.txt to include platform-specific markers and conditional
  dependencies.
- Update uv.lock to reflect dependency changes.

This resolves a crash where redis-py attempted to import async_timeout,
which was missing because it was pruned during requirements generation
on a newer Python version.
2026-02-21 08:04:34 +01:00

77 lines
2.6 KiB
Makefile
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 build the Docker regtest image type 'make docker-regtest-image'.\n     The image will be available to docker as 'blitz_api'"
@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:
uv pip compile --all-extras --universal --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
docker-regtest-image:
docker build -f Dockerfile.regtest -t blitz_api .
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)