|
|
|
|
|
|
|
|
.PHONY: help install install-dev setup test lint format clean run docker-build docker-up docker-down migration |
|
|
|
|
|
|
|
|
help: |
|
|
@echo "GOXY ML/AI Service - Available Commands:" |
|
|
@echo "" |
|
|
@echo " make install - Install production dependencies" |
|
|
@echo " make install-dev - Install development dependencies" |
|
|
@echo " make setup - Complete development setup" |
|
|
@echo " make test - Run tests" |
|
|
@echo " make test-cov - Run tests with coverage" |
|
|
@echo " make lint - Run linters" |
|
|
@echo " make format - Format code with black and ruff" |
|
|
@echo " make clean - Clean generated files" |
|
|
@echo " make run - Run development server" |
|
|
@echo " make docker-build - Build Docker image" |
|
|
@echo " make docker-up - Start Docker containers" |
|
|
@echo " make docker-down - Stop Docker containers" |
|
|
@echo " make migration - Create database migration" |
|
|
@echo " make upgrade - Apply database migrations" |
|
|
@echo "" |
|
|
|
|
|
|
|
|
install: |
|
|
pip install --upgrade pip setuptools wheel |
|
|
pip install -r requirements.txt |
|
|
|
|
|
|
|
|
install-dev: |
|
|
pip install --upgrade pip setuptools wheel |
|
|
pip install -r requirements-dev.txt |
|
|
pre-commit install |
|
|
|
|
|
|
|
|
setup: install-dev |
|
|
@echo "Setting up development environment..." |
|
|
mkdir -p logs data/models data/datasets data/cache data/uploads |
|
|
cp -n .env.example .env || true |
|
|
@echo "β Development environment ready!" |
|
|
@echo "β οΈ Please edit .env file with your configuration" |
|
|
|
|
|
|
|
|
test: |
|
|
pytest -v -m "not slow" |
|
|
|
|
|
|
|
|
test-cov: |
|
|
pytest --cov=app --cov-report=html --cov-report=term-missing |
|
|
|
|
|
|
|
|
lint: |
|
|
@echo "Running linters..." |
|
|
ruff check app/ tests/ |
|
|
mypy app/ |
|
|
black --check app/ tests/ |
|
|
@echo "β All linters passed!" |
|
|
|
|
|
|
|
|
format: |
|
|
@echo "Formatting code..." |
|
|
black app/ tests/ |
|
|
ruff check --fix app/ tests/ |
|
|
@echo "β Code formatted!" |
|
|
|
|
|
|
|
|
clean: |
|
|
@echo "Cleaning generated files..." |
|
|
find . -type d -name "__pycache__" -exec rm -rf {} + 2>/dev/null || true |
|
|
find . -type f -name "*.pyc" -delete |
|
|
find . -type f -name "*.pyo" -delete |
|
|
find . -type f -name "*.egg-info" -exec rm -rf {} + 2>/dev/null || true |
|
|
rm -rf .pytest_cache .coverage htmlcov dist build .ruff_cache .mypy_cache |
|
|
@echo "β Cleanup complete!" |
|
|
|
|
|
|
|
|
run: |
|
|
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000 --log-level info |
|
|
|
|
|
|
|
|
docker-build: |
|
|
docker-compose build |
|
|
|
|
|
|
|
|
docker-up: |
|
|
docker-compose up -d |
|
|
@echo "β Containers started!" |
|
|
@echo " API: http://localhost:8000" |
|
|
@echo " Docs: http://localhost:8000/docs" |
|
|
@echo " Database: localhost:5432" |
|
|
@echo " Redis: localhost:6379" |
|
|
|
|
|
|
|
|
docker-down: |
|
|
docker-compose down |
|
|
|
|
|
|
|
|
migration: |
|
|
@read -p "Enter migration message: " msg; \ |
|
|
alembic revision --autogenerate -m "$$msg" |
|
|
|
|
|
|
|
|
upgrade: |
|
|
alembic upgrade head |
|
|
|
|
|
|
|
|
downgrade: |
|
|
alembic downgrade -1 |
|
|
|
|
|
|
|
|
history: |
|
|
alembic history |
|
|
|
|
|
|
|
|
security: |
|
|
bandit -r app/ -c pyproject.toml |
|
|
|
|
|
|
|
|
pre-commit: |
|
|
pre-commit run --all-files |
|
|
|