# Document Analysis Workbook Requirements
# KayGraph-based document processing and analysis system

# Core dependencies
kaygraph>=0.2.0  # Graph-based workflow orchestration

# Claude AI providers (choose one or more)
anthropic>=0.34.0  # Official Anthropic Claude API
# OR use alternative providers with httpx
httpx>=0.24.0  # For io.net and Z.ai providers

# Document processing
pypdf>=4.0.0  # PDF text extraction
python-docx>=1.1.0  # DOCX file processing
beautifulsoup4>=4.12.0  # HTML parsing
markdown>=3.5.0  # Markdown processing
chardet>=5.2.0  # Character encoding detection

# Text processing
nltk>=3.8.1  # Natural language processing
textstat>=0.7.3  # Text statistics and readability
langdetect>=1.0.9  # Language detection
spacy>=3.7.0  # Advanced NLP (optional, for entity recognition)

# Data handling
pandas>=2.1.0  # Data manipulation and analysis
numpy>=1.24.0  # Numerical operations
pydantic>=2.5.0  # Data validation

# Utilities
python-dotenv>=1.0.0  # Environment variable management
tenacity>=8.2.0  # Retry logic with exponential backoff
aiofiles>=23.0.0  # Async file operations
aiocache>=0.12.0  # Async caching

# Monitoring and metrics
prometheus-client>=0.19.0  # Metrics collection
structlog>=24.1.0  # Structured logging

# Testing (optional, for development)
pytest>=8.0.0  # Testing framework
pytest-asyncio>=0.23.0  # Async test support
pytest-mock>=3.12.0  # Mocking support

# Development tools (optional)
black>=24.0.0  # Code formatting
flake8>=7.0.0  # Linting
mypy>=1.8.0  # Type checking
pre-commit>=3.6.0  # Git hooks

# Vector storage (optional, for semantic search)
chromadb>=0.4.22  # Vector database
openai>=1.10.0  # OpenAI embeddings (if using)

# Visualization (optional, for reports)
matplotlib>=3.8.0  # Plotting
seaborn>=0.13.0  # Statistical visualization
plotly>=5.18.0  # Interactive charts

# Compliance and security (optional)
cryptography>=41.0.0  # Encryption
pycryptodome>=3.19.0  # Additional crypto operations