.PHONY: help install test lint pipeline scrape train optimize predict bot clean help: @echo "Fantabeto 26/27 Commands" @echo "========================" @echo "make install - Install dependencies" @echo "make test - Run test suite" @echo "make lint - Run ruff linter" @echo "make scrape - Scrape FBref data for 2024-26 seasons" @echo "make features - Build feature datasets" @echo "make train - Train ML models" @echo "make optimize - Run auction + lineup optimization" @echo "make predict - Generate matchday predictions" @echo "make pipeline - Run full pipeline (scrape -> features -> train)" @echo "make bot - Send Telegram briefing" @echo "make clean - Remove generated data files" install: pip install -r requirements.txt playwright install chromium test: python -m pytest tests/ -v lint: ruff check src/ tests/ scrape: python -c "from src.pipeline import Pipeline; p = Pipeline(); p.scrape_fbref(['2024-2025','2025-2026'], current=True)" features: python -c "from src.pipeline import Pipeline; p = Pipeline(); p.build_features()" train: python -c "import pandas as pd; from src.pipeline import Pipeline; p = Pipeline(); df = pd.read_excel('data/match_dataset.xlsx'); y = df['fantavote']; X = df.drop(columns=['fantavote','vote','matchday','player','team','oppteam'], errors='ignore'); p.train_models(X,y)" predict: python -c "from src.pipeline import Pipeline; p = Pipeline(); p.run_full_pipeline()" bot: python -c "from src.bot.telegram_bot import TelegramBot; from src.bot.briefing import BriefingGenerator; bot = TelegramBot(); gen = BriefingGenerator(); print('Bot ready. Use send_briefing() to dispatch.')" pipeline: scrape features train clean: rm -rf data/ find . -type d -name __pycache__ -exec rm -rf {} + find . -type f -name "*.pyc" -delete