# YtQGen Requirements
# Note: All dependencies are defined in pyproject.toml
# This file is for backward compatibility and development convenience

# ===== INSTALL OPTIONS =====
# 
# Option 1: Install core package only (no AI providers)
#   pip install ytqgen
#   (or: pip install -e .)
#
# Option 2: Install with specific provider
#   pip install ytqgen[openai]    # OpenAI only
#   pip install ytqgen[groq]      # Groq only
#   pip install ytqgen[mistral]   # Mistral only
#
# Option 3: Install with all providers
#   pip install ytqgen[all]
#   (or: pip install -e ".[all]")
#
# Option 4: Install for development
#   pip install -e ".[dev]"
#   pip install -e ".[all,dev]"   # All providers + dev tools

# ===== CORE RUNTIME DEPENDENCIES =====
# These are ALWAYS installed (defined in pyproject.toml)
pyyaml>=6.0.0
requests>=2.31.0
PyMuPDF>=1.24.9         # For PDF generation with Unicode support
yt-dlp>=2024.0.0
av>=10.0.0              # PyAV for audio conversion (includes FFmpeg bindings)
tqdm>=4.65.0
python-dotenv>=1.0.0    # For .env file support

# ===== OPTIONAL PROVIDER DEPENDENCIES =====
# Install with: pip install ytqgen[openai] or ytqgen[all]
# These are lazy-loaded, so the package works without them
# but you need at least ONE provider to actually run the pipeline

# openai>=1.0.0         # [openai] optional dependency
# mistralai>=1.0.0      # [mistral] optional dependency
# groq>=0.4.0           # [groq] optional dependency

# ===== DEVELOPMENT DEPENDENCIES =====
# Install with: pip install -e ".[dev]"
# Only needed for package development, testing, and publishing

# pytest>=7.0.0         # [dev] Testing framework
# pytest-cov>=4.0.0     # [dev] Code coverage
# black>=23.0.0         # [dev] Code formatter
# ruff>=0.1.0           # [dev] Linter
# mypy>=1.0.0           # [dev] Type checker
# build>=1.0.0          # [dev] Build tool
# twine>=4.0.0          # [dev] PyPI upload tool

