help:  ## Show help
	@grep -E '^[.a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'

clean: ## Clean autogenerated files
	rm -rf dist
	find . -type f -name "*.DS_Store" -ls -delete
	find . | grep -E "(__pycache__|\.pyc|\.pyo)" | xargs rm -rf
	find . | grep -E ".pytest_cache" | xargs rm -rf
	find . | grep -E ".ipynb_checkpoints" | xargs rm -rf
	rm -f .coverage

docker-build: ## Build docker images
	docker compose build --no-cache

docker-up: ## Start docker containers
	docker compose up -d

docker-down: ## Stop docker containers
	docker compose down

docker-down-volume:  ## Stop docker containers with removing volumes.
	docker compose down -v

docker-attach: ## Attach to development container
	docker compose exec dev bash

venv: ## Make virtual environment
	uv venv
	uv sync --all-extras

format: ## Run pre-commit hooks
	uv run pre-commit run -a

test: ## Run tests
	uv run pytest -v --cov

type: ## Run type check
	uv run pyright

run: format test type ## Run all workflow.

# Documentation targets to add to your Makefile

docs-build: ## Build documentation
	uv run mkdocs build

docs-serve: ## Serve documentation locally
	uv run mkdocs serve

docs-deploy: ## Deploy documentation to GitHub Pages
	uv run mkdocs gh-deploy --force
