# ===== LectureForge Requirements =====
# Python 3.11-3.13 compatible (all versions verified and supported)
# Fast installation (~3-5 minutes)
# Heavy optional packages are commented out - uncomment if needed
# Last updated: 2026-02-17

# ===== Core Framework =====
# Updated to 0.3.x for Python 3.13 compatibility and latest features
langchain>=0.3.27,<0.4.0
langchain-openai>=0.2.0,<0.4.0
langchain-core>=0.3.76,<0.4.0
openai>=1.12.0,<2.0.0

# ===== Vector Database =====
# Updated to 1.1.x+ for Python 3.13 compatibility and improved performance
chromadb>=1.1.0,<2.0.0

# ===== PDF Processing =====
pymupdf>=1.23.0,<2.0.0

# ===== Web Scraping =====
beautifulsoup4>=4.12.0,<5.0.0
requests>=2.31.0,<3.0.0

# ===== Image Processing (Basic) =====
pillow>=10.2.0,<11.0.0
# Numpy version (Python 3.11-3.13 compatible - requires 1.26+)
numpy>=1.26.0,<2.0.0
scipy>=1.11.0,<2.0.0  # For advanced image quality analysis (entropy)

# ===== HTML Generation =====
jinja2>=3.1.3,<4.0.0
markdown>=3.5.0,<4.0.0
pygments>=2.17.0,<3.0.0

# ===== CLI =====
click>=8.1.7,<9.0.0
rich>=13.7.0,<14.0.0
rich-click>=1.7.0,<2.0.0
prompt-toolkit>=3.0.0,<4.0.0  # Enhanced input with history and multilingual support

# ===== Utilities =====
python-dotenv>=1.0.0,<2.0.0
pydantic>=2.5.0,<3.0.0
pyyaml>=6.0.1,<7.0.0
tenacity>=8.0.0,<9.0.0
langdetect>=1.0.9,<2.0.0  # Language detection for multilingual support

# ===== Optional (Uncomment if needed) =====

# Advanced Web Scraping (~5 min install)
# playwright>=1.41.0,<2.0.0
# lxml>=5.1.0,<6.0.0
# Note: After installing, run: playwright install

# Advanced Image Processing (~3 min install)
# opencv-python>=4.9.0,<5.0.0

# Semantic Embeddings (~15 min install, 2GB+ download - includes PyTorch!)
# sentence-transformers>=2.3.0,<3.0.0

# Additional Tools
# langchain-community>=0.3.27,<0.4.0
# pdfplumber>=0.10.0,<1.0.0
# rapidfuzz>=3.0.0,<4.0.0
# tiktoken>=0.5.0,<1.0.0
httpx>=0.24.0,<1.0.0  # Async HTTP client for async I/O operations
# aiofiles>=23.0.0,<24.0.0  # Async file I/O (uncomment when async file operations are needed)
# imagehash>=4.3.0,<5.0.0  # Perceptual image hashing (uncomment if image deduplication needed)
