.PHONY: install-dev format check-format test build publish clean docs

install:
	pip install -e .

install-dev:
	pip install -e ".[dev]"

format:
	python -m black src tests

check-format:
	python -m black --check src tests
	
test:
	pytest tests --cov=src --cov-report=term --cov-report=xml

build:
	python -m build

publish: build
	twine upload dist/*

clean:
	rm -rf dist build *.egg-info

docs:
	$(MAKE) -C docs html

help:
	@echo "Available targets:"
	@echo "  install       - Install the package"
	@echo "  install-dev   - Install the package with development dependencies"
	@echo "  format        - Format the code using black"
	@echo "  check-format  - Check code formatting using black"
	@echo "  test          - Run tests and generate coverage report"
	@echo "  build         - Build the package"
	@echo "  publish       - Publish the package to PyPI"
	@echo "  clean         - Clean build artifacts"
	@echo "  docs          - Build the Sphinx documentation (output in docs/build/html)"
	@echo "  help          - Show this help message"