TradingAgents/Makefile

128 lines
3.5 KiB
Makefile

# Makefile for TradingAgents project
.PHONY: help install install-dev test test-unit test-integration test-coverage lint format clean
# Default target
help:
@echo "TradingAgents Development Commands"
@echo "=================================="
@echo ""
@echo "Installation:"
@echo " install Install production dependencies"
@echo " install-dev Install development dependencies"
@echo ""
@echo "Testing:"
@echo " test Run all tests"
@echo " test-unit Run unit tests only"
@echo " test-integration Run integration tests only"
@echo " test-coverage Run tests with coverage report"
@echo " test-fast Run fast unit tests"
@echo " test-slow Run slow tests"
@echo ""
@echo "Quality:"
@echo " lint Run linting and type checking"
@echo " format Format code with black and isort"
@echo " mypy Run mypy type checking"
@echo ""
@echo "Utilities:"
@echo " clean Clean up temporary files"
@echo " setup-env Set up development environment"
# Installation targets
install:
pip install -r requirements.txt
install-dev:
pip install -r requirements.txt
pip install -e ".[dev]"
# Testing targets
test:
python -m pytest tests/ -v
test-unit:
python -m pytest tests/unit/ -m unit -v
test-integration:
python -m pytest tests/integration/ -m integration -v
test-coverage:
python -m pytest tests/ --cov=tradingagents --cov=cli --cov-report=html:htmlcov --cov-report=term-missing --cov-report=xml
test-fast:
python -m pytest tests/unit/ -m unit --durations=10 -v
test-slow:
python -m pytest tests/ -m slow --timeout=600 -v
test-parallel:
python -m pytest tests/ -n auto -v
# Quality targets
lint:
python -m mypy tradingagents/ cli/ tests/
python -m pytest tests/ --collect-only
format:
python -m black tradingagents/ cli/ tests/
python -m isort tradingagents/ cli/ tests/
mypy:
python -m mypy tradingagents/ cli/ tests/
# Development utilities
clean:
find . -type f -name "*.pyc" -delete
find . -type d -name "__pycache__" -delete
find . -type d -name "*.egg-info" -exec rm -rf {} +
rm -rf .pytest_cache/
rm -rf .mypy_cache/
rm -rf htmlcov/
rm -rf .coverage*
rm -rf coverage.xml
rm -rf dist/
rm -rf build/
setup-env:
@echo "Setting up development environment..."
@echo "1. Create virtual environment:"
@echo " python -m venv venv"
@echo " source venv/bin/activate # On Windows: venv\\Scripts\\activate"
@echo ""
@echo "2. Install dependencies:"
@echo " make install-dev"
@echo ""
@echo "3. Copy .env.example to .env and configure:"
@echo " cp .env.example .env"
@echo " # Edit .env with your API keys"
@echo ""
@echo "4. Run tests to verify setup:"
@echo " make test-unit"
# CI/CD style targets
ci-test:
python -m pytest tests/ --cov=tradingagents --cov=cli --cov-report=xml --junitxml=pytest.xml
ci-lint:
python -m mypy tradingagents/ cli/ tests/ --junit-xml=mypy.xml
# Development server (if applicable)
run-cli:
python -m cli.main
# Documentation (if you add docs later)
docs:
@echo "Documentation generation not yet implemented"
# Package building
build:
python -m build
# Show project statistics
stats:
@echo "Project Statistics:"
@echo "==================="
@find tradingagents/ -name "*.py" | wc -l | xargs echo "Python files in tradingagents/:"
@find cli/ -name "*.py" | wc -l | xargs echo "Python files in cli/:"
@find tests/ -name "*.py" | wc -l | xargs echo "Test files:"
@find . -name "*.py" -not -path "./venv/*" -not -path "./.venv/*" | xargs wc -l | tail -1 | xargs echo "Total lines of code:"