up:
	@uv lock --upgrade
	@uv sync --all-extras --all-groups

deps:
	@uv sync --all-extras --all-groups

ruff:
	@uv run ruff check --fix .
	@uv run ruff format .

ruff-check:
	@uv run ruff check .
	@uv run ruff format --check .

mypy:
	@uv run mypy

format: deps
	@uv run tox run -e format

safety:
	@uv run safety check

lint: deps ruff-check mypy

test: deps
	@uv run tox

test-parallel: deps
	@uv run tox run-parallel

build: clean deps
	@uv build
	@uv run tox run -e lint_distributions

clean:
	@rm -rf ./dist .mypy_cache .ruff_cache .pytest_cache
	@find . -type d -name __pycache__ -exec rm -rf {} + 2>/dev/null || true
	@find . -type d -name "*.egg-info" -exec rm -rf {} + 2>/dev/null || true

# aliases
check: lint
style: format
