Spaces:
Sleeping
Sleeping
| ################################################################################# | |
| # GLOBALS # | |
| ################################################################################# | |
| PROJECT_NAME = CardioTrack | |
| PYTHON_VERSION = 3.11 | |
| PYTHON_INTERPRETER = python | |
| ################################################################################# | |
| # COMMANDS # | |
| ################################################################################# | |
| ## Install Python dependencies | |
| .PHONY: requirements | |
| requirements: | |
| uv sync | |
| ## Delete all compiled Python files | |
| .PHONY: clean | |
| clean: | |
| find . -type f -name "*.py[co]" -delete | |
| find . -type d -name "__pycache__" -delete | |
| ## Lint using ruff (use `make format` to do formatting) | |
| .PHONY: lint | |
| lint: | |
| ruff format --check | |
| ruff check | |
| ## Format source code with ruff | |
| .PHONY: format | |
| format: | |
| ruff check --fix | |
| ruff format | |
| ## Run tests | |
| .PHONY: test | |
| test: | |
| python -m pytest tests | |
| ## Set up Python interpreter environment | |
| .PHONY: create_environment | |
| create_environment: | |
| uv venv --python $(PYTHON_VERSION) | |
| @echo ">>> New uv virtual environment created. Activate with:" | |
| @echo ">>> Windows: .\\\\.venv\\\\Scripts\\\\activate" | |
| @echo ">>> Unix/macOS: source ./.venv/bin/activate" | |
| ################################################################################# | |
| # PROJECT RULES # | |
| ################################################################################# | |
| ## Make dataset | |
| .PHONY: data | |
| data: requirements | |
| $(PYTHON_INTERPRETER) predicting_outcomes_in_heart_failure/dataset.py | |
| ################################################################################# | |
| # Self Documenting Commands # | |
| ################################################################################# | |
| .DEFAULT_GOAL := help | |
| define PRINT_HELP_PYSCRIPT | |
| import re, sys; \ | |
| lines = '\n'.join([line for line in sys.stdin]); \ | |
| matches = re.findall(r'\n## (.*)\n[\s\S]+?\n([a-zA-Z_-]+):', lines); \ | |
| print('Available rules:\n'); \ | |
| print('\n'.join(['{:25}{}'.format(*reversed(match)) for match in matches])) | |
| endef | |
| export PRINT_HELP_PYSCRIPT | |
| help: | |
| @$(PYTHON_INTERPRETER) -c "${PRINT_HELP_PYSCRIPT}" < $(MAKEFILE_LIST) | |