dxfedit/03_Python_OpenSource_DXF/Makefile
2025-09-09 18:42:30 +08:00

96 lines
2.3 KiB
Makefile

# CAD Automation Development Makefile
.PHONY: help install install-dev test test-cov test-watch lint format type-check clean build docs serve-docs
# Default target
help:
@echo "Available commands:"
@echo " install Install package and dependencies"
@echo " install-dev Install package with development dependencies"
@echo " test Run tests"
@echo " test-cov Run tests with coverage report"
@echo " test-watch Run tests in watch mode"
@echo " lint Run linting"
@echo " format Format code with black"
@echo " type-check Run type checking with mypy"
@echo " clean Clean build artifacts and cache"
@echo " build Build package"
@echo " docs Generate documentation"
@echo " serve-docs Serve documentation locally"
@echo " ci Run full CI pipeline locally"
# Installation
install:
pip install -e .
install-dev:
pip install -e .[dev]
# Testing
test:
pytest tests/ -v
test-cov:
pytest tests/ --cov=src/cad_automation --cov-report=html --cov-report=term-missing
test-watch:
ptw tests/ --runner "pytest --cov=src/cad_automation"
# Code Quality
lint:
flake8 src/cad_automation tests
@echo "Linting completed"
format:
black src/cad_automation tests
isort src/cad_automation tests
@echo "Code formatting completed"
type-check:
mypy src/cad_automation
@echo "Type checking completed"
# Cleaning
clean:
rm -rf build/
rm -rf dist/
rm -rf *.egg-info/
rm -rf .coverage
rm -rf htmlcov/
rm -rf .pytest_cache/
rm -rf __pycache__/
rm -rf src/cad_automation/__pycache__/
rm -rf tests/__pycache__/
rm -rf .mypy_cache/
find . -type f -name "*.pyc" -delete
find . -type d -name "__pycache__" -delete
@echo "Clean completed"
# Build
build: clean
python -m build
@echo "Build completed"
# Development workflow
dev-setup: install-dev
pre-commit install
@echo "Development environment setup completed"
check-all: lint type-check test-cov
@echo "All checks passed!"
# CI simulation
ci: check-all build
@echo "CI pipeline completed successfully"
# Quick development cycle
dev: format type-check test
@echo "Development cycle completed"
# Documentation (placeholder for future implementation)
docs:
@echo "Documentation generation not yet implemented"
serve-docs:
@echo "Documentation serving not yet implemented"